diff -Nru strace-6.1/build-aux/config.guess strace-6.2/build-aux/config.guess --- strace-6.1/build-aux/config.guess 2022-12-12 19:29:01.000000000 +0100 +++ strace-6.2/build-aux/config.guess 2023-02-26 22:20:56.000000000 +0100 @@ -1,10 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2022 Free Software Foundation, Inc. +# Copyright 1992-2023 Free Software Foundation, Inc. # shellcheck disable=SC2006,SC2268 # see below for rationale -timestamp='2022-05-08' +timestamp='2023-01-01' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -60,7 +60,7 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2022 Free Software Foundation, Inc. +Copyright 1992-2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -966,6 +966,12 @@ GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC ;; + x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*) + GUESS="$UNAME_MACHINE-pc-managarm-mlibc" + ;; + *:[Mm]anagarm:*:*) + GUESS="$UNAME_MACHINE-unknown-managarm-mlibc" + ;; *:Minix:*:*) GUESS=$UNAME_MACHINE-unknown-minix ;; @@ -1036,7 +1042,7 @@ k1om:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; - loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) + loongarch32:Linux:*:* | loongarch64:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; m32r*:Linux:*:*) @@ -1378,8 +1384,11 @@ BePC:Haiku:*:*) # Haiku running on Intel PC compatible. GUESS=i586-pc-haiku ;; - x86_64:Haiku:*:*) - GUESS=x86_64-unknown-haiku + ppc:Haiku:*:*) # Haiku running on Apple PowerPC + GUESS=powerpc-apple-haiku + ;; + *:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat) + GUESS=$UNAME_MACHINE-unknown-haiku ;; SX-4:SUPER-UX:*:*) GUESS=sx4-nec-superux$UNAME_RELEASE diff -Nru strace-6.1/build-aux/config.sub strace-6.2/build-aux/config.sub --- strace-6.1/build-aux/config.sub 2022-12-12 19:29:01.000000000 +0100 +++ strace-6.2/build-aux/config.sub 2023-02-26 22:20:56.000000000 +0100 @@ -1,10 +1,10 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2022 Free Software Foundation, Inc. +# Copyright 1992-2023 Free Software Foundation, Inc. # shellcheck disable=SC2006,SC2268 # see below for rationale -timestamp='2022-01-03' +timestamp='2023-01-21' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -76,7 +76,7 @@ version="\ GNU config.sub ($timestamp) -Copyright 1992-2022 Free Software Foundation, Inc. +Copyright 1992-2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -145,7 +145,7 @@ nto-qnx* | linux-* | uclinux-uclibc* \ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ - | storm-chaos* | os2-emx* | rtmk-nova*) + | storm-chaos* | os2-emx* | rtmk-nova* | managarm-*) basic_machine=$field1 basic_os=$maybe_os ;; @@ -1075,7 +1075,7 @@ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) cpu=i586 ;; - pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*) + pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*) cpu=i686 ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) @@ -1207,7 +1207,7 @@ | k1om \ | le32 | le64 \ | lm32 \ - | loongarch32 | loongarch64 | loongarchx32 \ + | loongarch32 | loongarch64 \ | m32c | m32r | m32rle \ | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ @@ -1341,6 +1341,10 @@ kernel=linux os=`echo "$basic_os" | sed -e 's|linux|gnu|'` ;; + managarm*) + kernel=managarm + os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'` + ;; *) kernel= os=$basic_os @@ -1754,7 +1758,7 @@ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ - | fiwix* ) + | fiwix* | mlibc* ) ;; # This one is extra strict with allowed versions sco3.2v2 | sco3.2v[4-9]* | sco5v6*) @@ -1762,6 +1766,9 @@ ;; none) ;; + kernel* ) + # Restricted further below + ;; *) echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 exit 1 @@ -1772,16 +1779,26 @@ # (given a valid OS), if there is a kernel. case $kernel-$os in linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ - | linux-musl* | linux-relibc* | linux-uclibc* ) + | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* ) ;; uclinux-uclibc* ) ;; - -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) + managarm-mlibc* | managarm-kernel* ) + ;; + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* ) # These are just libc implementations, not actual OSes, and thus # require a kernel. echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 exit 1 ;; + -kernel* ) + echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + *-kernel* ) + echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2 + exit 1 + ;; kfreebsd*-gnu* | kopensolaris*-gnu*) ;; vxworks-simlinux | vxworks-simwindows | vxworks-spe) diff -Nru strace-6.1/bundled/linux/include/uapi/linux/btrfs.h strace-6.2/bundled/linux/include/uapi/linux/btrfs.h --- strace-6.1/bundled/linux/include/uapi/linux/btrfs.h 2022-12-11 09:00:00.000000000 +0100 +++ strace-6.2/bundled/linux/include/uapi/linux/btrfs.h 2023-01-04 09:00:00.000000000 +0100 @@ -19,8 +19,14 @@ #ifndef _LINUX_BTRFS_H #define _LINUX_BTRFS_H + +#ifdef __cplusplus +extern "C" { +#endif + #include #include +#include #define BTRFS_IOCTL_MAGIC 0x94 #define BTRFS_VOL_NAME_MAX 255 @@ -331,6 +337,12 @@ */ struct btrfs_balance_args { __u64 profiles; + + /* + * usage filter + * BTRFS_BALANCE_ARGS_USAGE with a single value means '0..N' + * BTRFS_BALANCE_ARGS_USAGE_RANGE - range syntax, min..max + */ union { __u64 usage; struct { @@ -547,7 +559,7 @@ __u64 offset; __u32 type; __u32 len; -}; +} __attribute__ ((__may_alias__)); #define BTRFS_SEARCH_ARGS_BUFSIZE (4096 - sizeof(struct btrfs_ioctl_search_key)) /* @@ -560,6 +572,10 @@ char buf[BTRFS_SEARCH_ARGS_BUFSIZE]; }; +/* + * Extended version of TREE_SEARCH ioctl that can return more than 4k of bytes. + * The allocated size of the buffer is set in buf_size. + */ struct btrfs_ioctl_search_args_v2 { struct btrfs_ioctl_search_key key; /* in/out - search parameters */ __u64 buf_size; /* in - size of buffer @@ -568,10 +584,11 @@ __u64 buf[]; /* out - found items */ }; +/* With a @src_length of zero, the range from @src_offset->EOF is cloned! */ struct btrfs_ioctl_clone_range_args { - __s64 src_fd; - __u64 src_offset, src_length; - __u64 dest_offset; + __s64 src_fd; + __u64 src_offset, src_length; + __u64 dest_offset; }; /* @@ -675,8 +692,11 @@ /* struct btrfs_data_container *inodes; out */ __u64 inodes; }; -/* Return every ref to the extent, not just those containing logical block. - * Requires logical == extent bytenr. */ + +/* + * Return every ref to the extent, not just those containing logical block. + * Requires logical == extent bytenr. + */ #define BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET (1ULL << 0) enum btrfs_dev_stat_values { @@ -1142,4 +1162,8 @@ #define BTRFS_IOC_ENCODED_WRITE _IOW(BTRFS_IOCTL_MAGIC, 64, \ struct btrfs_ioctl_encoded_io_args) +#ifdef __cplusplus +} +#endif + #endif /* _LINUX_BTRFS_H */ diff -Nru strace-6.1/bundled/linux/include/uapi/linux/btrfs_tree.h strace-6.2/bundled/linux/include/uapi/linux/btrfs_tree.h --- strace-6.1/bundled/linux/include/uapi/linux/btrfs_tree.h 2022-12-11 09:00:00.000000000 +0100 +++ strace-6.2/bundled/linux/include/uapi/linux/btrfs_tree.h 2023-01-04 09:00:00.000000000 +0100 @@ -6,6 +6,23 @@ #include #include +/* ASCII for _BHRfS_M, no terminating nul */ +#define BTRFS_MAGIC 0x4D5F53665248425FULL + +#define BTRFS_MAX_LEVEL 8 + +/* + * We can actually store much bigger names, but lets not confuse the rest of + * linux. + */ +#define BTRFS_NAME_LEN 255 + +/* + * Theoretical limit is larger, but we keep this down to a sane value. That + * should limit greatly the possibility of collisions on inode ref items. + */ +#define BTRFS_LINK_MAX 65535U + /* * This header contains the structure definitions and constants used * by file system objects that can be retrieved using @@ -355,6 +372,50 @@ #define BTRFS_FT_SYMLINK 7 #define BTRFS_FT_XATTR 8 #define BTRFS_FT_MAX 9 +/* Directory contains encrypted data */ +#define BTRFS_FT_ENCRYPTED 0x80 + +static inline __u8 btrfs_dir_flags_to_ftype(__u8 flags) +{ + return flags & ~BTRFS_FT_ENCRYPTED; +} + +/* + * Inode flags + */ +#define BTRFS_INODE_NODATASUM (1U << 0) +#define BTRFS_INODE_NODATACOW (1U << 1) +#define BTRFS_INODE_READONLY (1U << 2) +#define BTRFS_INODE_NOCOMPRESS (1U << 3) +#define BTRFS_INODE_PREALLOC (1U << 4) +#define BTRFS_INODE_SYNC (1U << 5) +#define BTRFS_INODE_IMMUTABLE (1U << 6) +#define BTRFS_INODE_APPEND (1U << 7) +#define BTRFS_INODE_NODUMP (1U << 8) +#define BTRFS_INODE_NOATIME (1U << 9) +#define BTRFS_INODE_DIRSYNC (1U << 10) +#define BTRFS_INODE_COMPRESS (1U << 11) + +#define BTRFS_INODE_ROOT_ITEM_INIT (1U << 31) + +#define BTRFS_INODE_FLAG_MASK \ + (BTRFS_INODE_NODATASUM | \ + BTRFS_INODE_NODATACOW | \ + BTRFS_INODE_READONLY | \ + BTRFS_INODE_NOCOMPRESS | \ + BTRFS_INODE_PREALLOC | \ + BTRFS_INODE_SYNC | \ + BTRFS_INODE_IMMUTABLE | \ + BTRFS_INODE_APPEND | \ + BTRFS_INODE_NODUMP | \ + BTRFS_INODE_NOATIME | \ + BTRFS_INODE_DIRSYNC | \ + BTRFS_INODE_COMPRESS | \ + BTRFS_INODE_ROOT_ITEM_INIT) + +#define BTRFS_INODE_RO_VERITY (1U << 0) + +#define BTRFS_INODE_RO_FLAG_MASK (BTRFS_INODE_RO_VERITY) /* * The key defines the order in the tree, and so it also defines (optimal) @@ -385,6 +446,109 @@ __u64 offset; } __attribute__ ((__packed__)); +/* + * Every tree block (leaf or node) starts with this header. + */ +struct btrfs_header { + /* These first four must match the super block */ + __u8 csum[BTRFS_CSUM_SIZE]; + /* FS specific uuid */ + __u8 fsid[BTRFS_FSID_SIZE]; + /* Which block this node is supposed to live in */ + __le64 bytenr; + __le64 flags; + + /* Allowed to be different from the super from here on down */ + __u8 chunk_tree_uuid[BTRFS_UUID_SIZE]; + __le64 generation; + __le64 owner; + __le32 nritems; + __u8 level; +} __attribute__ ((__packed__)); + +/* + * This is a very generous portion of the super block, giving us room to + * translate 14 chunks with 3 stripes each. + */ +#define BTRFS_SYSTEM_CHUNK_ARRAY_SIZE 2048 + +/* + * Just in case we somehow lose the roots and are not able to mount, we store + * an array of the roots from previous transactions in the super. + */ +#define BTRFS_NUM_BACKUP_ROOTS 4 +struct btrfs_root_backup { + __le64 tree_root; + __le64 tree_root_gen; + + __le64 chunk_root; + __le64 chunk_root_gen; + + __le64 extent_root; + __le64 extent_root_gen; + + __le64 fs_root; + __le64 fs_root_gen; + + __le64 dev_root; + __le64 dev_root_gen; + + __le64 csum_root; + __le64 csum_root_gen; + + __le64 total_bytes; + __le64 bytes_used; + __le64 num_devices; + /* future */ + __le64 unused_64[4]; + + __u8 tree_root_level; + __u8 chunk_root_level; + __u8 extent_root_level; + __u8 fs_root_level; + __u8 dev_root_level; + __u8 csum_root_level; + /* future and to align */ + __u8 unused_8[10]; +} __attribute__ ((__packed__)); + +/* + * A leaf is full of items. offset and size tell us where to find the item in + * the leaf (relative to the start of the data area) + */ +struct btrfs_item { + struct btrfs_disk_key key; + __le32 offset; + __le32 size; +} __attribute__ ((__packed__)); + +/* + * Leaves have an item area and a data area: + * [item0, item1....itemN] [free space] [dataN...data1, data0] + * + * The data is separate from the items to get the keys closer together during + * searches. + */ +struct btrfs_leaf { + struct btrfs_header header; + struct btrfs_item items[]; +} __attribute__ ((__packed__)); + +/* + * All non-leaf blocks are nodes, they hold only keys and pointers to other + * blocks. + */ +struct btrfs_key_ptr { + struct btrfs_disk_key key; + __le64 blockptr; + __le64 generation; +} __attribute__ ((__packed__)); + +struct btrfs_node { + struct btrfs_header header; + struct btrfs_key_ptr ptrs[]; +} __attribute__ ((__packed__)); + struct btrfs_dev_item { /* the internal btrfs device id */ __le64 devid; @@ -468,6 +632,69 @@ /* additional stripes go here */ } __attribute__ ((__packed__)); +/* + * The super block basically lists the main trees of the FS. + */ +struct btrfs_super_block { + /* The first 4 fields must match struct btrfs_header */ + __u8 csum[BTRFS_CSUM_SIZE]; + /* FS specific UUID, visible to user */ + __u8 fsid[BTRFS_FSID_SIZE]; + /* This block number */ + __le64 bytenr; + __le64 flags; + + /* Allowed to be different from the btrfs_header from here own down */ + __le64 magic; + __le64 generation; + __le64 root; + __le64 chunk_root; + __le64 log_root; + + /* + * This member has never been utilized since the very beginning, thus + * it's always 0 regardless of kernel version. We always use + * generation + 1 to read log tree root. So here we mark it deprecated. + */ + __le64 __unused_log_root_transid; + __le64 total_bytes; + __le64 bytes_used; + __le64 root_dir_objectid; + __le64 num_devices; + __le32 sectorsize; + __le32 nodesize; + __le32 __unused_leafsize; + __le32 stripesize; + __le32 sys_chunk_array_size; + __le64 chunk_root_generation; + __le64 compat_flags; + __le64 compat_ro_flags; + __le64 incompat_flags; + __le16 csum_type; + __u8 root_level; + __u8 chunk_root_level; + __u8 log_root_level; + struct btrfs_dev_item dev_item; + + char label[BTRFS_LABEL_SIZE]; + + __le64 cache_generation; + __le64 uuid_tree_generation; + + /* The UUID written into btree blocks */ + __u8 metadata_uuid[BTRFS_FSID_SIZE]; + + __u64 nr_global_roots; + + /* Future expansion */ + __le64 reserved[27]; + __u8 sys_chunk_array[BTRFS_SYSTEM_CHUNK_ARRAY_SIZE]; + struct btrfs_root_backup super_roots[BTRFS_NUM_BACKUP_ROOTS]; + + /* Padded to 4096 bytes */ + __u8 padding[565]; +} __attribute__ ((__packed__)); + #define BTRFS_FREE_SPACE_EXTENT 1 #define BTRFS_FREE_SPACE_BITMAP 2 @@ -522,6 +749,14 @@ /* use full backrefs for extent pointers in the block */ #define BTRFS_BLOCK_FLAG_FULL_BACKREF (1ULL << 8) +#define BTRFS_BACKREF_REV_MAX 256 +#define BTRFS_BACKREF_REV_SHIFT 56 +#define BTRFS_BACKREF_REV_MASK (((u64)BTRFS_BACKREF_REV_MAX - 1) << \ + BTRFS_BACKREF_REV_SHIFT) + +#define BTRFS_OLD_BACKREF_REV 0 +#define BTRFS_MIXED_BACKREF_REV 1 + /* * this flag is only used internally by scrub and may be changed at any time * it is only declared here to avoid collisions diff -Nru strace-6.1/bundled/linux/include/uapi/linux/dcbnl.h strace-6.2/bundled/linux/include/uapi/linux/dcbnl.h --- strace-6.1/bundled/linux/include/uapi/linux/dcbnl.h 2021-02-21 09:00:00.000000000 +0100 +++ strace-6.2/bundled/linux/include/uapi/linux/dcbnl.h 2023-01-04 09:00:00.000000000 +0100 @@ -218,6 +218,9 @@ #define IEEE_8021QAZ_APP_SEL_ANY 4 #define IEEE_8021QAZ_APP_SEL_DSCP 5 +/* Non-std selector values */ +#define DCB_APP_SEL_PCP 255 + /* This structure contains the IEEE 802.1Qaz APP managed object. This * object is also used for the CEE std as well. * @@ -247,6 +250,8 @@ __u16 protocol; }; +#define IEEE_8021QAZ_APP_SEL_MAX 255 + /** * struct dcb_peer_app_info - APP feature information sent by the peer * @@ -405,6 +410,7 @@ * @DCB_ATTR_IEEE_PEER_ETS: peer ETS configuration - get only * @DCB_ATTR_IEEE_PEER_PFC: peer PFC configuration - get only * @DCB_ATTR_IEEE_PEER_APP: peer APP tlv - get only + * @DCB_ATTR_DCB_APP_TRUST_TABLE: selector trust table */ enum ieee_attrs { DCB_ATTR_IEEE_UNSPEC, @@ -418,6 +424,7 @@ DCB_ATTR_IEEE_QCN, DCB_ATTR_IEEE_QCN_STATS, DCB_ATTR_DCB_BUFFER, + DCB_ATTR_DCB_APP_TRUST_TABLE, __DCB_ATTR_IEEE_MAX }; #define DCB_ATTR_IEEE_MAX (__DCB_ATTR_IEEE_MAX - 1) @@ -425,6 +432,7 @@ enum ieee_attrs_app { DCB_ATTR_IEEE_APP_UNSPEC, DCB_ATTR_IEEE_APP, + DCB_ATTR_DCB_APP, __DCB_ATTR_IEEE_APP_MAX }; #define DCB_ATTR_IEEE_APP_MAX (__DCB_ATTR_IEEE_APP_MAX - 1) diff -Nru strace-6.1/bundled/linux/include/uapi/linux/fscrypt.h strace-6.2/bundled/linux/include/uapi/linux/fscrypt.h --- strace-6.1/bundled/linux/include/uapi/linux/fscrypt.h 2022-10-07 10:00:00.000000000 +0200 +++ strace-6.2/bundled/linux/include/uapi/linux/fscrypt.h 2023-01-04 09:00:00.000000000 +0100 @@ -26,6 +26,8 @@ #define FSCRYPT_MODE_AES_256_CTS 4 #define FSCRYPT_MODE_AES_128_CBC 5 #define FSCRYPT_MODE_AES_128_CTS 6 +#define FSCRYPT_MODE_SM4_XTS 7 +#define FSCRYPT_MODE_SM4_CTS 8 #define FSCRYPT_MODE_ADIANTUM 9 #define FSCRYPT_MODE_AES_256_HCTR2 10 /* If adding a mode number > 10, update FSCRYPT_MODE_MAX in fscrypt_private.h */ @@ -184,8 +186,6 @@ #define FS_ENCRYPTION_MODE_AES_256_CTS FSCRYPT_MODE_AES_256_CTS #define FS_ENCRYPTION_MODE_AES_128_CBC FSCRYPT_MODE_AES_128_CBC #define FS_ENCRYPTION_MODE_AES_128_CTS FSCRYPT_MODE_AES_128_CTS -#define FS_ENCRYPTION_MODE_SPECK128_256_XTS 7 /* removed */ -#define FS_ENCRYPTION_MODE_SPECK128_256_CTS 8 /* removed */ #define FS_ENCRYPTION_MODE_ADIANTUM FSCRYPT_MODE_ADIANTUM #define FS_KEY_DESC_PREFIX FSCRYPT_KEY_DESC_PREFIX #define FS_KEY_DESC_PREFIX_SIZE FSCRYPT_KEY_DESC_PREFIX_SIZE diff -Nru strace-6.1/bundled/linux/include/uapi/linux/if_alg.h strace-6.2/bundled/linux/include/uapi/linux/if_alg.h --- strace-6.1/bundled/linux/include/uapi/linux/if_alg.h 2022-10-07 10:00:00.000000000 +0200 +++ strace-6.2/bundled/linux/include/uapi/linux/if_alg.h 2023-01-04 09:00:00.000000000 +0100 @@ -52,6 +52,7 @@ #define ALG_SET_AEAD_ASSOCLEN 4 #define ALG_SET_AEAD_AUTHSIZE 5 #define ALG_SET_DRBG_ENTROPY 6 +#define ALG_SET_KEY_BY_KEY_SERIAL 7 /* Operations */ #define ALG_OP_DECRYPT 0 diff -Nru strace-6.1/bundled/linux/include/uapi/linux/if_bridge.h strace-6.2/bundled/linux/include/uapi/linux/if_bridge.h --- strace-6.1/bundled/linux/include/uapi/linux/if_bridge.h 2022-04-24 23:51:22.000000000 +0200 +++ strace-6.2/bundled/linux/include/uapi/linux/if_bridge.h 2023-01-04 09:00:00.000000000 +0100 @@ -723,10 +723,31 @@ enum { MDBE_ATTR_UNSPEC, MDBE_ATTR_SOURCE, + MDBE_ATTR_SRC_LIST, + MDBE_ATTR_GROUP_MODE, + MDBE_ATTR_RTPROT, __MDBE_ATTR_MAX, }; #define MDBE_ATTR_MAX (__MDBE_ATTR_MAX - 1) +/* per mdb entry source */ +enum { + MDBE_SRC_LIST_UNSPEC, + MDBE_SRC_LIST_ENTRY, + __MDBE_SRC_LIST_MAX, +}; +#define MDBE_SRC_LIST_MAX (__MDBE_SRC_LIST_MAX - 1) + +/* per mdb entry per source attributes + * these are embedded in MDBE_SRC_LIST_ENTRY + */ +enum { + MDBE_SRCATTR_UNSPEC, + MDBE_SRCATTR_ADDRESS, + __MDBE_SRCATTR_MAX, +}; +#define MDBE_SRCATTR_MAX (__MDBE_SRCATTR_MAX - 1) + /* Embedded inside LINK_XSTATS_TYPE_BRIDGE */ enum { BRIDGE_XSTATS_UNSPEC, diff -Nru strace-6.1/bundled/linux/include/uapi/linux/if_link.h strace-6.2/bundled/linux/include/uapi/linux/if_link.h --- strace-6.1/bundled/linux/include/uapi/linux/if_link.h 2022-12-11 09:00:00.000000000 +0100 +++ strace-6.2/bundled/linux/include/uapi/linux/if_link.h 2023-01-04 09:00:00.000000000 +0100 @@ -372,6 +372,8 @@ IFLA_TSO_MAX_SEGS, IFLA_ALLMULTI, /* Allmulti count: > 0 means acts ALLMULTI */ + IFLA_DEVLINK_PORT, + __IFLA_MAX }; @@ -559,6 +561,7 @@ IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT, IFLA_BRPORT_MCAST_EHT_HOSTS_CNT, IFLA_BRPORT_LOCKED, + IFLA_BRPORT_MAB, __IFLA_BRPORT_MAX }; #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) diff -Nru strace-6.1/bundled/linux/include/uapi/linux/input-event-codes.h strace-6.2/bundled/linux/include/uapi/linux/input-event-codes.h --- strace-6.1/bundled/linux/include/uapi/linux/input-event-codes.h 2022-12-11 09:00:00.000000000 +0100 +++ strace-6.2/bundled/linux/include/uapi/linux/input-event-codes.h 2023-01-04 09:00:00.000000000 +0100 @@ -614,6 +614,9 @@ #define KEY_KBD_LAYOUT_NEXT 0x248 /* AC Next Keyboard Layout Select */ #define KEY_EMOJI_PICKER 0x249 /* Show/hide emoji picker (HUTRR101) */ #define KEY_DICTATE 0x24a /* Start or Stop Voice Dictation Session (HUTRR99) */ +#define KEY_CAMERA_ACCESS_ENABLE 0x24b /* Enables programmatic access to camera devices. (HUTRR72) */ +#define KEY_CAMERA_ACCESS_DISABLE 0x24c /* Disables programmatic access to camera devices. (HUTRR72) */ +#define KEY_CAMERA_ACCESS_TOGGLE 0x24d /* Toggles the current state of the camera access control. (HUTRR72) */ #define KEY_BRIGHTNESS_MIN 0x250 /* Set Brightness to Minimum */ #define KEY_BRIGHTNESS_MAX 0x251 /* Set Brightness to Maximum */ diff -Nru strace-6.1/bundled/linux/include/uapi/linux/io_uring.h strace-6.2/bundled/linux/include/uapi/linux/io_uring.h --- strace-6.1/bundled/linux/include/uapi/linux/io_uring.h 2022-07-17 22:30:22.000000000 +0200 +++ strace-6.2/bundled/linux/include/uapi/linux/io_uring.h 2023-01-04 09:00:00.000000000 +0100 @@ -10,6 +10,19 @@ #include #include +/* + * this file is shared with liburing and that has to autodetect + * if linux/time_types.h is available or not, it can + * define UAPI_LINUX_IO_URING_H_SKIP_LINUX_TIME_TYPES_H + * if linux/time_types.h is not available + */ +#ifndef UAPI_LINUX_IO_URING_H_SKIP_LINUX_TIME_TYPES_H +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif /* * IO submission data structure (Submission Queue Entry) @@ -50,6 +63,8 @@ __u32 unlink_flags; __u32 hardlink_flags; __u32 xattr_flags; + __u32 msg_ring_flags; + __u32 uring_cmd_flags; }; __u64 user_data; /* data to be passed back at completion time */ /* pack this to avoid bogus arm OABI complaints */ @@ -64,6 +79,10 @@ union { __s32 splice_fd_in; __u32 file_index; + struct { + __u16 addr_len; + __u16 __pad3[1]; + }; }; union { struct { @@ -140,9 +159,19 @@ * IORING_SQ_TASKRUN in the sq ring flags. Not valid with COOP_TASKRUN. */ #define IORING_SETUP_TASKRUN_FLAG (1U << 9) - #define IORING_SETUP_SQE128 (1U << 10) /* SQEs are 128 byte */ #define IORING_SETUP_CQE32 (1U << 11) /* CQEs are 32 byte */ +/* + * Only one task is allowed to submit requests + */ +#define IORING_SETUP_SINGLE_ISSUER (1U << 12) + +/* + * Defer running task work to get events. + * Rather than running bits of task work whenever the task transitions + * try to do it just before it is needed. + */ +#define IORING_SETUP_DEFER_TASKRUN (1U << 13) enum io_uring_op { IORING_OP_NOP, @@ -192,12 +221,22 @@ IORING_OP_GETXATTR, IORING_OP_SOCKET, IORING_OP_URING_CMD, + IORING_OP_SEND_ZC, + IORING_OP_SENDMSG_ZC, /* this goes last, obviously */ IORING_OP_LAST, }; /* + * sqe->uring_cmd_flags + * IORING_URING_CMD_FIXED use registered buffer; pass this flag + * along with setting sqe->buf_index. + */ +#define IORING_URING_CMD_FIXED (1U << 0) + + +/* * sqe->fsync_flags */ #define IORING_FSYNC_DATASYNC (1U << 0) @@ -229,10 +268,13 @@ * * IORING_POLL_UPDATE Update existing poll request, matching * sqe->addr as the old user_data field. + * + * IORING_POLL_LEVEL Level triggered poll. */ #define IORING_POLL_ADD_MULTI (1U << 0) #define IORING_POLL_UPDATE_EVENTS (1U << 1) #define IORING_POLL_UPDATE_USER_DATA (1U << 2) +#define IORING_POLL_ADD_LEVEL (1U << 3) /* * ASYNC_CANCEL flags. @@ -241,10 +283,12 @@ * IORING_ASYNC_CANCEL_FD Key off 'fd' for cancelation rather than the * request 'user_data' * IORING_ASYNC_CANCEL_ANY Match any request + * IORING_ASYNC_CANCEL_FD_FIXED 'fd' passed in is a fixed descriptor */ #define IORING_ASYNC_CANCEL_ALL (1U << 0) #define IORING_ASYNC_CANCEL_FD (1U << 1) #define IORING_ASYNC_CANCEL_ANY (1U << 2) +#define IORING_ASYNC_CANCEL_FD_FIXED (1U << 3) /* * send/sendmsg and recv/recvmsg flags (sqe->ioprio) @@ -253,8 +297,35 @@ * or receive and arm poll if that yields an * -EAGAIN result, arm poll upfront and skip * the initial transfer attempt. + * + * IORING_RECV_MULTISHOT Multishot recv. Sets IORING_CQE_F_MORE if + * the handler will continue to report + * CQEs on behalf of the same SQE. + * + * IORING_RECVSEND_FIXED_BUF Use registered buffers, the index is stored in + * the buf_index field. + * + * IORING_SEND_ZC_REPORT_USAGE + * If set, SEND[MSG]_ZC should report + * the zerocopy usage in cqe.res + * for the IORING_CQE_F_NOTIF cqe. + * 0 is reported if zerocopy was actually possible. + * IORING_NOTIF_USAGE_ZC_COPIED if data was copied + * (at least partially). */ #define IORING_RECVSEND_POLL_FIRST (1U << 0) +#define IORING_RECV_MULTISHOT (1U << 1) +#define IORING_RECVSEND_FIXED_BUF (1U << 2) +#define IORING_SEND_ZC_REPORT_USAGE (1U << 3) + +/* + * cqe.res for IORING_CQE_F_NOTIF if + * IORING_SEND_ZC_REPORT_USAGE was requested + * + * It should be treated as a flag, all other + * bits of cqe.res should be treated as reserved! + */ +#define IORING_NOTIF_USAGE_ZC_COPIED (1U << 31) /* * accept flags stored in sqe->ioprio @@ -262,6 +333,22 @@ #define IORING_ACCEPT_MULTISHOT (1U << 0) /* + * IORING_OP_MSG_RING command types, stored in sqe->addr + */ +enum { + IORING_MSG_DATA, /* pass sqe->len as 'res' and off as user_data */ + IORING_MSG_SEND_FD, /* send a registered fd to another ring */ +}; + +/* + * IORING_OP_MSG_RING flags (sqe->msg_ring_flags) + * + * IORING_MSG_RING_CQE_SKIP Don't post a CQE to the target ring. Not + * applicable for IORING_MSG_DATA, obviously. + */ +#define IORING_MSG_RING_CQE_SKIP (1U << 0) + +/* * IO completion data structure (Completion Queue Entry) */ struct io_uring_cqe { @@ -282,10 +369,13 @@ * IORING_CQE_F_BUFFER If set, the upper 16 bits are the buffer ID * IORING_CQE_F_MORE If set, parent SQE will generate more CQE entries * IORING_CQE_F_SOCK_NONEMPTY If set, more data to read after socket recv + * IORING_CQE_F_NOTIF Set for notification CQEs. Can be used to distinct + * them from sends. */ #define IORING_CQE_F_BUFFER (1U << 0) #define IORING_CQE_F_MORE (1U << 1) #define IORING_CQE_F_SOCK_NONEMPTY (1U << 2) +#define IORING_CQE_F_NOTIF (1U << 3) enum { IORING_CQE_BUFFER_SHIFT = 16, @@ -420,6 +510,12 @@ IORING_REGISTER_PBUF_RING = 22, IORING_UNREGISTER_PBUF_RING = 23, + /* sync cancelation API */ + IORING_REGISTER_SYNC_CANCEL = 24, + + /* register a range of fixed file slots for automatic slot allocation */ + IORING_REGISTER_FILE_ALLOC_RANGE = 25, + /* this goes last */ IORING_REGISTER_LAST }; @@ -466,6 +562,19 @@ __u32 resv2; }; +struct io_uring_notification_slot { + __u64 tag; + __u64 resv[3]; +}; + +struct io_uring_notification_register { + __u32 nr_slots; + __u32 resv; + __u64 resv2; + __u64 data; + __u64 resv3; +}; + /* Skip updating fd indexes set to this value in the fd table */ #define IORING_REGISTER_FILES_SKIP (-2) @@ -483,7 +592,7 @@ __u8 ops_len; /* length of ops[] array below */ __u16 resv; __u32 resv2[3]; - struct io_uring_probe_op ops[0]; + struct io_uring_probe_op ops[]; }; struct io_uring_restriction { @@ -555,4 +664,36 @@ __u64 ts; }; +/* + * Argument for IORING_REGISTER_SYNC_CANCEL + */ +struct io_uring_sync_cancel_reg { + __u64 addr; + __s32 fd; + __u32 flags; + struct __kernel_timespec timeout; + __u64 pad[4]; +}; + +/* + * Argument for IORING_REGISTER_FILE_ALLOC_RANGE + * The range is specified as [off, off + len) + */ +struct io_uring_file_index_range { + __u32 off; + __u32 len; + __u64 resv; +}; + +struct io_uring_recvmsg_out { + __u32 namelen; + __u32 controllen; + __u32 payloadlen; + __u32 flags; +}; + +#ifdef __cplusplus +} +#endif + #endif diff -Nru strace-6.1/bundled/linux/include/uapi/linux/landlock.h strace-6.2/bundled/linux/include/uapi/linux/landlock.h --- strace-6.1/bundled/linux/include/uapi/linux/landlock.h 2022-12-11 09:00:00.000000000 +0100 +++ strace-6.2/bundled/linux/include/uapi/linux/landlock.h 2023-01-04 09:00:00.000000000 +0100 @@ -95,8 +95,19 @@ * A file can only receive these access rights: * * - %LANDLOCK_ACCESS_FS_EXECUTE: Execute a file. - * - %LANDLOCK_ACCESS_FS_WRITE_FILE: Open a file with write access. + * - %LANDLOCK_ACCESS_FS_WRITE_FILE: Open a file with write access. Note that + * you might additionally need the %LANDLOCK_ACCESS_FS_TRUNCATE right in order + * to overwrite files with :manpage:`open(2)` using ``O_TRUNC`` or + * :manpage:`creat(2)`. * - %LANDLOCK_ACCESS_FS_READ_FILE: Open a file with read access. + * - %LANDLOCK_ACCESS_FS_TRUNCATE: Truncate a file with :manpage:`truncate(2)`, + * :manpage:`ftruncate(2)`, :manpage:`creat(2)`, or :manpage:`open(2)` with + * ``O_TRUNC``. Whether an opened file can be truncated with + * :manpage:`ftruncate(2)` is determined during :manpage:`open(2)`, in the + * same way as read and write permissions are checked during + * :manpage:`open(2)` using %LANDLOCK_ACCESS_FS_READ_FILE and + * %LANDLOCK_ACCESS_FS_WRITE_FILE. This access right is available since the + * third version of the Landlock ABI. * * A directory can receive access rights related to files or directories. The * following access right is applied to the directory itself, and the @@ -139,10 +150,9 @@ * * It is currently not possible to restrict some file-related actions * accessible through these syscall families: :manpage:`chdir(2)`, - * :manpage:`truncate(2)`, :manpage:`stat(2)`, :manpage:`flock(2)`, - * :manpage:`chmod(2)`, :manpage:`chown(2)`, :manpage:`setxattr(2)`, - * :manpage:`utime(2)`, :manpage:`ioctl(2)`, :manpage:`fcntl(2)`, - * :manpage:`access(2)`. + * :manpage:`stat(2)`, :manpage:`flock(2)`, :manpage:`chmod(2)`, + * :manpage:`chown(2)`, :manpage:`setxattr(2)`, :manpage:`utime(2)`, + * :manpage:`ioctl(2)`, :manpage:`fcntl(2)`, :manpage:`access(2)`. * Future Landlock evolutions will enable to restrict them. */ /* clang-format off */ @@ -160,6 +170,7 @@ #define LANDLOCK_ACCESS_FS_MAKE_BLOCK (1ULL << 11) #define LANDLOCK_ACCESS_FS_MAKE_SYM (1ULL << 12) #define LANDLOCK_ACCESS_FS_REFER (1ULL << 13) +#define LANDLOCK_ACCESS_FS_TRUNCATE (1ULL << 14) /* clang-format on */ #endif /* _LINUX_LANDLOCK_H */ diff -Nru strace-6.1/bundled/linux/include/uapi/linux/mptcp.h strace-6.2/bundled/linux/include/uapi/linux/mptcp.h --- strace-6.1/bundled/linux/include/uapi/linux/mptcp.h 2022-07-31 23:03:01.000000000 +0200 +++ strace-6.2/bundled/linux/include/uapi/linux/mptcp.h 2023-01-04 09:00:00.000000000 +0100 @@ -158,6 +158,12 @@ * daddr4 | daddr6, sport, dport, backup, if_idx * [, error] * The priority of a subflow has changed. 'error' should not be set. + * + * MPTCP_EVENT_LISTENER_CREATED: family, sport, saddr4 | saddr6 + * A new PM listener is created. + * + * MPTCP_EVENT_LISTENER_CLOSED: family, sport, saddr4 | saddr6 + * A PM listener is closed. */ enum mptcp_event_type { MPTCP_EVENT_UNSPEC = 0, @@ -172,6 +178,9 @@ MPTCP_EVENT_SUB_CLOSED = 11, MPTCP_EVENT_SUB_PRIORITY = 13, + + MPTCP_EVENT_LISTENER_CREATED = 15, + MPTCP_EVENT_LISTENER_CLOSED = 16, }; enum mptcp_event_attr { diff -Nru strace-6.1/bundled/linux/include/uapi/linux/neighbour.h strace-6.2/bundled/linux/include/uapi/linux/neighbour.h --- strace-6.1/bundled/linux/include/uapi/linux/neighbour.h 2022-10-07 10:00:00.000000000 +0200 +++ strace-6.2/bundled/linux/include/uapi/linux/neighbour.h 2023-01-04 09:00:00.000000000 +0100 @@ -52,7 +52,8 @@ #define NTF_STICKY (1 << 6) #define NTF_ROUTER (1 << 7) /* Extended flags under NDA_FLAGS_EXT: */ -#define NTF_EXT_MANAGED (1 << 0) +#define NTF_EXT_MANAGED (1 << 0) +#define NTF_EXT_LOCKED (1 << 1) /* * Neighbor Cache Entry States. @@ -86,6 +87,11 @@ * NTF_EXT_MANAGED flagged neigbor entries are managed by the kernel on behalf * of a user space control plane, and automatically refreshed so that (if * possible) they remain in NUD_REACHABLE state. + * + * NTF_EXT_LOCKED flagged bridge FDB entries are entries generated by the + * bridge in response to a host trying to communicate via a locked bridge port + * with MAB enabled. Their purpose is to notify user space that a host requires + * authentication. */ struct nda_cacheinfo { diff -Nru strace-6.1/bundled/linux/include/uapi/linux/netfilter/ipset/ip_set.h strace-6.2/bundled/linux/include/uapi/linux/netfilter/ipset/ip_set.h --- strace-6.1/bundled/linux/include/uapi/linux/netfilter/ipset/ip_set.h 2022-12-11 09:00:00.000000000 +0100 +++ strace-6.2/bundled/linux/include/uapi/linux/netfilter/ipset/ip_set.h 2023-01-04 09:00:00.000000000 +0100 @@ -85,6 +85,7 @@ IPSET_ATTR_CADT_LINENO = IPSET_ATTR_LINENO, /* 9 */ IPSET_ATTR_MARK, /* 10 */ IPSET_ATTR_MARKMASK, /* 11 */ + IPSET_ATTR_BITMASK, /* 12 */ /* Reserve empty slots */ IPSET_ATTR_CADT_MAX = 16, /* Create-only specific attributes */ @@ -153,6 +154,7 @@ IPSET_ERR_COMMENT, IPSET_ERR_INVALID_MARKMASK, IPSET_ERR_SKBINFO, + IPSET_ERR_BITMASK_NETMASK_EXCL, /* Type specific error codes */ IPSET_ERR_TYPE_SPECIFIC = 4352, diff -Nru strace-6.1/bundled/linux/include/uapi/linux/netfilter/nfnetlink_cttimeout.h strace-6.2/bundled/linux/include/uapi/linux/netfilter/nfnetlink_cttimeout.h --- strace-6.1/bundled/linux/include/uapi/linux/netfilter/nfnetlink_cttimeout.h 2021-02-22 09:00:00.000000000 +0100 +++ strace-6.2/bundled/linux/include/uapi/linux/netfilter/nfnetlink_cttimeout.h 2023-01-04 09:00:00.000000000 +0100 @@ -95,6 +95,7 @@ CTA_TIMEOUT_SCTP_SHUTDOWN_ACK_SENT, CTA_TIMEOUT_SCTP_HEARTBEAT_SENT, CTA_TIMEOUT_SCTP_HEARTBEAT_ACKED, + CTA_TIMEOUT_SCTP_DATA_SENT, __CTA_TIMEOUT_SCTP_MAX }; #define CTA_TIMEOUT_SCTP_MAX (__CTA_TIMEOUT_SCTP_MAX - 1) diff -Nru strace-6.1/bundled/linux/include/uapi/linux/netfilter/nf_tables.h strace-6.2/bundled/linux/include/uapi/linux/netfilter/nf_tables.h --- strace-6.1/bundled/linux/include/uapi/linux/netfilter/nf_tables.h 2022-01-08 09:00:00.000000000 +0100 +++ strace-6.2/bundled/linux/include/uapi/linux/netfilter/nf_tables.h 2023-01-04 09:00:00.000000000 +0100 @@ -97,6 +97,7 @@ * @NFT_MSG_NEWFLOWTABLE: add new flow table (enum nft_flowtable_attributes) * @NFT_MSG_GETFLOWTABLE: get flow table (enum nft_flowtable_attributes) * @NFT_MSG_DELFLOWTABLE: delete flow table (enum nft_flowtable_attributes) + * @NFT_MSG_GETRULE_RESET: get rules and reset stateful expressions (enum nft_obj_attributes) */ enum nf_tables_msg_types { NFT_MSG_NEWTABLE, @@ -124,6 +125,7 @@ NFT_MSG_NEWFLOWTABLE, NFT_MSG_GETFLOWTABLE, NFT_MSG_DELFLOWTABLE, + NFT_MSG_GETRULE_RESET, NFT_MSG_MAX, }; @@ -760,6 +762,7 @@ NFT_PAYLOAD_NETWORK_HEADER, NFT_PAYLOAD_TRANSPORT_HEADER, NFT_PAYLOAD_INNER_HEADER, + NFT_PAYLOAD_TUN_HEADER, }; /** @@ -779,6 +782,32 @@ NFT_PAYLOAD_L4CSUM_PSEUDOHDR = (1 << 0), }; +enum nft_inner_type { + NFT_INNER_UNSPEC = 0, + NFT_INNER_VXLAN, + NFT_INNER_GENEVE, +}; + +enum nft_inner_flags { + NFT_INNER_HDRSIZE = (1 << 0), + NFT_INNER_LL = (1 << 1), + NFT_INNER_NH = (1 << 2), + NFT_INNER_TH = (1 << 3), +}; +#define NFT_INNER_MASK (NFT_INNER_HDRSIZE | NFT_INNER_LL | \ + NFT_INNER_NH | NFT_INNER_TH) + +enum nft_inner_attributes { + NFTA_INNER_UNSPEC, + NFTA_INNER_NUM, + NFTA_INNER_TYPE, + NFTA_INNER_FLAGS, + NFTA_INNER_HDRSIZE, + NFTA_INNER_EXPR, + __NFTA_INNER_MAX +}; +#define NFTA_INNER_MAX (__NFTA_INNER_MAX - 1) + /** * enum nft_payload_attributes - nf_tables payload expression netlink attributes * diff -Nru strace-6.1/bundled/linux/include/uapi/linux/tcp.h strace-6.2/bundled/linux/include/uapi/linux/tcp.h --- strace-6.1/bundled/linux/include/uapi/linux/tcp.h 2022-07-21 15:14:55.000000000 +0200 +++ strace-6.2/bundled/linux/include/uapi/linux/tcp.h 2023-01-04 09:00:00.000000000 +0100 @@ -284,6 +284,11 @@ __u32 tcpi_snd_wnd; /* peer's advertised receive window after * scaling (bytes) */ + __u32 tcpi_rcv_wnd; /* local advertised receive window after + * scaling (bytes) + */ + + __u32 tcpi_rehash; /* PLB or timeout triggered rehash attempts */ }; /* netlink attributes types for SCM_TIMESTAMPING_OPT_STATS */ @@ -315,6 +320,7 @@ TCP_NLA_BYTES_NOTSENT, /* Bytes in write queue not yet sent */ TCP_NLA_EDT, /* Earliest departure time (CLOCK_MONOTONIC) */ TCP_NLA_TTL, /* TTL or hop limit of a packet received */ + TCP_NLA_REHASH, /* PLB and timeout triggered rehash attempts */ }; /* for TCP_MD5SIG socket option */ diff -Nru strace-6.1/bundled/linux/include/uapi/linux/v4l2-common.h strace-6.2/bundled/linux/include/uapi/linux/v4l2-common.h --- strace-6.1/bundled/linux/include/uapi/linux/v4l2-common.h 2021-02-06 09:00:00.000000000 +0100 +++ strace-6.2/bundled/linux/include/uapi/linux/v4l2-common.h 2023-01-04 09:00:00.000000000 +0100 @@ -10,45 +10,6 @@ * * Copyright (C) 2012 Nokia Corporation * Contact: Sakari Ailus - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * Alternatively you can redistribute this file under the terms of the - * BSD license as stated below: - * - * 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 names of its contributors may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "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 COPYRIGHT - * OWNER OR CONTRIBUTORS 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 __V4L2_COMMON__ diff -Nru strace-6.1/bundled/linux/include/uapi/linux/v4l2-controls.h strace-6.2/bundled/linux/include/uapi/linux/v4l2-controls.h --- strace-6.1/bundled/linux/include/uapi/linux/v4l2-controls.h 2022-12-11 09:00:00.000000000 +0100 +++ strace-6.2/bundled/linux/include/uapi/linux/v4l2-controls.h 2023-01-04 09:00:00.000000000 +0100 @@ -4,44 +4,6 @@ * * Copyright (C) 1999-2012 the contributors * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * Alternatively you can redistribute this file under the terms of the - * BSD license as stated below: - * - * 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 names of its contributors may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "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 COPYRIGHT - * OWNER OR CONTRIBUTORS 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. - * * The contents of this header was split off from videodev2.h. All control * definitions should be added to this header, which is included by * videodev2.h. @@ -231,6 +193,12 @@ */ #define V4L2_CID_USER_DW100_BASE (V4L2_CID_USER_BASE + 0x1190) +/* + * The base for Aspeed driver controls. + * We reserve 16 controls for this driver. + */ +#define V4L2_CID_USER_ASPEED_BASE (V4L2_CID_USER_BASE + 0x11a0) + /* MPEG-class control IDs */ /* The MPEG controls are applicable to all codec controls * and the 'MPEG' part of the define is historical */ @@ -1017,6 +985,8 @@ #define V4L2_CID_CAMERA_SENSOR_ROTATION (V4L2_CID_CAMERA_CLASS_BASE+35) +#define V4L2_CID_HDR_SENSOR_MODE (V4L2_CID_CAMERA_CLASS_BASE+36) + /* FM Modulator class control IDs */ #define V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900) diff -Nru strace-6.1/bundled/linux/include/uapi/linux/version.h strace-6.2/bundled/linux/include/uapi/linux/version.h --- strace-6.1/bundled/linux/include/uapi/linux/version.h 2022-12-11 09:00:00.000000000 +0100 +++ strace-6.2/bundled/linux/include/uapi/linux/version.h 2023-01-04 09:00:00.000000000 +0100 @@ -1,5 +1,5 @@ -#define LINUX_VERSION_CODE 393472 +#define LINUX_VERSION_CODE 393728 #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + ((c) > 255 ? 255 : (c))) #define LINUX_VERSION_MAJOR 6 -#define LINUX_VERSION_PATCHLEVEL 1 +#define LINUX_VERSION_PATCHLEVEL 2 #define LINUX_VERSION_SUBLEVEL 0 diff -Nru strace-6.1/bundled/linux/include/uapi/linux/videodev2.h strace-6.2/bundled/linux/include/uapi/linux/videodev2.h --- strace-6.1/bundled/linux/include/uapi/linux/videodev2.h 2022-12-11 09:00:00.000000000 +0100 +++ strace-6.2/bundled/linux/include/uapi/linux/videodev2.h 2023-01-04 09:00:00.000000000 +0100 @@ -627,6 +627,8 @@ #define V4L2_PIX_FMT_NV12_16L16 v4l2_fourcc('H', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 16x16 tiles */ #define V4L2_PIX_FMT_NV12_32L32 v4l2_fourcc('S', 'T', '1', '2') /* 12 Y/CbCr 4:2:0 32x32 tiles */ #define V4L2_PIX_FMT_P010_4L4 v4l2_fourcc('T', '0', '1', '0') /* 12 Y/CbCr 4:2:0 10-bit 4x4 macroblocks */ +#define V4L2_PIX_FMT_NV12_8L128 v4l2_fourcc('A', 'T', '1', '2') /* Y/CbCr 4:2:0 8x128 tiles */ +#define V4L2_PIX_FMT_NV12_10BE_8L128 v4l2_fourcc_be('A', 'X', '1', '2') /* Y/CbCr 4:2:0 10-bit 8x128 tiles */ /* Tiled YUV formats, non contiguous planes */ #define V4L2_PIX_FMT_NV12MT v4l2_fourcc('T', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 64x32 tiles */ @@ -748,6 +750,7 @@ #define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4') /* BTTV 8-bit dithered RGB */ #define V4L2_PIX_FMT_QC08C v4l2_fourcc('Q', '0', '8', 'C') /* Qualcomm 8-bit compressed */ #define V4L2_PIX_FMT_QC10C v4l2_fourcc('Q', '1', '0', 'C') /* Qualcomm 10-bit compressed */ +#define V4L2_PIX_FMT_AJPG v4l2_fourcc('A', 'J', 'P', 'G') /* Aspeed JPEG */ /* 10bit raw packed, 32 bytes for every 25 pixels, last LSB 6 bits unused */ #define V4L2_PIX_FMT_IPU3_SBGGR10 v4l2_fourcc('i', 'p', '3', 'b') /* IPU3 packed 10-bit BGGR bayer */ @@ -1730,6 +1733,8 @@ __u8 *p_u8; __u16 *p_u16; __u32 *p_u32; + __u32 *p_s32; + __u32 *p_s64; struct v4l2_area *p_area; struct v4l2_ctrl_h264_sps *p_h264_sps; struct v4l2_ctrl_h264_pps *p_h264_pps; diff -Nru strace-6.1/bundled/linux/include/uapi/rdma/ib_user_verbs.h strace-6.2/bundled/linux/include/uapi/rdma/ib_user_verbs.h --- strace-6.1/bundled/linux/include/uapi/rdma/ib_user_verbs.h 2022-10-07 10:00:00.000000000 +0200 +++ strace-6.2/bundled/linux/include/uapi/rdma/ib_user_verbs.h 2023-01-04 09:00:00.000000000 +0100 @@ -105,6 +105,18 @@ IB_USER_VERBS_EX_CMD_MODIFY_CQ }; +/* see IBA A19.4.1.1 Placement Types */ +enum ib_placement_type { + IB_FLUSH_GLOBAL = 1U << 0, + IB_FLUSH_PERSISTENT = 1U << 1, +}; + +/* see IBA A19.4.1.2 Selectivity Level */ +enum ib_selectivity_level { + IB_FLUSH_RANGE = 0, + IB_FLUSH_MR, +}; + /* * Make sure that all structs defined in this file remain laid out so * that they pack the same way on 32-bit and 64-bit architectures (to @@ -466,6 +478,8 @@ IB_UVERBS_WC_BIND_MW = 5, IB_UVERBS_WC_LOCAL_INV = 6, IB_UVERBS_WC_TSO = 7, + IB_UVERBS_WC_FLUSH = 8, + IB_UVERBS_WC_ATOMIC_WRITE = 9, }; struct ib_uverbs_wc { @@ -784,6 +798,8 @@ IB_UVERBS_WR_RDMA_READ_WITH_INV = 11, IB_UVERBS_WR_MASKED_ATOMIC_CMP_AND_SWP = 12, IB_UVERBS_WR_MASKED_ATOMIC_FETCH_AND_ADD = 13, + IB_UVERBS_WR_FLUSH = 14, + IB_UVERBS_WR_ATOMIC_WRITE = 15, /* Review enum ib_wr_opcode before modifying this */ }; @@ -1331,6 +1347,11 @@ /* Deprecated. Please use IB_UVERBS_RAW_PACKET_CAP_SCATTER_FCS. */ IB_UVERBS_DEVICE_RAW_SCATTER_FCS = 1ULL << 34, IB_UVERBS_DEVICE_PCI_WRITE_END_PADDING = 1ULL << 36, + /* Flush placement types */ + IB_UVERBS_DEVICE_FLUSH_GLOBAL = 1ULL << 38, + IB_UVERBS_DEVICE_FLUSH_PERSISTENT = 1ULL << 39, + /* Atomic write attributes */ + IB_UVERBS_DEVICE_ATOMIC_WRITE = 1ULL << 40, }; enum ib_uverbs_raw_packet_caps { diff -Nru strace-6.1/ChangeLog strace-6.2/ChangeLog --- strace-6.1/ChangeLog 2022-12-12 19:29:18.000000000 +0100 +++ strace-6.2/ChangeLog 2023-02-26 22:21:13.000000000 +0100 @@ -1,3 +1,704 @@ +2023-02-26 Dmitry V. Levin + + Prepare for 6.2 release. + * NEWS: Update for 6.2 release. + + Update copyright headers. + Headers updated automatically using maint/update_copyright_years.sh + script. + +2023-02-24 Dmitry V. Levin + + Fix build on alpha. + Workaround a bug in glibc headers that fail to provide + si_trapno field in their definition of siginfo_t on alpha. + + Link: https://sourceware.org/bugzilla/show_bug.cgi?id=30173 + Resolves: https://github.com/strace/strace/issues/220 + + * configure.ac (AC_CHECK_MEMBERS): Add siginfo_t.si_trapno. + * src/printsiginfo.c [ALPHA]: Guard use of si_trapno with + HAVE_SIGINFO_T_SI_TRAPNO. + * tests/ptrace.c [ALPHA]: Likewise. + * NEWS: Mention this fix. + +2023-02-23 Dmitry V. Levin + + filter_seccomp: do not call PR_SET_NO_NEW_PRIVS if privileged enough. + If strace process is privileged enough to add SECCOMP_MODE_FILTER + without PR_SET_NO_NEW_PRIVS, there is no need to do the latter. + + * src/filter_seccomp.c (init_seccomp_filter): Try to add + SECCOMP_MODE_FILTER first, and if it failed with EACCES, do + PR_SET_NO_NEW_PRIVS and try to add SECCOMP_MODE_FILTER again. + +2023-02-22 Masatake YAMATO + + NEWS: mention collision resolution for overlapping ioctl commands. + Resolves: https://github.com/strace/strace/pull/239 + +2023-02-21 Masatake YAMATO + + dyxlat: make the type of the xlat created by dyxlat_alloc customizable. + * src/defs.h (dyxlat_alloc): Add xlat_type argument. + * src/dyxlat.c (dyxlat_alloc): Likewise. + * src/socketutils.c (genl_families_xlat): Pass XT_NORMAL to dyxlat_alloc + invocation. + +2023-02-20 Masatake YAMATO + + ioctl: use finfo as hints for resolving overlapping ioctl commands. + Such an overlapping can be observed, e.g. when running vi under strace: + + ioctl(0, SNDCTL_TMR_START or TCSETS, {B38400 ... + + After this change, when the file descriptor corresponds to a terminal + device, strace would be able to resolve the collision between ioctl + commands from different subsystems: + + ioctl(0, TCSETS, {B38400 ... + + * src/defs.h (term_ioctl_decode_command_number): New function + declaration. + * src/ioctl.c (ioctl_decode_command_number): Add a new argument + for passing finfo that can be used as hints for decoding ioctl commands. + Handle the code `T'. + (SYS_FUNC(ioctl)): Pass finfo as hints to ioctl_decode_command_number. + * src/term.c: Include "xlat/term_cmds_overlapping.h". + (term_ioctl_decode_command_number): Decode the command in + this earlier stage if the corresponding file descriptor corresponds + to a terminal device. + * src/xlat/term_cmds_overlapping.in: New file listing overlapping + tty ioctl commands. + * tests/ioctl_termios.c (main): Extend cmds[] in checks[]. + (main::checks::cmds): Add new member "pass_invalid_fd". + Omit " or ..." substring in case of TCSETS, TCSETSW, and TCSETSF for + a valid tty descriptor. + Add test commands for invalid descriptors. + +2023-02-20 Masatake YAMATO + + ioctl: pass finfo to ioctl_decode() as hints for decoding. + Just pass the data, a real use case comes in subsequent commits. + + * src/ioctl.c (ioctl_decode): Add "finfo" argument. + (SYS_FUNC(ioctl)): Pass the finfo for the target fd to ioctl_decode. + +2023-02-20 Masatake YAMATO + + ioctl: prepare finfo only when ioctl command can overlap. + If an ioctl decoder does not deal with overlapping commands, + avoid issuing extra syscalls required to obtain finfo. + + * src/ioctl.c (ioctl_command_overlaps): New function. + (SYS_FUNC(ioctl)): Call getfdpath_pid only when ioctl_command_overlaps + returns true. + +2023-02-20 Masatake YAMATO + + ioctl: collect finfo just before decoding ioctl command. + This way finfo can be used as hints for decoding ioctl commands. + + * src/defs.h (get_finfo_for_dev): New declaration. + (printfd_with_finfo): New inline function - a thin wrapper around + printfd_pid_with_finfo. + * src/util.c (get_finfo_for_dev): Remove static modifier to + make it reusable the ioctl syscall decoder. + (SYS_FUNC(ioctl)): Call get_finfo_for_dev and printfd_with_finfo + instead of calling printfd. + +2023-02-19 Masatake YAMATO + + Allow to pass pre-filled finfo data to printdev() from upper layers. + printdev() used to collect struct finfo data just before printing. + However, if the finfo data can be filled somewhere else, printdev() + does not have to collect the finfo data by itself. + + * src/defs.h (printfd_pid_with_finfo): New function declaration. + (printfd_pid): Turn into a thin wrapper around printfd_pid_with_finfo. + (struct finfo): New member "deleted". + * src/util.c (get_finfo_for_dev): Initialize "deleted" member of finfo. + (printdev): Add finfo argument. If non-NULL is specified as finfo + argument, omit get_finfo_for_dev invocation. + (printfd_pid): Rename to printfd_pid_with_finfo, add finfo argument + and pass it on to printdev. + +2023-02-19 Masatake YAMATO + + util: introduce get_finfo_for_dev function. + printdev() function does two things: it first obtains the information + about the given fd and then prints it. Introduce get_finfo_for_dev() + to implement the first part of printdev(). + + struct finfo is a new data structure for keeping information passed from + get_finfo_for_dev() to printdev(). + + * src/defs.h (struct finfo): New data structure. + * src/utils.c (get_finfo_for_dev): New function derived from printdev. + (printdev): Use it. + +2023-02-19 Dmitry V. Levin + + tests: enhance ptrace_syscall_info error diagnostics. + * tests/ptrace_syscall_info.c (test_none, test_entry, test_exit): In + case of a fatal mismatch, print more expected output before termination, + this helps in diagnostics of linux kernel bugs. + +2023-02-18 Dmitry V. Levin + + Update .mailmap. + * .mailmap: Update email addresses of Elvira Khabirova. + +2023-02-18 Elvira Khabirova + + tests: remove getpid and getppid from check_PROGRAMS. + getpid and getppid are already listed in $(PURE_EXECUTABLES). + Remove the duplicate entries. + + * tests/Makefile.am (check_PROGRAMS): Remove getpid and getppid. + + Fixes: v4.17~123 ("tests: add tests for getpid and getppid syscalls") + +2023-02-15 Dmitry V. Levin + + strace: declare nflag variable as static. + Apparently, nflag is not used outside the compilation unit where it is + defined. + + * src/strace.c (nflag): Add static qualifier. + + Reported-by: Masatake YAMATO + Fixes: v5.9~55 "strace: add an option for printing syscall numbers" + +2023-02-14 Dmitry V. Levin + + treewide: replace "sed -r" with "sed -E" + Use -E option instead of -r to enable use extended regular expression + syntax in sed expressions. It has been supported for years by GNU sed, + and is now included in POSIX. + + Link: https://www.austingroupbugs.net/view.php?id=528 + Resolves: https://github.com/strace/strace/issues/216 + +2023-02-13 Dmitry V. Levin + + xlat: update V4L2_CTRL_TYPE_* constants. + * src/xlat/v4l2_control_types.in (V4L2_CTRL_TYPE_MPEG2_QUANTISATION, + V4L2_CTRL_TYPE_MPEG2_SEQUENCE, V4L2_CTRL_TYPE_MPEG2_PICTURE): New + constants introduced by Linux kernel commit v5.14-rc1~165^2~241. + (V4L2_CTRL_TYPE_VP9_COMPRESSED_HDR, V4L2_CTRL_TYPE_VP9_FRAME): New + constants introduced by Linux kernel commit v5.17-rc1~114^2~207. + (V4L2_CTRL_TYPE_HEVC_SPS, V4L2_CTRL_TYPE_HEVC_PPS, + V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS, V4L2_CTRL_TYPE_HEVC_SCALING_MATRIX, + V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS): New constants introduced by Linux + kernel commit v6.0-rc1~139^2~93. + * NEWS: Mention this change. + + xlat: update V4L2_CTRL_FLAG_* constants. + * src/xlat/v4l2_control_flags.in (V4L2_CTRL_FLAG_DYNAMIC_ARRAY): New + constant introduced by Linux kernel commit v6.0-rc1~139^2~104. + * tests/ioctl_v4l2-success.c (main): Update expected output. + * NEWS: Mention this change. + + xlat: update V4L2_PIX_FMT_* constants. + * src/xlat/v4l2_pix_fmts.in (V4L2_PIX_FMT_P010): New constant + introduced by Linux kernel commit v6.0-rc1~139^2~420. + (V4L2_PIX_FMT_YUVA32, V4L2_PIX_FMT_YUVX32): New constants + introduced by Linux kernel commit v6.0-rc1~139^2~126. + (V4L2_PIX_FMT_HEVC_SLICE): New constant introduced by Linux kernel + commit v6.0-rc1~139^2~94. + (V4L2_PIX_FMT_P010_4L4): New constant introduced by Linux kernel + commit v6.0-rc1~139^2~73. + (V4L2_PIX_FMT_AJPG): New constant introduced by Linux kernel commit + v6.2-rc1~125^2~249^2~13. + V4L2_PIX_FMT_NV12_8L128, V4L2_PIX_FMT_NV12_10BE_8L128): New constants + introduced by Linux kernel commit v6.2-rc1~125^2~50. + * NEWS: Mention this change. + + xlat: update V4L2_CID_* constants. + * src/xlat/v4l2_control_id_bases.in (V4L2_CID_USER_ISL7998X_BASE): New + constant introduced by Linux kernel commit v5.18-rc1~153^2~82^2~6. + (V4L2_CID_USER_DW100_BASE): New constant introduced by Linux kernel + commit v6.1-rc1~130^2~98. + (V4L2_CID_USER_ASPEED_BASE): New constant introduced by Linux kernel + commit v6.2-rc1~125^2~249^2~12. + * src/xlat/v4l2_control_ids.in (V4L2_CID_COLORFX_RGB): New constant + introduced by Linux kernel commit v5.17-rc1~114^2~388. + * NEWS: Mention this change. + +2023-02-12 Dmitry V. Levin + + xlat: update NFT_MSG_* constants. + * src/xlat/nf_nftables_msg_types.in (NFT_MSG_GETRULE_RESET): New + constant introduced by Linux kernel commit v6.2-rc1~99^2~210^2~2. + * src/netlink.c (decode_nlmsg_flags_netfilter) Handle it. + * NEWS: Mention this change. + +2023-02-11 Dmitry V. Levin + + xlat: update NTF_EXT_* constants. + * src/xlat/neighbor_cache_entry_ext_flags.in (NTF_EXT_LOCKED): New + constant introduced by Linux kernel commit v6.2-rc1~99^2~297^2~1. + * tests/nlattr_ndmsg.c (main): Update expected output. + * NEWS: Mention this change. + +2023-02-10 Dmitry V. Levin + + xlat: update LANDLOCK_ACCESS_FS_* constants. + * src/xlat/landlock_ruleset_access_fs.in (LANDLOCK_ACCESS_FS_TRUNCATE): + New constant introduced by Linux kernel commit v6.2-rc1~138^2~8. + * tests/landlock_add_rule.c (main): Update expected output. + * tests/landlock_create_ruleset.c: Likewise. + * NEWS: Mention this change. + +2023-02-09 Dmitry V. Levin + + xlat: update KVM_* constants. + * src/xlat/kvm_cap.in (KVM_CAP_S390_PROTECTED_ASYNC_DISABLE): New + constant introduced by Linux kernel commit v6.2-rc1~77^2~5^2~5. + (KVM_CAP_DIRTY_LOG_RING_WITH_BITMAP): New constant introduced + by Linux kernel commit v6.2-rc1~77^2~4. + * NEWS: Mention this change. + +2023-02-08 Dmitry V. Levin + + Revert "Update .mailmap" + * .mailmap: Remove email addresses of Sven Schnelle per request. + + This reverts commit 3c26d12962a8d907f276d218bf9acc2e522e9340. + +2023-02-07 Dmitry V. Levin + + tests: check umovestr return value when the string crosses a page boundary + * tests/ioctl_kd.c (check_kbdsent): New check. + +2023-02-06 Dmitry V. Levin + + ucopy: fix umovestr return value when the string crosses page boundaries + * src/ucopy.c (umovestr): When the string crosses page boundaries, + take the length on each page into account. + + Resolves: https://github.com/strace/strace/issues/217 + +2023-02-05 Dmitry V. Levin + + src: fix typo in comments. + * src/util.c: Replace umovenstr with umovestr in comments. + +2023-01-31 Helge Deller + + pc.test: Fix up order of strace messages again. + It seems I managed to swap two lines with my last patch. + This fixes it up again and brings it in the correct logical order. + + There is no functional change. The testcase succeeds in both cases. + + Fixes: 1b828bb0f48a ("hppa: Fix pc.test testcase on hppa architecture") + +2023-01-30 Sven Schnelle + + membarrier: add MEMBARRIER_CMD_GET_REGISTRATIONS flag. + + * src/xlat/membarrier_cmds.in (MEMBARRIER_CMD_GET_REGISTRATIONS): New + constant which is likely to be introduced in Linux kernel v6.3. + * tests/membarrier.c (main): Update expected output. + * NEWS: Mention the change. + +2023-01-30 Gleb Fotengauer-Malinovskiy + + Update ioctl entries from linux v6.2. + * src/linux/32/ioctls_inc_align16.h: Update from linux v6.2-rc6 using + ioctls_gen.sh. + * src/linux/32/ioctls_inc_align32.h: Likewise. + * src/linux/32/ioctls_inc_align64.h: Likewise. + * src/linux/64/ioctls_inc.h: Likewise. + * src/linux/x32/ioctls_inc0.h: Likewise. + * src/linux/aarch64/ioctls_arch0.h: Likewise. + * src/linux/i386/ioctls_arch0.h: Likewise. + * src/linux/mips/ioctls_arch0.h: Likewise. + * src/linux/powerpc/ioctls_arch0.h: Likewise. + * src/linux/s390/ioctls_arch0.h: Likewise. + * src/linux/s390x/ioctls_arch0.h: Likewise. + * src/linux/x86_64/ioctls_arch0.h: Likewise. + * NEWS: Mention this. + +2023-01-29 Helge Deller + + hppa: Fix pc.test testcase on hppa architecture. + On hppa the lowest 2 bits of an address encodes the (parisc-specific) + address space in which a program runs. For userspace processes the space + number is 3, which is why an instruction at e.g. 0x100 shows up in the + address registers as 0x103. + This behaviour is different than on other architectures, which is + why the pc.test testcase fails on hppa. + + Fix the testcase by simply dropping the last nibble of the address + when comparing the output, e.g. search for "0x10?" instead of "0x100". + +2023-01-29 Helge Deller + + hppa: Drop special handling of fanotify syscalls on parisc. + The fanotify syscall in the parisc kernel has been fixed by Linux kernel + commit v3.16-rc5~6^2~1 and now behaves like the other architectures, so + drop the special workaround for hppa. + +2023-01-29 Helge Deller + + hppa: Fix display of mask for rt_sigreturn syscall. + Fix FUNC_GET_RT_SIGFRAME_ADDR to return correct address to the + sigframe so that the mask can be shown for the rt_sigreturn syscall. + + This patch cleans up and simplifies the address calculation when + running on Linux kernels < 5.18, where the signal trampoline code + was stored in the executable stack. + + With kernel 5.18 we added a VDSO with the trampoline code, could drop + the neccessarity of an executable stack and provided the offset to the + ucontext of the rt_sigframe struct for gdb and to simplify the + calculation sigframe address. + + With this patch the rt_sigreturn.gen.test passes for 5.16 and 6.1 + kernels on hppa. + +2023-01-29 Helge Deller + + hppa: Disable workaround for hppa in syscall number tampering. + This basically disables the workaround added by commit ce494f63d2 + ("hppa: workaround kernel bug in syscall number tampering"). + It's not needed any longer and has been fixed in upstream kernels + by Linux kernel commit v5.0-rc8~9^2~1. + + Basically the remaining part of that commit could go as well, + since hppa was the only user. + +2023-01-29 Helge Deller + + hppa: Switch to getregset call on hppa. + PTRACE_GETREGSET support was introduced in the parisc kernel by Linux + kernel commit v4.7-rc1~58^2~10. + + This fixes the tampering of syscall return values. + +2023-01-26 Jan Macku + + ci: Add missing permission `security-events` + Differential ShellCheck requires permission `security-events: write` + to successfully upload the SARIF file to GitHub. + + This permission might be optional for some repositories since they + allow all permissions for all workflows in settings. But I wouldn't advise + this setting since the best security practice is to allow only a minimal + set of required permissions. + +2023-01-21 Dmitry V. Levin + + xlat: update KEY_* constants. + * src/xlat/evdev_keycode.in (KEY_CAMERA_ACCESS_ENABLE, + KEY_CAMERA_ACCESS_DISABLE, KEY_CAMERA_ACCESS_TOGGLE): New constants + introduced by Linux kernel commit v6.2-rc1~116^2^2~117. + * NEWS: Mention this. + +2023-01-20 Dmitry V. Levin + + xlat: update IFLA_* constants. + * src/xlat/rtnl_ifla_brport_attrs.in (IFLA_BRPORT_MAB): New constant + introduced by Linux kernel commit v6.2-rc1~99^2~297^2~1. + * src/xlat/rtnl_link_attrs.in (IFLA_DEVLINK_PORT): New constant + introduced by Linux kernel commit v6.2-rc1~99^2~296^2. + * src/rtnl_link.c (ifla_brport_nla_decoders): Add IFLA_BRPORT_MAB. + (ifinfomsg_nla_decoders): Add IFLA_DEVLINK_PORT. + * tests/nlattr_ifla_brport.c (main): Update expected output. + * tests/nlattr_ifla_linkinfo.c: Likewise. + * NEWS: Mention this. + +2023-01-16 Jan Macku + + ci(lint): add shell linter - Differential ShellCheck. + It performs differential ShellCheck scans and report results directly in + pull request. + + documentation: + https://github.com/redhat-plumbers-in-action/differential-shellcheck + +2023-01-06 Dmitry V. Levin + + xlat: update BPF_* constants. + * src/xlat/bpf_map_types.in (BPF_MAP_TYPE_CGRP_STORAGE): New constant + introduced by Linux kernel commit v6.2-rc1~99^2~309^2~7^2~6. + * NEWS: Mention this change. + * tests/bpf.c (BPF_MAP_CREATE_checks): Update. + +2023-01-05 Dmitry V. Levin + + xlat: update ALG_* constants. + * src/xlat/sock_alg_options.in (ALG_SET_KEY_BY_KEY_SERIAL): New constant + introduced by Linux kernel commit v6.2-rc1~87^2~128. + * NEWS: Mention this change. + +2023-01-04 Dmitry V. Levin + + bundled: update linux UAPI headers to v6.2-rc2. + * bundled/linux/include/uapi/linux/btrfs.h: Update to headers_install'ed + Linux kernel v6.2-rc2. + * bundled/linux/include/uapi/linux/btrfs_tree.h: Likewise. + * bundled/linux/include/uapi/linux/dcbnl.h: Likewise. + * bundled/linux/include/uapi/linux/fscrypt.h: Likewise. + * bundled/linux/include/uapi/linux/if_alg.h: Likewise. + * bundled/linux/include/uapi/linux/if_bridge.h: Likewise. + * bundled/linux/include/uapi/linux/if_link.h: Likewise. + * bundled/linux/include/uapi/linux/input-event-codes.h: Likewise. + * bundled/linux/include/uapi/linux/io_uring.h: Likewise. + * bundled/linux/include/uapi/linux/landlock.h: Likewise. + * bundled/linux/include/uapi/linux/mptcp.h: Likewise. + * bundled/linux/include/uapi/linux/neighbour.h: Likewise. + * bundled/linux/include/uapi/linux/netfilter/ipset/ip_set.h: Likewise. + * bundled/linux/include/uapi/linux/netfilter/nf_tables.h: Likewise. + * bundled/linux/include/uapi/linux/netfilter/nfnetlink_cttimeout.h: Likewise. + * bundled/linux/include/uapi/linux/tcp.h: Likewise. + * bundled/linux/include/uapi/linux/v4l2-common.h: Likewise. + * bundled/linux/include/uapi/linux/v4l2-controls.h: Likewise. + * bundled/linux/include/uapi/linux/version.h: Likewise. + * bundled/linux/include/uapi/linux/videodev2.h: Likewise. + * bundled/linux/include/uapi/rdma/ib_user_verbs.h: Likewise. + +2023-01-03 Dmitry V. Levin + + io_uring: prepare for update. + * src/io_uring.c: Include "kernel_time_types.h". + (UAPI_LINUX_IO_URING_H_SKIP_LINUX_TIME_TYPES_H): New macro. + * tests/io_uring_register.c: Likewise. + * tests/io_uring_setup.c: Likewise. + +2023-01-02 Dmitry V. Levin + + tests: enable time_types.h based tests unconditionally. + * tests/msg_control.c: Do not include , + include "kernel_time_types.h" unconditionally instead. + (test_scm_timestamp_new, test_scm_timestampns_new): Compile + unconditionally. + (test_sol_socket): Call them unconditionally. + * tests/sockopt-timestamp.c: Do not include , + include "kernel_time_types.h" unconditionally instead. + (print_timestamp_new, print_timestampns_new): Compile unconditionally. + (main): Call them unconditionally. + +2023-01-01 Dmitry V. Levin + + Provide fallback definitions for __kernel_sock_timeval and __kernel_timespec + If kernel headers do not provide linux/time_types.h, provide + fallback definitions for __kernel_sock_timeval and __kernel_timespec. + + * src/kernel_timespec.h [!HAVE_STRUCT___KERNEL_TIMESPEC] + (__kernel_timespec): New macro. + + * src/kernel_timespec.h (struct kernel_timespec64_t, + struct kernel_timespec32_t): New types. + * src/kernel_time_types.h: New file. + * src/Makefile.am (libstrace_a_SOURCES): Add it. + +2022-12-31 Dmitry V. Levin + + src: introduce tprint*_sysret_* helpers. + * src/print_fields.h (tprint_sysret_begin, tprints_sysret_next, + tprints_sysret_string, tprint_sysret_pseudo_rval, tprint_sysret_end): + New functions. + * src/strace.c (print_event_exit): Use them. + * src/syscall.c (print_err_ret, print_injected_note, print_erestart, + syscall_exiting_trace): Likewise. + +2022-12-30 Dmitry V. Levin + + print_syscall_resume: always update printing_tcp. + * src/syscall.c (print_syscall_resume): Explicitly update printing_tcp + so that printing_tcp is updated even if printleader is not invoked. + (syscall_exiting_trace): Do not update printing_tcp after + print_syscall_resume invocation. + * src/strace.c (print_event_exit): Likewise. + +2022-12-29 Dmitry V. Levin + + printleader: do not mark output as unfinished unnecessarily. + * src/strace.c (printleader): Do not mark staged output + in other processes as unfinished. + * tests/status-successful-threads.c: New file. + * tests/status-successful-threads.test: New test. + * tests/.gitignore: Add status-successful-threads. + * tests/Makefile.am (check_PROGRAMS): Likewise. + (status_successful_threads_LDADD): New variable. + (MISC_TESTS): Add status-successful-threads.test. + +2022-12-28 Dmitry V. Levin + + print_event_exit: do not mark output as unfinished unnecessarily. + * src/strace.c (print_event_exit): When handling PTRACE_EVENT_EXIT for + a process, do not mark staged output in other processes as unfinished. + * tests/status-detached-threads.c: New file. + * tests/status-detached-threads.test: New test. + * tests/.gitignore: Add status-detached-threads. + * tests/Makefile.am (check_PROGRAMS): Likewise. + (status_detached_threads_LDADD): New variable. + (MISC_TESTS): Add status-detached-threads.test. + +2022-12-27 Dmitry V. Levin + + src: do not use STRACE_PRINTF outside print_fields.h. + This macro was not intended to be used outside print_fields.h + + * src/v4l2.c (PRINT_FIELD_FRACT): Replace STRACE_PRINTF with + tprintf_string. + +2022-12-26 Dmitry V. Levin + + tprints_comment: use tprint_comment_* helpers. + * src/strace.c (tprints_comment): Use tprint_comment_begin + and tprint_comment_end. + +2022-12-25 Dmitry V. Levin + + syscall: introduce print_erestart helper. + * src/syscall.c (print_erestart): New function. + (syscall_exiting_trace): Use it. + +2022-12-24 Dmitry V. Levin + + syscall: simplify syscall_exiting_trace a bit. + * src/syscall.c (syscall_exiting_trace): Print the auxiliary string + and the injection note just in one location. + +2022-12-23 Dmitry V. Levin + + syscall: print injection note after the auxiliary string. + * src/syscall.c (syscall_exiting_trace): In all cases where injection + note is printed, make sure it is printed after the auxiliary string, + not before it. + +2022-12-22 Fabrice Le Fessant + Dmitry V. Levin + + src: introduce tprint_arg_name_end helper. + * src/defs.h (tprint_arg_name_end): New function. + * src/clone.c (SYS_FUNC(clone)): Use it. + +2022-12-21 Fabrice Le Fessant + Dmitry V. Levin + + src: rename tprints_arg_name to tprints_arg_name_begin. + +2022-12-20 Fabrice Le Fessant + Dmitry V. Levin + + src: rename tprintf to tprintf_string. + +2022-12-19 Fabrice Le Fessant + Dmitry V. Levin + + src: rename tprints to tprints_string. + +2022-12-18 Fabrice Le Fessant + Dmitry V. Levin + + src: introduce printflags_in and printflags64_in helpers. + * src/defs.h (printflags64_in): Rename from printflags64. + (printflags_in): Rename from printflags. Use printflags64_in. + (printflags64, printflags): New functions. + * src/capability.c (print_cap_bits): Use printflags_in instead of + printflags. + * src/fanotify.c (SYS_FUNC(fanotify_init)): Likewise. + * src/ipc_msg.c (SYS_FUNC(msgget)): Likewise. + * src/ipc_sem.c (SYS_FUNC(semget)): Likewise. + * src/ipc_shm.c (SYS_FUNC(shmget)): Likewise. + * src/net.c (tprint_sock_type): Likewise. + * src/personality.c (SYS_FUNC(personality)): Likewise. + * src/statx.c (SYS_FUNC(statx)): Likewise. + * src/swapon.c (SYS_FUNC(swapon)): Likewise. + * src/v4l2.c (print_v4l2_buffer_flags, print_v4l2_cid): Likewise. + * src/clone.c (SYS_FUNC(clone)): Use printflags64_in instead of + printflags64. + * src/kexec.c (SYS_FUNC(kexec_load)): Likewise. + * src/mount.c (SYS_FUNC(mount)): Likewise. + * src/term.c (decode_oflag, decode_cflag): Likewise. + +2022-12-17 Fabrice Le Fessant + Dmitry V. Levin + + src: introduce tprint_flags_begin and tprint_flags_end helpers. + * src/print_fields.h (tprint_flags_begin, tprint_flags_end): New + functions. + (PRINT_FIELD_FLAGS_VERBOSE): Use them. + * src/bpf_filter.c (print_bpf_filter_code): Likewise. + * src/bpf_seccomp_filter.c (print_seccomp_filter_k): Likewise. + * src/capability.c (print_cap_bits): Likewise. + * src/clone.c (SYS_FUNC(clone), SYS_FUNC(clone3)): Likewise. + * src/fanotify.c (SYS_FUNC(fanotify_init)): Likewise. + * src/futex.c (do_futex): Likewise. + * src/ioctl.c (ioctl_print_code): Likewise. + * src/ipc.c (SYS_FUNC(ipc)): Likewise. + * src/ipc_defs.h (PRINTCTL): Likewise. + * src/ipc_msg.c (SYS_FUNC(msgget)): Likewise. + * src/ipc_sem.c (SYS_FUNC(semget)): Likewise. + * src/ipc_shm.c (SYS_FUNC(shmget)): Likewise. + * src/kd_ioctl.c (kd_mk_tone): Likewise. + * src/kexec.c (SYS_FUNC(kexec_load)): Likewise. + * src/mem.c (print_mmap_flags): Likewise. + * src/memfd_create.c (SYS_FUNC(memfd_create)): Likewise. + * src/mount.c (SYS_FUNC(mount)): Likewise. + * src/net.c (tprint_sock_type): Likewise. + * src/netlink.c (decode_nlmsg_type_netfilter, decode_nlmsg_flags): + Likewise. + * src/nlattr.c (print_nlattr, decode_nla_flags): Likewise. + * src/numa.c (print_mode): Likewise. + * src/perf.c (print_perf_event_attr): Likewise. + * src/personality.c (SYS_FUNC(personality)): Likewise. + * src/sched.c (SYS_FUNC(sched_getattr)): Likewise. + * src/scsi.c (scsi_ioctl): Likewise. + * src/statx.c (SYS_FUNC(statx)): Likewise. + * src/swapon.c (SYS_FUNC(swapon)): Likewise. + * src/tee.c (tee_print_param_fn): Likewise. + * src/term.c (decode_oflag, decode_cflag): Likewise. + * src/v4l2.c (print_v4l2_buffer_flags, print_v4l2_cid): Likewise. + * src/wait.c (printstatus): Likewise. + +2022-12-16 Fabrice Le Fessant + Dmitry V. Levin + + src: introduce tprint_shift_begin and tprint_shift_end helpers. + * src/print_fields.h (tprint_shift_begin, tprint_shift_end): New + functions. + * src/futex.c (do_futex): Use them. + * src/ipc.c (SYS_FUNC(ipc)): Likewise. + * src/ipc_shm.c (SYS_FUNC(shmget)): Likewise. + * src/kd_ioctl.c (kd_mk_tone): Likewise. + * src/mem.c (print_mmap_flags): Likewise. + * src/memfd_create.c (SYS_FUNC(memfd_create)): Likewise. + * src/netlink.c (decode_nlmsg_type_netfilter): Likewise. + * src/perf.c (print_perf_event_attr): Likewise. + * src/term.c (decode_cflag): Likewise. + * src/util.c (print_abnormal_hi): Likewise. + * src/wait.c (printstatus): Likewise. + +2022-12-15 Fabrice Le Fessant + Dmitry V. Levin + + src: introduce tprint_array_index_equal helper. + * src/print_fields.h (tprint_array_index_equal): Rename from + tprint_array_index_end. + (tprint_array_index_end): New function. + * src/btrfs.c (btrfs_ioctl): Use them. + * src/term.c (print_cc_char): Likewise. + * src/util.c (print_array_ex): Likewise. + +2022-12-14 Fabrice Le Fessant + Dmitry V. Levin + + src: rename tprint_or to tprint_flags_or. + +2022-12-13 Dmitry V. Levin + + Post-release administrivia. + * NEWS: Add a header line for the next release. + * debian/changelog.in: Add a changelog entry for 6.1-1. + * strace.spec.in: Likewise. + 2022-12-12 Dmitry V. Levin Prepare for 6.1 release. diff -Nru strace-6.1/configure strace-6.2/configure --- strace-6.1/configure 2022-12-12 19:29:00.000000000 +0100 +++ strace-6.2/configure 2023-02-26 22:20:55.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for strace 6.1. +# Generated by GNU Autoconf 2.69 for strace 6.2. # # Report bugs to . # @@ -11,7 +11,7 @@ # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # -# Copyright (c) 1999-2022 The strace developers. +# Copyright (c) 1999-2023 The strace developers. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## @@ -582,8 +582,8 @@ # Identity of this package. PACKAGE_NAME='strace' PACKAGE_TARNAME='strace' -PACKAGE_VERSION='6.1' -PACKAGE_STRING='strace 6.1' +PACKAGE_VERSION='6.2' +PACKAGE_STRING='strace 6.2' PACKAGE_BUGREPORT='strace-devel@lists.strace.io' PACKAGE_URL='https://strace.io' @@ -1404,7 +1404,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 6.1 to adapt to many kinds of systems. +\`configure' configures strace 6.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1474,7 +1474,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of strace 6.1:";; + short | recursive ) echo "Configuration of strace 6.2:";; esac cat <<\_ACEOF @@ -1601,14 +1601,14 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -strace configure 6.1 +strace configure 6.2 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. -Copyright (c) 1999-2022 The strace developers. +Copyright (c) 1999-2023 The strace developers. _ACEOF exit fi @@ -2341,7 +2341,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 6.1, which was +It was created by strace $as_me 6.2, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3209,7 +3209,7 @@ # Define the identity of the package. PACKAGE='strace' - VERSION='6.1' + VERSION='6.2' cat >>confdefs.h <<_ACEOF @@ -5738,9 +5738,9 @@ -$as_echo "#define COPYRIGHT_YEAR \"2022\"" >>confdefs.h +$as_echo "#define COPYRIGHT_YEAR \"2023\"" >>confdefs.h -COPYRIGHT_YEAR=2022 +COPYRIGHT_YEAR=2023 @@ -6297,7 +6297,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include -#define USE_OS_HEADERS (LINUX_VERSION_CODE > 393472 ? 1 : -1) +#define USE_OS_HEADERS (LINUX_VERSION_CODE > 393728 ? 1 : -1) int main () { @@ -10760,6 +10760,16 @@ fi +ac_fn_c_check_member "$LINENO" "siginfo_t" "si_trapno" "ac_cv_member_siginfo_t_si_trapno" "#include +" +if test "x$ac_cv_member_siginfo_t_si_trapno" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_SIGINFO_T_SI_TRAPNO 1 +_ACEOF + + +fi ac_fn_c_check_member "$LINENO" "siginfo_t" "si_addr_lsb" "ac_cv_member_siginfo_t_si_addr_lsb" "#include " if test "x$ac_cv_member_siginfo_t_si_addr_lsb" = xyes; then : @@ -17824,7 +17834,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 6.1, which was +This file was extended by strace $as_me 6.2, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17891,7 +17901,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 6.1 +strace config.status 6.2 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -Nru strace-6.1/configure.ac strace-6.2/configure.ac --- strace-6.1/configure.ac 2022-11-13 09:00:00.000000000 +0100 +++ strace-6.2/configure.ac 2023-02-26 09:00:00.000000000 +0100 @@ -5,7 +5,7 @@ # Copyright (c) 2006-2016 Dmitry V. Levin # Copyright (c) 2008-2015 Mike Frysinger # Copyright (c) 2015 Elvira Khabirova -# Copyright (c) 2002-2022 The strace developers. +# Copyright (c) 2002-2023 The strace developers. # All rights reserved. # # SPDX-License-Identifier: LGPL-2.1-or-later @@ -431,6 +431,7 @@ siginfo_t.si_timerid, siginfo_t.si_overrun, siginfo_t.si_pkey, + siginfo_t.si_trapno, siginfo_t.si_addr_lsb, siginfo_t.si_lower, siginfo_t.si_upper, diff -Nru strace-6.1/CREDITS strace-6.2/CREDITS --- strace-6.1/CREDITS 2022-12-12 19:29:18.000000000 +0100 +++ strace-6.2/CREDITS 2023-02-26 22:21:13.000000000 +0100 @@ -85,7 +85,7 @@ Edgar E. Iglesias Edgar Kaziakhmedov Elliott Hughes - Elvira Khabirova + Elvira Khabirova Erik Johansson Etienne Gemsa Eugene Syromyatnikov @@ -93,6 +93,7 @@ Ezequiel Garcia Fabien Siron Fabrice Fontaine + Fabrice Le Fessant Fanda Uchytil Fei Jie Felix Janda @@ -125,6 +126,7 @@ James Hogan James Yang Jan Kratochvil + Jan Macku Jann Horn Janosch Frank JayRJoshi @@ -259,6 +261,7 @@ Steve McIntyre Steven Honeyman SuHsueyu + Sven Schnelle Sven Schnelle Szabolcs Nagy Thanh Ma diff -Nru strace-6.1/debian/changelog strace-6.2/debian/changelog --- strace-6.1/debian/changelog 2023-02-22 17:17:06.000000000 +0100 +++ strace-6.2/debian/changelog 2023-03-20 12:44:18.000000000 +0100 @@ -1,3 +1,9 @@ +strace (6.2-0.1ubuntu1) lunar; urgency=medium + + * New upstream release (LP: #2012258) + + -- Adrien Nader Mon, 20 Mar 2023 12:44:18 +0100 + strace (6.1-0.1ubuntu1) lunar; urgency=medium * Merge from Debian unstable (LP: #2008207). Remaining changes: diff -Nru strace-6.1/NEWS strace-6.2/NEWS --- strace-6.1/NEWS 2022-12-12 13:12:12.000000000 +0100 +++ strace-6.2/NEWS 2023-02-26 09:00:00.000000000 +0100 @@ -1,3 +1,18 @@ +Noteworthy changes in release 6.2 (2023-02-26) +============================================== + +* Improvements + * Implemented collision resolution for overlapping ioctl commands + from tty and snd subsystems. + * Implemented decoding of IFLA_BRPORT_MAB and IFLA_DEVLINK_PORT + netlink attributes. + * Updated lists of ALG_*, BPF_*, IFLA_*, KEY_*, KVM_*, LANDLOCK_*, + MEMBARRIER_*, NFT_*, NTF_*, and V4L2_* constants. + * Updated lists of ioctl commands from Linux 6.2. + +* Bug fixes + * Fixed build on alpha architecture. + Noteworthy changes in release 6.1 (2022-12-12) ============================================== diff -Nru strace-6.1/src/bpf_filter.c strace-6.2/src/bpf_filter.c --- strace-6.1/src/bpf_filter.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/bpf_filter.c 2022-12-17 09:00:00.000000000 +0100 @@ -36,6 +36,7 @@ const struct xlat *mode = extended ? ebpf_mode : bpf_mode; uint16_t i = code & ~BPF_CLASS(code); + tprint_flags_begin(); printxval(extended ? ebpf_class : bpf_class, BPF_CLASS(code), "BPF_???"); switch (BPF_CLASS(code)) { @@ -43,7 +44,7 @@ case BPF_STX: if (!extended) { if (i) { - tprint_or(); + tprint_flags_or(); PRINT_VAL_X(i); tprints_comment("BPF_???"); } @@ -53,20 +54,20 @@ case BPF_LD: case BPF_LDX: - tprint_or(); + tprint_flags_or(); printxvals(BPF_SIZE(code), "BPF_???", bpf_size, extended ? ebpf_size : NULL, NULL); - tprint_or(); + tprint_flags_or(); printxval(mode, BPF_MODE(code), "BPF_???"); break; case BPF_MISC: /* BPF_ALU64 in eBPF */ if (!extended) { - tprint_or(); + tprint_flags_or(); printxval(bpf_miscop, BPF_MISCOP(code), "BPF_???"); i &= ~BPF_MISCOP(code); if (i) { - tprint_or(); + tprint_flags_or(); PRINT_VAL_X(i); tprints_comment("BPF_???"); } @@ -75,37 +76,38 @@ ATTRIBUTE_FALLTHROUGH; /* extended == true */ case BPF_ALU: - tprint_or(); + tprint_flags_or(); printxval(bpf_src, BPF_SRC(code), "BPF_???"); - tprint_or(); + tprint_flags_or(); printxvals(BPF_OP(code), "BPF_???", bpf_op_alu, extended ? ebpf_op_alu : NULL, NULL); break; case BPF_JMP: - tprint_or(); + tprint_flags_or(); printxval(bpf_src, BPF_SRC(code), "BPF_???"); - tprint_or(); + tprint_flags_or(); printxvals(BPF_OP(code), "BPF_???", bpf_op_jmp, extended ? ebpf_op_jmp : NULL, NULL); break; case BPF_RET: /* Reserved in eBPF */ if (!extended) { - tprint_or(); + tprint_flags_or(); printxval(bpf_rval, BPF_RVAL(code), "BPF_???"); i &= ~BPF_RVAL(code); } if (i) { - tprint_or(); + tprint_flags_or(); PRINT_VAL_X(i); tprints_comment("BPF_???"); } break; } + tprint_flags_end(); } static void diff -Nru strace-6.1/src/bpf_seccomp_filter.c strace-6.2/src/bpf_seccomp_filter.c --- strace-6.1/src/bpf_seccomp_filter.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/bpf_seccomp_filter.c 2022-12-17 09:00:00.000000000 +0100 @@ -22,11 +22,13 @@ unsigned int action = SECCOMP_RET_ACTION_FULL & fp->k; unsigned int data = fp->k & ~action; + tprint_flags_begin(); printxval(seccomp_ret_action, action, "SECCOMP_RET_???"); if (data) { - tprint_or(); + tprint_flags_or(); PRINT_VAL_X(data); } + tprint_flags_end(); return true; } diff -Nru strace-6.1/src/btrfs.c strace-6.2/src/btrfs.c --- strace-6.1/src/btrfs.c 2021-12-30 12:00:00.000000000 +0100 +++ strace-6.2/src/btrfs.c 2023-02-26 09:00:00.000000000 +0100 @@ -1,6 +1,6 @@ /* * Copyright (c) 2016 Jeff Mahoney - * Copyright (c) 2016-2021 The strace developers. + * Copyright (c) 2016-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -861,8 +861,9 @@ tprint_array_index_begin(); printxval_u(btrfs_dev_stats_values, i, NULL); - tprint_array_index_end(); + tprint_array_index_equal(); PRINT_VAL_U(args.values[i]); + tprint_array_index_end(); } tprint_array_end(); tprint_struct_end(); diff -Nru strace-6.1/src/capability.c strace-6.2/src/capability.c --- strace-6.1/src/capability.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/capability.c 2022-12-18 09:00:00.000000000 +0100 @@ -78,14 +78,16 @@ static void print_cap_bits(const uint32_t lo, const uint32_t hi) { + tprint_flags_begin(); if (lo || !hi) - printflags(cap_mask0, lo, "CAP_???"); + printflags_in(cap_mask0, lo, "CAP_???"); if (hi) { if (lo) - tprint_or(); - printflags(cap_mask1, hi, "CAP_???"); + tprint_flags_or(); + printflags_in(cap_mask1, hi, "CAP_???"); } + tprint_flags_end(); } static void diff -Nru strace-6.1/src/clone.c strace-6.2/src/clone.c --- strace-6.1/src/clone.c 2022-10-31 09:00:00.000000000 +0100 +++ strace-6.2/src/clone.c 2022-12-22 09:00:00.000000000 +0100 @@ -75,26 +75,31 @@ if (entering(tcp)) { const unsigned int sig = tcp->u_arg[ARG_FLAGS] & CSIGNAL; - tprints_arg_name("child_stack"); + tprints_arg_name_begin("child_stack"); printaddr(tcp->u_arg[ARG_STACK]); + tprint_arg_name_end(); tprint_arg_next(); #ifdef ARG_STACKSIZE if (ARG_STACKSIZE != -1) { - tprints_arg_name("stack_size"); + tprints_arg_name_begin("stack_size"); PRINT_VAL_X(tcp->u_arg[ARG_STACKSIZE]); + tprint_arg_name_end(); tprint_arg_next(); } #endif - tprints_arg_name("flags"); + tprints_arg_name_begin("flags"); if (flags) { - printflags64(clone_flags, flags, "CLONE_???"); + tprint_flags_begin(); + printflags64_in(clone_flags, flags, "CLONE_???"); if (sig) { - tprint_or(); + tprint_flags_or(); printsignal(sig); } + tprint_flags_end(); } else { printsignal(sig); } + tprint_arg_name_end(); /* * TODO on syscall entry: * We can clear CLONE_PTRACE here since it is an ancient hack @@ -116,21 +121,24 @@ kernel_ulong_t addr = tcp->u_arg[ARG_PTID]; tprint_arg_next(); - tprints_arg_name("parent_tid"); + tprints_arg_name_begin("parent_tid"); if (flags & CLONE_PARENT_SETTID) printnum_pid(tcp, addr, PT_TID); else printnum_fd(tcp, addr); + tprint_arg_name_end(); } if (flags & CLONE_SETTLS) { tprint_arg_next(); - tprints_arg_name("tls"); + tprints_arg_name_begin("tls"); print_tls_arg(tcp, tcp->u_arg[ARG_TLS]); + tprint_arg_name_end(); } if (flags & (CLONE_CHILD_SETTID|CLONE_CHILD_CLEARTID)) { tprint_arg_next(); - tprints_arg_name("child_tidptr"); + tprints_arg_name_begin("child_tidptr"); printaddr(tcp->u_arg[ARG_CTID]); + tprint_arg_name_end(); } } return RVAL_TID; @@ -165,8 +173,10 @@ tprint_struct_begin(); tprints_field_name("flags"); + tprint_flags_begin(); printflags_ex(arg.flags, "CLONE_???", XLAT_STYLE_DEFAULT, clone_flags, clone3_flags, NULL); + tprint_flags_end(); if (arg.flags & CLONE_PIDFD) { tprint_struct_next(); diff -Nru strace-6.1/src/config.h.in strace-6.2/src/config.h.in --- strace-6.1/src/config.h.in 2022-12-12 19:29:01.000000000 +0100 +++ strace-6.2/src/config.h.in 2023-02-26 22:20:56.000000000 +0100 @@ -533,6 +533,9 @@ /* Define to 1 if `si_timerid' is a member of `siginfo_t'. */ #undef HAVE_SIGINFO_T_SI_TIMERID +/* Define to 1 if `si_trapno' is a member of `siginfo_t'. */ +#undef HAVE_SIGINFO_T_SI_TRAPNO + /* Define to 1 if `si_upper' is a member of `siginfo_t'. */ #undef HAVE_SIGINFO_T_SI_UPPER diff -Nru strace-6.1/src/defs.h strace-6.2/src/defs.h --- strace-6.1/src/defs.h 2022-08-09 10:34:31.000000000 +0200 +++ strace-6.2/src/defs.h 2023-02-21 09:00:00.000000000 +0100 @@ -658,6 +658,27 @@ return set_tcb_priv_data(tcp, (void *) val, 0); } +struct finfo { + const char *path; + enum { + FINFO_UNSET, + FINFO_DEV_BLK, + FINFO_DEV_CHR, + } type; + bool deleted; + struct { + unsigned int major, minor; + } dev; +}; + +extern struct finfo * +get_finfo_for_dev(const char *path, struct finfo *finfo); + +extern int +term_ioctl_decode_command_number(struct tcb *tcp, + const struct finfo *finfo, + unsigned int code); + /** * @return 0 on success, -1 on error. */ @@ -822,7 +843,7 @@ extern const char *xlookup_le(const struct xlat *, uint64_t *); struct dyxlat; -struct dyxlat *dyxlat_alloc(size_t nmemb); +struct dyxlat *dyxlat_alloc(size_t nmemb, enum xlat_type type); void dyxlat_free(struct dyxlat *); const struct xlat *dyxlat_get(const struct dyxlat *); void dyxlat_add_pair(struct dyxlat *, uint64_t val, const char *str, size_t len); @@ -1212,7 +1233,14 @@ * Print file descriptor fd owned by process with ID pid (from the PID NS * of the tracer). */ -extern void printfd_pid(struct tcb *tcp, pid_t pid, int fd); +extern void printfd_pid_with_finfo(struct tcb *tcp, pid_t pid, int fd, + const struct finfo *finfo); + +static inline void +printfd_pid(struct tcb *tcp, pid_t pid, int fd) +{ + printfd_pid_with_finfo(tcp, pid, fd, NULL); +} static inline void printfd(struct tcb *tcp, int fd) @@ -1220,6 +1248,12 @@ printfd_pid(tcp, tcp->pid, fd); } +static inline void +printfd_with_finfo(struct tcb *tcp, int fd, const struct finfo *finfo) +{ + printfd_pid_with_finfo(tcp, tcp->pid, fd, finfo); +} + /** * Helper function, converts pid to string, or to "self" for pid == 0. * Uses static buffer for operation. @@ -1548,15 +1582,15 @@ } static inline int -printflags64(const struct xlat *x, uint64_t flags, const char *dflt) +printflags64_in(const struct xlat *x, uint64_t flags, const char *dflt) { return printflags_ex(flags, dflt, XLAT_STYLE_DEFAULT, x, NULL); } static inline int -printflags(const struct xlat *x, unsigned int flags, const char *dflt) +printflags_in(const struct xlat *x, unsigned int flags, const char *dflt) { - return printflags64(x, flags, dflt); + return printflags64_in(x, flags, dflt); } static inline int @@ -1685,8 +1719,8 @@ extern void printleader(struct tcb *); extern void line_ended(void); extern void tabto(void); -extern void tprintf(const char *fmt, ...) ATTRIBUTE_FORMAT((printf, 1, 2)); -extern void tprints(const char *str); +extern void tprintf_string(const char *fmt, ...) ATTRIBUTE_FORMAT((printf, 1, 2)); +extern void tprints_string(const char *str); extern void tprintf_comment(const char *fmt, ...) ATTRIBUTE_FORMAT((printf, 1, 2)); extern void tprints_comment(const char *str); @@ -2046,6 +2080,21 @@ # include "print_fields.h" +static inline int +printflags64(const struct xlat *x, uint64_t flags, const char *dflt) +{ + tprint_flags_begin(); + int r = printflags64_in(x, flags, dflt); + tprint_flags_end(); + return r; +} + +static inline int +printflags(const struct xlat *x, unsigned int flags, const char *dflt) +{ + return printflags64(x, flags, dflt); +} + /* * When u64 is interpreted by the kernel as an address, there is a difference * in behaviour between 32-bit and 64-bit kernel in the way u64_to_user_ptr diff -Nru strace-6.1/src/dyxlat.c strace-6.2/src/dyxlat.c --- strace-6.1/src/dyxlat.c 2021-11-05 09:00:00.000000000 +0100 +++ strace-6.2/src/dyxlat.c 2023-02-21 09:00:00.000000000 +0100 @@ -13,11 +13,11 @@ }; struct dyxlat * -dyxlat_alloc(const size_t nmemb) +dyxlat_alloc(const size_t nmemb, enum xlat_type type) { struct dyxlat *const dyxlat = xmalloc(sizeof(*dyxlat)); - dyxlat->xlat.type = XT_NORMAL; + dyxlat->xlat.type = type; dyxlat->xlat.size = 0; dyxlat->allocated = nmemb; dyxlat->xlat.data = dyxlat->data = xgrowarray(NULL, &dyxlat->allocated, diff -Nru strace-6.1/src/fanotify.c strace-6.2/src/fanotify.c --- strace-6.1/src/fanotify.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/fanotify.c 2023-02-26 09:00:00.000000000 +0100 @@ -1,6 +1,6 @@ /* * Copyright (c) 2014-2015 Dmitry V. Levin - * Copyright (c) 2014-2022 The strace developers. + * Copyright (c) 2014-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -23,12 +23,14 @@ /* flags */ unsigned int flags = tcp->u_arg[0]; + tprint_flags_begin(); printxval(fan_classes, flags & FAN_ALL_CLASS_BITS, "FAN_CLASS_???"); flags &= ~FAN_ALL_CLASS_BITS; if (flags) { - tprint_or(); - printflags(fan_init_flags, flags, "FAN_???"); + tprint_flags_or(); + printflags_in(fan_init_flags, flags, "FAN_???"); } + tprint_flags_end(); tprint_arg_next(); /* event_f_flags */ @@ -56,10 +58,6 @@ */ unsigned long long mask = 0; unsigned int argn = getllval(tcp, &mask, 2); -#ifdef HPPA - /* Parsic is weird. See arch/parisc/kernel/sys_parisc32.c. */ - mask = (mask << 32) | (mask >> 32); -#endif printflags64(fan_event_flags, mask, "FAN_???"); tprint_arg_next(); diff -Nru strace-6.1/src/filter_seccomp.c strace-6.2/src/filter_seccomp.c --- strace-6.1/src/filter_seccomp.c 2021-11-20 09:00:00.000000000 +0100 +++ strace-6.2/src/filter_seccomp.c 2023-02-26 09:00:00.000000000 +0100 @@ -1,7 +1,7 @@ /* * Copyright (c) 2018 Chen Jingpiao * Copyright (c) 2019 Paul Chaignon - * Copyright (c) 2018-2021 The strace developers. + * Copyright (c) 2018-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -679,14 +679,20 @@ void init_seccomp_filter(void) { - if (prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0) < 0) - perror_func_msg_and_die("prctl(PR_SET_NO_NEW_PRIVS)"); - if (debug_flag) dump_seccomp_bpf(); - if (prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &bpf_prog) < 0) - perror_func_msg_and_die("prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER)"); + if (prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &bpf_prog) == 0) + return; + + if (errno == EACCES) { + if (prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0) < 0) + perror_func_msg_and_die("prctl(PR_SET_NO_NEW_PRIVS)"); + if (prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &bpf_prog) == 0) + return; + } + + perror_func_msg_and_die("prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER)"); } int diff -Nru strace-6.1/src/futex.c strace-6.2/src/futex.c --- strace-6.1/src/futex.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/futex.c 2022-12-17 09:00:00.000000000 +0100 @@ -111,29 +111,39 @@ printaddr(uaddr2); tprint_arg_next(); + tprint_flags_begin(); if ((val3 >> 28) & FUTEX_OP_OPARG_SHIFT) { + tprint_shift_begin(); print_xlat(FUTEX_OP_OPARG_SHIFT); tprint_shift(); PRINT_VAL_U(28); - tprint_or(); + tprint_shift_end(); + tprint_flags_or(); } + tprint_shift_begin(); comment = printxval(futexwakeops, (val3 >> 28) & 0x7, NULL) ? NULL : "FUTEX_OP_???"; tprint_shift(); PRINT_VAL_U(28); + tprint_shift_end(); tprints_comment(comment); - tprint_or(); + tprint_flags_or(); + tprint_shift_begin(); PRINT_VAL_X((val3 >> 12) & 0xfff); tprint_shift(); PRINT_VAL_U(12); - tprint_or(); + tprint_shift_end(); + tprint_flags_or(); + tprint_shift_begin(); comment = printxval(futexwakecmps, (val3 >> 24) & 0xf, NULL) ? NULL : "FUTEX_OP_CMP_???"; tprint_shift(); PRINT_VAL_U(24); + tprint_shift_end(); tprints_comment(comment); - tprint_or(); + tprint_flags_or(); PRINT_VAL_X(val3 & 0xfff); + tprint_flags_end(); break; case FUTEX_WAIT_REQUEUE_PI: tprint_arg_next(); diff -Nru strace-6.1/src/generate_sen.sh strace-6.2/src/generate_sen.sh --- strace-6.1/src/generate_sen.sh 2021-02-16 09:00:00.000000000 +0100 +++ strace-6.2/src/generate_sen.sh 2023-02-26 09:00:00.000000000 +0100 @@ -1,6 +1,6 @@ #!/bin/sh -e # -# Copyright (c) 2015-2021 The strace developers. +# Copyright (c) 2015-2023 The strace developers. # All rights reserved. # # SPDX-License-Identifier: LGPL-2.1-or-later @@ -9,7 +9,7 @@ echo 'enum {' echo 'SEN_printargs = 0,' - sed -r -n '/printargs/! s/.*SEN\(([^)]+)\).*/\1/p' | + sed -E -n '/printargs/! s/.*SEN\(([^)]+)\).*/\1/p' | LC_COLLATE=C sort -u | sed 's/.*/SEN_&,/' echo '};' diff -Nru strace-6.1/src/ioctl.c strace-6.2/src/ioctl.c --- strace-6.1/src/ioctl.c 2022-11-25 21:00:00.000000000 +0100 +++ strace-6.2/src/ioctl.c 2023-02-26 09:00:00.000000000 +0100 @@ -3,7 +3,7 @@ * Copyright (c) 1993 Branko Lankester * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey * Copyright (c) 1996-2001 Wichert Akkerman - * Copyright (c) 1999-2022 The strace developers. + * Copyright (c) 1999-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -78,9 +78,11 @@ tprints_arg_begin("_IOC"); + tprint_flags_begin(); printflags_ex(_IOC_DIR(code), abbrev ? "_IOC_???" : "", abbrev ? XLAT_STYLE_DEFAULT : XLAT_STYLE_ABBREV, ioctl_dirs, NULL); + tprint_flags_end(); tprint_arg_next(); PRINT_VAL_X(_IOC_TYPE(code)); @@ -240,14 +242,14 @@ } static int -ioctl_decode_command_number(struct tcb *tcp) +ioctl_decode_command_number(struct tcb *tcp, const struct finfo *finfo) { const unsigned int code = tcp->u_arg[1]; switch (_IOC_TYPE(code)) { case '!': /* 0x21 */ if (code == _IOC(_IOC_READ, '!', 2, sizeof(uint64_t))) { - tprints("SECCOMP_IOCTL_NOTIF_ID_VALID_WRONG_DIR"); + tprints_string("SECCOMP_IOCTL_NOTIF_ID_VALID_WRONG_DIR"); return 1; } return 0; @@ -268,6 +270,8 @@ return 1; } return 0; + case 'T': + return term_ioctl_decode_command_number(tcp, finfo, code); case 'U': if (_IOC_DIR(code) == _IOC_READ && _IOC_NR(code) == 0x2c) { tprints_arg_begin("UI_GET_SYSNAME"); @@ -319,6 +323,11 @@ /** * Decode arg parameter of the ioctl call. * + * @param finfo The target file descriptor related information. + * finfo is NULL when + * - ioctl_decode() is called in leaving stages, or + * - the file descriptor is not valid (e.g. -1). + * * @return There are two flags of the return value important for the purposes of * processing by SYS_FUNC(ioctl): * - RVAL_IOCTL_DECODED: indicates that ioctl decoder code @@ -344,7 +353,7 @@ * and passes all other bits of ioctl_decode return value unchanged. */ static int -ioctl_decode(struct tcb *tcp) +ioctl_decode(struct tcb *tcp, const struct finfo *finfo) { const unsigned int code = tcp->u_arg[1]; const kernel_ulong_t arg = tcp->u_arg[2]; @@ -429,13 +438,35 @@ return 0; } +/* + * Return true if the specified ioctl command may overlap. + */ +static bool +ioctl_command_overlaps(unsigned int code) +{ + /* see and */ + return (0x5401 <= code && code <= 0x5408); +} + SYS_FUNC(ioctl) { const struct_ioctlent *iop; int ret; if (entering(tcp)) { - printfd(tcp, tcp->u_arg[0]); + struct finfo finfoa; + struct finfo *finfo = NULL; + char path[PATH_MAX + 1]; + bool deleted; + if (ioctl_command_overlaps(tcp->u_arg[1]) && + getfdpath_pid(tcp->pid, tcp->u_arg[0], path, sizeof(path), + &deleted) >= 0) { + finfo = get_finfo_for_dev(path, &finfoa); + finfo->deleted = deleted; + printfd_with_finfo(tcp, tcp->u_arg[0], finfo); + } else + printfd(tcp, tcp->u_arg[0]); + tprint_arg_next(); if (xlat_verbosity != XLAT_STYLE_ABBREV) @@ -443,16 +474,16 @@ if (xlat_verbosity == XLAT_STYLE_VERBOSE) tprint_comment_begin(); if (xlat_verbosity != XLAT_STYLE_RAW) { - ret = ioctl_decode_command_number(tcp); + ret = ioctl_decode_command_number(tcp, finfo); if (!(ret & IOCTL_NUMBER_STOP_LOOKUP)) { iop = ioctl_lookup(tcp->u_arg[1]); if (iop) { if (ret) tprint_alternative_value(); - tprints(iop->symbol); + tprints_string(iop->symbol); while ((iop = ioctl_next_match(iop))) { tprint_alternative_value(); - tprints(iop->symbol); + tprints_string(iop->symbol); } } else if (!ret) { ioctl_print_code(tcp->u_arg[1]); @@ -462,9 +493,9 @@ if (xlat_verbosity == XLAT_STYLE_VERBOSE) tprint_comment_end(); - ret = ioctl_decode(tcp); + ret = ioctl_decode(tcp, finfo); } else { - ret = ioctl_decode(tcp) | RVAL_DECODED; + ret = ioctl_decode(tcp, NULL) | RVAL_DECODED; } if (ret & RVAL_IOCTL_DECODED) { diff -Nru strace-6.1/src/ioprio.c strace-6.2/src/ioprio.c --- strace-6.1/src/ioprio.c 2021-03-09 09:00:00.000000000 +0100 +++ strace-6.2/src/ioprio.c 2023-02-26 09:00:00.000000000 +0100 @@ -1,6 +1,6 @@ /* * Copyright (c) 2015 Dmitry V. Levin - * Copyright (c) 2014-2021 The strace developers. + * Copyright (c) 2014-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -46,7 +46,7 @@ const char *str = sprint_ioprio(ioprio); (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE - ? tprints_comment : tprints)(str); + ? tprints_comment : tprints_string)(str); } static void @@ -105,7 +105,7 @@ return RVAL_DECODED; (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE - ? tprints_comment : tprints)(sprint_ioprio(tcp->u_arg[2])); + ? tprints_comment : tprints_string)(sprint_ioprio(tcp->u_arg[2])); return RVAL_DECODED; } diff -Nru strace-6.1/src/io_uring.c strace-6.2/src/io_uring.c --- strace-6.1/src/io_uring.c 2022-08-11 14:34:17.000000000 +0200 +++ strace-6.2/src/io_uring.c 2023-02-26 09:00:00.000000000 +0100 @@ -1,6 +1,6 @@ /* * Copyright (c) 2019 Dmitry V. Levin - * Copyright (c) 2019-2022 The strace developers. + * Copyright (c) 2019-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -8,6 +8,8 @@ #include "defs.h" +#include "kernel_time_types.h" +#define UAPI_LINUX_IO_URING_H_SKIP_LINUX_TIME_TYPES_H #include #include "xlat/uring_enter_flags.h" diff -Nru strace-6.1/src/ipc.c strace-6.2/src/ipc.c --- strace-6.1/src/ipc.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/ipc.c 2022-12-17 09:00:00.000000000 +0100 @@ -15,14 +15,17 @@ unsigned int version = call >> 16; call &= 0xffff; + tprint_flags_begin(); if (version) { + tprint_shift_begin(); PRINT_VAL_U(version); tprint_shift(); PRINT_VAL_U(16); - tprint_or(); + tprint_shift_end(); + tprint_flags_or(); } - printxval_u(ipccalls, call, NULL); + tprint_flags_end(); for (unsigned int i = 1; i < n_args(tcp); ++i) { tprint_arg_next(); diff -Nru strace-6.1/src/ipc_defs.h strace-6.2/src/ipc_defs.h --- strace-6.1/src/ipc_defs.h 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/ipc_defs.h 2022-12-17 09:00:00.000000000 +0100 @@ -61,11 +61,13 @@ # define PRINTCTL(flagset, arg, dflt) \ do { \ + tprint_flags_begin(); \ if ((arg) & IPC_64) { \ print_xlat(IPC_64); \ - tprint_or(); \ + tprint_flags_or(); \ } \ printxval((flagset), (arg) & ~IPC_64, dflt); \ + tprint_flags_end(); \ } while (0) #endif /* !STRACE_IPC_DEFS_H */ diff -Nru strace-6.1/src/ipc_msg.c strace-6.2/src/ipc_msg.c --- strace-6.1/src/ipc_msg.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/ipc_msg.c 2022-12-18 09:00:00.000000000 +0100 @@ -27,9 +27,11 @@ tprint_arg_next(); /* msgflg */ - if (printflags(resource_flags, tcp->u_arg[1] & ~0777, NULL) != 0) - tprint_or(); + tprint_flags_begin(); + if (printflags_in(resource_flags, tcp->u_arg[1] & ~0777, NULL) != 0) + tprint_flags_or(); print_numeric_umode_t(tcp->u_arg[1] & 0777); + tprint_flags_end(); return RVAL_DECODED; } diff -Nru strace-6.1/src/ipc_sem.c strace-6.2/src/ipc_sem.c --- strace-6.1/src/ipc_sem.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/ipc_sem.c 2022-12-18 09:00:00.000000000 +0100 @@ -112,8 +112,10 @@ tprint_arg_next(); /* semflg */ - if (printflags(resource_flags, tcp->u_arg[2] & ~0777, NULL) != 0) - tprint_or(); + tprint_flags_begin(); + if (printflags_in(resource_flags, tcp->u_arg[2] & ~0777, NULL) != 0) + tprint_flags_or(); print_numeric_umode_t(tcp->u_arg[2] & 0777); + tprint_flags_end(); return RVAL_DECODED; } diff -Nru strace-6.1/src/ipc_shm.c strace-6.2/src/ipc_shm.c --- strace-6.1/src/ipc_shm.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/ipc_shm.c 2022-12-18 09:00:00.000000000 +0100 @@ -43,20 +43,24 @@ const unsigned int hugetlb_value = flags & mask; flags &= ~mask; + tprint_flags_begin(); if (flags || !hugetlb_value) - printflags(shm_resource_flags, flags, NULL); + printflags_in(shm_resource_flags, flags, NULL); if (hugetlb_value) { if (flags) - tprint_or(); + tprint_flags_or(); + tprint_shift_begin(); PRINT_VAL_U(hugetlb_value >> SHM_HUGE_SHIFT); tprint_shift(); print_xlat_u(SHM_HUGE_SHIFT); + tprint_shift_end(); } if (flags || hugetlb_value) - tprint_or(); + tprint_flags_or(); print_numeric_umode_t(tcp->u_arg[2] & 0777); + tprint_flags_end(); return RVAL_DECODED; } diff -Nru strace-6.1/src/kd_ioctl.c strace-6.2/src/kd_ioctl.c --- strace-6.1/src/kd_ioctl.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/kd_ioctl.c 2022-12-20 09:00:00.000000000 +0100 @@ -91,13 +91,17 @@ unsigned int freq = ticks && count ? KERNEL_PIT_TICK_RATE / count : 0; tprint_arg_next(); + tprint_flags_begin(); if (ticks) { + tprint_shift_begin(); PRINT_VAL_U(ticks); tprint_shift(); PRINT_VAL_U(16); - tprint_or(); + tprint_shift_end(); + tprint_flags_or(); } PRINT_VAL_U(count); + tprint_flags_end(); if (xlat_verbose(xlat_verbosity) != XLAT_STYLE_RAW) { if (freq) @@ -258,8 +262,8 @@ if ((val & ~UNI_DIRECT_MASK) == UNI_DIRECT_BASE) (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE - ? tprintf_comment : tprintf)("UNI_DIRECT_BASE+%#hx", - val & UNI_DIRECT_MASK); + ? tprintf_comment : tprintf_string)("UNI_DIRECT_BASE+%#hx", + val & UNI_DIRECT_MASK); return true; } diff -Nru strace-6.1/src/kernel_fcntl.h strace-6.2/src/kernel_fcntl.h --- strace-6.1/src/kernel_fcntl.h 2021-02-16 09:00:00.000000000 +0100 +++ strace-6.2/src/kernel_fcntl.h 2023-02-26 09:00:00.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2021 The strace developers. + * Copyright (c) 2018-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -19,7 +19,7 @@ # define flock64 kernel_flock64 /* - * sed -rn 's/^#define[[:space:]]+([^[:space:]]+)[[:space:]].*$/# undef \1/p' \ + * sed -En 's/^#define[[:space:]]+([^[:space:]]+)[[:space:]].*$/# undef \1/p' \ * include/uapi/asm-generic/fcntl.h */ # undef O_ACCMODE diff -Nru strace-6.1/src/kernel_timespec.h strace-6.2/src/kernel_timespec.h --- strace-6.1/src/kernel_timespec.h 2021-06-09 10:01:00.000000000 +0200 +++ strace-6.2/src/kernel_timespec.h 2023-02-26 09:00:00.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Dmitry V. Levin + * Copyright (c) 2019-2023 Dmitry V. Levin * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -10,14 +10,14 @@ # include "arch_defs.h" -typedef struct { +typedef struct kernel_timespec64_t { long long tv_sec; long long tv_nsec; } kernel_timespec64_t; # if HAVE_ARCH_TIME32_SYSCALLS || HAVE_ARCH_TIMESPEC32 -typedef struct { +typedef struct kernel_timespec32_t { int tv_sec; int tv_nsec; } kernel_timespec32_t; diff -Nru strace-6.1/src/kernel_time_types.h strace-6.2/src/kernel_time_types.h --- strace-6.1/src/kernel_time_types.h 1970-01-01 01:00:00.000000000 +0100 +++ strace-6.2/src/kernel_time_types.h 2023-01-01 09:00:00.000000000 +0100 @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2023 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef STRACE_KERNEL_TIME_TYPES_H +# define STRACE_KERNEL_TIME_TYPES_H + +# include "kernel_timespec.h" + +# if defined HAVE_STRUCT___KERNEL_SOCK_TIMEVAL \ + || defined HAVE_STRUCT___KERNEL_TIMESPEC +# include +# else +# include +# endif + +# ifndef HAVE_STRUCT___KERNEL_SOCK_TIMEVAL +struct __kernel_sock_timeval { + int64_t tv_sec; + int64_t tv_usec; +}; +# endif + +# ifndef HAVE_STRUCT___KERNEL_TIMESPEC +# define __kernel_timespec kernel_timespec64_t +# endif + +#endif /* !STRACE_KERNEL_TIME_TYPES_H */ diff -Nru strace-6.1/src/kexec.c strace-6.2/src/kexec.c --- strace-6.1/src/kexec.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/kexec.c 2022-12-18 09:00:00.000000000 +0100 @@ -75,12 +75,14 @@ /* flags */ kernel_ulong_t n = tcp->u_arg[3]; + tprint_flags_begin(); printxval64(kexec_arch_values, n & KEXEC_ARCH_MASK, "KEXEC_ARCH_???"); n &= ~(kernel_ulong_t) KEXEC_ARCH_MASK; if (n) { - tprint_or(); - printflags64(kexec_load_flags, n, "KEXEC_???"); + tprint_flags_or(); + printflags64_in(kexec_load_flags, n, "KEXEC_???"); } + tprint_flags_end(); return RVAL_DECODED; } diff -Nru strace-6.1/src/linux/32/ioctls_inc_align16.h strace-6.2/src/linux/32/ioctls_inc_align16.h --- strace-6.1/src/linux/32/ioctls_inc_align16.h 2022-11-28 12:14:14.000000000 +0100 +++ strace-6.2/src/linux/32/ioctls_inc_align16.h 2023-01-30 14:54:29.000000000 +0100 @@ -1016,6 +1016,7 @@ { "linux/f2fs.h", "F2FS_IOC_SET_COMPRESS_OPTION", _IOC_WRITE, 0xf516, 0x02 }, { "linux/f2fs.h", "F2FS_IOC_SET_PIN_FILE", _IOC_WRITE, 0xf50d, 0x04 }, { "linux/f2fs.h", "F2FS_IOC_SHUTDOWN", _IOC_READ, 0x587d, 0x04 }, +{ "linux/f2fs.h", "F2FS_IOC_START_ATOMIC_REPLACE", _IOC_NONE, 0xf519, 0x00 }, { "linux/f2fs.h", "F2FS_IOC_START_ATOMIC_WRITE", _IOC_NONE, 0xf501, 0x00 }, { "linux/f2fs.h", "F2FS_IOC_START_VOLATILE_WRITE", _IOC_NONE, 0xf503, 0x00 }, { "linux/f2fs.h", "F2FS_IOC_WRITE_CHECKPOINT", _IOC_NONE, 0xf507, 0x00 }, @@ -1365,6 +1366,15 @@ { "linux/input.h", "EVIOCSKEYCODE_V2", _IOC_WRITE, 0x4504, 0x28 }, { "linux/input.h", "EVIOCSMASK", _IOC_WRITE, 0x4593, 0x10 }, { "linux/input.h", "EVIOCSREP", _IOC_WRITE, 0x4503, 0x08 }, +{ "linux/iommufd.h", "IOMMU_DESTROY", _IOC_NONE, 0x3b80, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_ALLOC", _IOC_NONE, 0x3b81, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_ALLOW_IOVAS", _IOC_NONE, 0x3b82, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_COPY", _IOC_NONE, 0x3b83, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_IOVA_RANGES", _IOC_NONE, 0x3b84, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_MAP", _IOC_NONE, 0x3b85, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_UNMAP", _IOC_NONE, 0x3b86, 0x00 }, +{ "linux/iommufd.h", "IOMMU_OPTION", _IOC_NONE, 0x3b87, 0x00 }, +{ "linux/iommufd.h", "IOMMU_VFIO_IOAS", _IOC_NONE, 0x3b88, 0x00 }, { "linux/ipmi.h", "IPMICTL_GET_MAINTENANCE_MODE_CMD", _IOC_READ, 0x691e, 0x04 }, { "linux/ipmi.h", "IPMICTL_GET_MY_ADDRESS_CMD", _IOC_READ, 0x6912, 0x04 }, { "linux/ipmi.h", "IPMICTL_GET_MY_CHANNEL_ADDRESS_CMD", _IOC_READ, 0x6919, 0x04 }, @@ -2203,6 +2213,7 @@ { "linux/synclink.h", "MGSL_IOCTXENABLE", _IOC_NONE, 0x6d04, 0x00 }, { "linux/synclink.h", "MGSL_IOCWAITEVENT", _IOC_READ|_IOC_WRITE, 0x6d08, 0x04 }, { "linux/synclink.h", "MGSL_IOCWAITGPIO", _IOC_READ|_IOC_WRITE, 0x6d12, 0x10 }, +{ "linux/tdx-guest.h", "TDX_CMD_GET_REPORT0", _IOC_READ|_IOC_WRITE, 0x5401, 0x440 }, { "linux/tee.h", "TEE_IOC_CANCEL", _IOC_READ, 0xa404, 0x08 }, { "linux/tee.h", "TEE_IOC_CLOSE_SESSION", _IOC_READ, 0xa405, 0x04 }, { "linux/tee.h", "TEE_IOC_INVOKE", _IOC_READ, 0xa403, 0x10 }, @@ -2412,6 +2423,7 @@ { "linux/vfio.h", "VFIO_IOMMU_SPAPR_TCE_REMOVE", _IOC_NONE, 0x3b78, 0x00 }, { "linux/vfio.h", "VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY", _IOC_NONE, 0x3b76, 0x00 }, { "linux/vfio.h", "VFIO_IOMMU_UNMAP_DMA", _IOC_NONE, 0x3b72, 0x00 }, +{ "linux/vfio.h", "VFIO_MIG_GET_PRECOPY_INFO", _IOC_NONE, 0x3b79, 0x00 }, { "linux/vfio.h", "VFIO_SET_IOMMU", _IOC_NONE, 0x3b66, 0x00 }, { "linux/vhost.h", "VHOST_GET_BACKEND_FEATURES", _IOC_READ, 0xaf26, 0x08 }, { "linux/vhost.h", "VHOST_GET_FEATURES", _IOC_READ, 0xaf00, 0x08 }, @@ -2673,6 +2685,7 @@ { "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_ATTACH", _IOC_NONE, 0x5204, 0x00 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_ATTACH_SNS", _IOC_NONE, 0x5208, 0x00 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_CREATE", _IOC_READ|_IOC_WRITE, 0x5205, 0x18 }, +{ "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_CREATE_STATIC", _IOC_READ|_IOC_WRITE, 0x5209, 0x10 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_INVOKE", _IOC_READ|_IOC_WRITE, 0x5203, 0x10 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_MEM_MAP", _IOC_READ|_IOC_WRITE, 0x520a, 0x3c }, { "misc/fastrpc.h", "FASTRPC_IOCTL_MEM_UNMAP", _IOC_READ|_IOC_WRITE, 0x520b, 0x2c }, diff -Nru strace-6.1/src/linux/32/ioctls_inc_align32.h strace-6.2/src/linux/32/ioctls_inc_align32.h --- strace-6.1/src/linux/32/ioctls_inc_align32.h 2022-11-28 12:14:14.000000000 +0100 +++ strace-6.2/src/linux/32/ioctls_inc_align32.h 2023-01-30 14:54:29.000000000 +0100 @@ -1016,6 +1016,7 @@ { "linux/f2fs.h", "F2FS_IOC_SET_COMPRESS_OPTION", _IOC_WRITE, 0xf516, 0x02 }, { "linux/f2fs.h", "F2FS_IOC_SET_PIN_FILE", _IOC_WRITE, 0xf50d, 0x04 }, { "linux/f2fs.h", "F2FS_IOC_SHUTDOWN", _IOC_READ, 0x587d, 0x04 }, +{ "linux/f2fs.h", "F2FS_IOC_START_ATOMIC_REPLACE", _IOC_NONE, 0xf519, 0x00 }, { "linux/f2fs.h", "F2FS_IOC_START_ATOMIC_WRITE", _IOC_NONE, 0xf501, 0x00 }, { "linux/f2fs.h", "F2FS_IOC_START_VOLATILE_WRITE", _IOC_NONE, 0xf503, 0x00 }, { "linux/f2fs.h", "F2FS_IOC_WRITE_CHECKPOINT", _IOC_NONE, 0xf507, 0x00 }, @@ -1365,6 +1366,15 @@ { "linux/input.h", "EVIOCSKEYCODE_V2", _IOC_WRITE, 0x4504, 0x28 }, { "linux/input.h", "EVIOCSMASK", _IOC_WRITE, 0x4593, 0x10 }, { "linux/input.h", "EVIOCSREP", _IOC_WRITE, 0x4503, 0x08 }, +{ "linux/iommufd.h", "IOMMU_DESTROY", _IOC_NONE, 0x3b80, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_ALLOC", _IOC_NONE, 0x3b81, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_ALLOW_IOVAS", _IOC_NONE, 0x3b82, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_COPY", _IOC_NONE, 0x3b83, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_IOVA_RANGES", _IOC_NONE, 0x3b84, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_MAP", _IOC_NONE, 0x3b85, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_UNMAP", _IOC_NONE, 0x3b86, 0x00 }, +{ "linux/iommufd.h", "IOMMU_OPTION", _IOC_NONE, 0x3b87, 0x00 }, +{ "linux/iommufd.h", "IOMMU_VFIO_IOAS", _IOC_NONE, 0x3b88, 0x00 }, { "linux/ipmi.h", "IPMICTL_GET_MAINTENANCE_MODE_CMD", _IOC_READ, 0x691e, 0x04 }, { "linux/ipmi.h", "IPMICTL_GET_MY_ADDRESS_CMD", _IOC_READ, 0x6912, 0x04 }, { "linux/ipmi.h", "IPMICTL_GET_MY_CHANNEL_ADDRESS_CMD", _IOC_READ, 0x6919, 0x04 }, @@ -2203,6 +2213,7 @@ { "linux/synclink.h", "MGSL_IOCTXENABLE", _IOC_NONE, 0x6d04, 0x00 }, { "linux/synclink.h", "MGSL_IOCWAITEVENT", _IOC_READ|_IOC_WRITE, 0x6d08, 0x04 }, { "linux/synclink.h", "MGSL_IOCWAITGPIO", _IOC_READ|_IOC_WRITE, 0x6d12, 0x10 }, +{ "linux/tdx-guest.h", "TDX_CMD_GET_REPORT0", _IOC_READ|_IOC_WRITE, 0x5401, 0x440 }, { "linux/tee.h", "TEE_IOC_CANCEL", _IOC_READ, 0xa404, 0x08 }, { "linux/tee.h", "TEE_IOC_CLOSE_SESSION", _IOC_READ, 0xa405, 0x04 }, { "linux/tee.h", "TEE_IOC_INVOKE", _IOC_READ, 0xa403, 0x10 }, @@ -2413,6 +2424,7 @@ { "linux/vfio.h", "VFIO_IOMMU_SPAPR_TCE_REMOVE", _IOC_NONE, 0x3b78, 0x00 }, { "linux/vfio.h", "VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY", _IOC_NONE, 0x3b76, 0x00 }, { "linux/vfio.h", "VFIO_IOMMU_UNMAP_DMA", _IOC_NONE, 0x3b72, 0x00 }, +{ "linux/vfio.h", "VFIO_MIG_GET_PRECOPY_INFO", _IOC_NONE, 0x3b79, 0x00 }, { "linux/vfio.h", "VFIO_SET_IOMMU", _IOC_NONE, 0x3b66, 0x00 }, { "linux/vhost.h", "VHOST_GET_BACKEND_FEATURES", _IOC_READ, 0xaf26, 0x08 }, { "linux/vhost.h", "VHOST_GET_FEATURES", _IOC_READ, 0xaf00, 0x08 }, @@ -2674,6 +2686,7 @@ { "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_ATTACH", _IOC_NONE, 0x5204, 0x00 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_ATTACH_SNS", _IOC_NONE, 0x5208, 0x00 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_CREATE", _IOC_READ|_IOC_WRITE, 0x5205, 0x18 }, +{ "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_CREATE_STATIC", _IOC_READ|_IOC_WRITE, 0x5209, 0x10 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_INVOKE", _IOC_READ|_IOC_WRITE, 0x5203, 0x10 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_MEM_MAP", _IOC_READ|_IOC_WRITE, 0x520a, 0x3c }, { "misc/fastrpc.h", "FASTRPC_IOCTL_MEM_UNMAP", _IOC_READ|_IOC_WRITE, 0x520b, 0x2c }, diff -Nru strace-6.1/src/linux/32/ioctls_inc_align64.h strace-6.2/src/linux/32/ioctls_inc_align64.h --- strace-6.1/src/linux/32/ioctls_inc_align64.h 2022-11-28 12:14:14.000000000 +0100 +++ strace-6.2/src/linux/32/ioctls_inc_align64.h 2023-01-30 14:54:29.000000000 +0100 @@ -1016,6 +1016,7 @@ { "linux/f2fs.h", "F2FS_IOC_SET_COMPRESS_OPTION", _IOC_WRITE, 0xf516, 0x02 }, { "linux/f2fs.h", "F2FS_IOC_SET_PIN_FILE", _IOC_WRITE, 0xf50d, 0x04 }, { "linux/f2fs.h", "F2FS_IOC_SHUTDOWN", _IOC_READ, 0x587d, 0x04 }, +{ "linux/f2fs.h", "F2FS_IOC_START_ATOMIC_REPLACE", _IOC_NONE, 0xf519, 0x00 }, { "linux/f2fs.h", "F2FS_IOC_START_ATOMIC_WRITE", _IOC_NONE, 0xf501, 0x00 }, { "linux/f2fs.h", "F2FS_IOC_START_VOLATILE_WRITE", _IOC_NONE, 0xf503, 0x00 }, { "linux/f2fs.h", "F2FS_IOC_WRITE_CHECKPOINT", _IOC_NONE, 0xf507, 0x00 }, @@ -1365,6 +1366,15 @@ { "linux/input.h", "EVIOCSKEYCODE_V2", _IOC_WRITE, 0x4504, 0x28 }, { "linux/input.h", "EVIOCSMASK", _IOC_WRITE, 0x4593, 0x10 }, { "linux/input.h", "EVIOCSREP", _IOC_WRITE, 0x4503, 0x08 }, +{ "linux/iommufd.h", "IOMMU_DESTROY", _IOC_NONE, 0x3b80, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_ALLOC", _IOC_NONE, 0x3b81, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_ALLOW_IOVAS", _IOC_NONE, 0x3b82, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_COPY", _IOC_NONE, 0x3b83, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_IOVA_RANGES", _IOC_NONE, 0x3b84, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_MAP", _IOC_NONE, 0x3b85, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_UNMAP", _IOC_NONE, 0x3b86, 0x00 }, +{ "linux/iommufd.h", "IOMMU_OPTION", _IOC_NONE, 0x3b87, 0x00 }, +{ "linux/iommufd.h", "IOMMU_VFIO_IOAS", _IOC_NONE, 0x3b88, 0x00 }, { "linux/ipmi.h", "IPMICTL_GET_MAINTENANCE_MODE_CMD", _IOC_READ, 0x691e, 0x04 }, { "linux/ipmi.h", "IPMICTL_GET_MY_ADDRESS_CMD", _IOC_READ, 0x6912, 0x04 }, { "linux/ipmi.h", "IPMICTL_GET_MY_CHANNEL_ADDRESS_CMD", _IOC_READ, 0x6919, 0x04 }, @@ -2203,6 +2213,7 @@ { "linux/synclink.h", "MGSL_IOCTXENABLE", _IOC_NONE, 0x6d04, 0x00 }, { "linux/synclink.h", "MGSL_IOCWAITEVENT", _IOC_READ|_IOC_WRITE, 0x6d08, 0x04 }, { "linux/synclink.h", "MGSL_IOCWAITGPIO", _IOC_READ|_IOC_WRITE, 0x6d12, 0x10 }, +{ "linux/tdx-guest.h", "TDX_CMD_GET_REPORT0", _IOC_READ|_IOC_WRITE, 0x5401, 0x440 }, { "linux/tee.h", "TEE_IOC_CANCEL", _IOC_READ, 0xa404, 0x08 }, { "linux/tee.h", "TEE_IOC_CLOSE_SESSION", _IOC_READ, 0xa405, 0x04 }, { "linux/tee.h", "TEE_IOC_INVOKE", _IOC_READ, 0xa403, 0x10 }, @@ -2413,6 +2424,7 @@ { "linux/vfio.h", "VFIO_IOMMU_SPAPR_TCE_REMOVE", _IOC_NONE, 0x3b78, 0x00 }, { "linux/vfio.h", "VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY", _IOC_NONE, 0x3b76, 0x00 }, { "linux/vfio.h", "VFIO_IOMMU_UNMAP_DMA", _IOC_NONE, 0x3b72, 0x00 }, +{ "linux/vfio.h", "VFIO_MIG_GET_PRECOPY_INFO", _IOC_NONE, 0x3b79, 0x00 }, { "linux/vfio.h", "VFIO_SET_IOMMU", _IOC_NONE, 0x3b66, 0x00 }, { "linux/vhost.h", "VHOST_GET_BACKEND_FEATURES", _IOC_READ, 0xaf26, 0x08 }, { "linux/vhost.h", "VHOST_GET_FEATURES", _IOC_READ, 0xaf00, 0x08 }, @@ -2674,6 +2686,7 @@ { "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_ATTACH", _IOC_NONE, 0x5204, 0x00 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_ATTACH_SNS", _IOC_NONE, 0x5208, 0x00 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_CREATE", _IOC_READ|_IOC_WRITE, 0x5205, 0x18 }, +{ "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_CREATE_STATIC", _IOC_READ|_IOC_WRITE, 0x5209, 0x10 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_INVOKE", _IOC_READ|_IOC_WRITE, 0x5203, 0x10 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_MEM_MAP", _IOC_READ|_IOC_WRITE, 0x520a, 0x40 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_MEM_UNMAP", _IOC_READ|_IOC_WRITE, 0x520b, 0x30 }, diff -Nru strace-6.1/src/linux/64/ioctls_inc.h strace-6.2/src/linux/64/ioctls_inc.h --- strace-6.1/src/linux/64/ioctls_inc.h 2022-11-28 12:14:14.000000000 +0100 +++ strace-6.2/src/linux/64/ioctls_inc.h 2023-01-30 14:54:29.000000000 +0100 @@ -1017,6 +1017,7 @@ { "linux/f2fs.h", "F2FS_IOC_SET_COMPRESS_OPTION", _IOC_WRITE, 0xf516, 0x02 }, { "linux/f2fs.h", "F2FS_IOC_SET_PIN_FILE", _IOC_WRITE, 0xf50d, 0x04 }, { "linux/f2fs.h", "F2FS_IOC_SHUTDOWN", _IOC_READ, 0x587d, 0x04 }, +{ "linux/f2fs.h", "F2FS_IOC_START_ATOMIC_REPLACE", _IOC_NONE, 0xf519, 0x00 }, { "linux/f2fs.h", "F2FS_IOC_START_ATOMIC_WRITE", _IOC_NONE, 0xf501, 0x00 }, { "linux/f2fs.h", "F2FS_IOC_START_VOLATILE_WRITE", _IOC_NONE, 0xf503, 0x00 }, { "linux/f2fs.h", "F2FS_IOC_WRITE_CHECKPOINT", _IOC_NONE, 0xf507, 0x00 }, @@ -1371,6 +1372,15 @@ { "linux/input.h", "EVIOCSKEYCODE_V2", _IOC_WRITE, 0x4504, 0x28 }, { "linux/input.h", "EVIOCSMASK", _IOC_WRITE, 0x4593, 0x10 }, { "linux/input.h", "EVIOCSREP", _IOC_WRITE, 0x4503, 0x08 }, +{ "linux/iommufd.h", "IOMMU_DESTROY", _IOC_NONE, 0x3b80, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_ALLOC", _IOC_NONE, 0x3b81, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_ALLOW_IOVAS", _IOC_NONE, 0x3b82, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_COPY", _IOC_NONE, 0x3b83, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_IOVA_RANGES", _IOC_NONE, 0x3b84, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_MAP", _IOC_NONE, 0x3b85, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_UNMAP", _IOC_NONE, 0x3b86, 0x00 }, +{ "linux/iommufd.h", "IOMMU_OPTION", _IOC_NONE, 0x3b87, 0x00 }, +{ "linux/iommufd.h", "IOMMU_VFIO_IOAS", _IOC_NONE, 0x3b88, 0x00 }, { "linux/ipmi.h", "IPMICTL_GET_MAINTENANCE_MODE_CMD", _IOC_READ, 0x691e, 0x04 }, { "linux/ipmi.h", "IPMICTL_GET_MY_ADDRESS_CMD", _IOC_READ, 0x6912, 0x04 }, { "linux/ipmi.h", "IPMICTL_GET_MY_CHANNEL_ADDRESS_CMD", _IOC_READ, 0x6919, 0x04 }, @@ -2210,6 +2220,7 @@ { "linux/synclink.h", "MGSL_IOCTXENABLE", _IOC_NONE, 0x6d04, 0x00 }, { "linux/synclink.h", "MGSL_IOCWAITEVENT", _IOC_READ|_IOC_WRITE, 0x6d08, 0x04 }, { "linux/synclink.h", "MGSL_IOCWAITGPIO", _IOC_READ|_IOC_WRITE, 0x6d12, 0x10 }, +{ "linux/tdx-guest.h", "TDX_CMD_GET_REPORT0", _IOC_READ|_IOC_WRITE, 0x5401, 0x440 }, { "linux/tee.h", "TEE_IOC_CANCEL", _IOC_READ, 0xa404, 0x08 }, { "linux/tee.h", "TEE_IOC_CLOSE_SESSION", _IOC_READ, 0xa405, 0x04 }, { "linux/tee.h", "TEE_IOC_INVOKE", _IOC_READ, 0xa403, 0x10 }, @@ -2426,6 +2437,7 @@ { "linux/vfio.h", "VFIO_IOMMU_SPAPR_TCE_REMOVE", _IOC_NONE, 0x3b78, 0x00 }, { "linux/vfio.h", "VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY", _IOC_NONE, 0x3b76, 0x00 }, { "linux/vfio.h", "VFIO_IOMMU_UNMAP_DMA", _IOC_NONE, 0x3b72, 0x00 }, +{ "linux/vfio.h", "VFIO_MIG_GET_PRECOPY_INFO", _IOC_NONE, 0x3b79, 0x00 }, { "linux/vfio.h", "VFIO_SET_IOMMU", _IOC_NONE, 0x3b66, 0x00 }, { "linux/vhost.h", "VHOST_GET_BACKEND_FEATURES", _IOC_READ, 0xaf26, 0x08 }, { "linux/vhost.h", "VHOST_GET_FEATURES", _IOC_READ, 0xaf00, 0x08 }, @@ -2687,6 +2699,7 @@ { "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_ATTACH", _IOC_NONE, 0x5204, 0x00 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_ATTACH_SNS", _IOC_NONE, 0x5208, 0x00 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_CREATE", _IOC_READ|_IOC_WRITE, 0x5205, 0x18 }, +{ "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_CREATE_STATIC", _IOC_READ|_IOC_WRITE, 0x5209, 0x10 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_INVOKE", _IOC_READ|_IOC_WRITE, 0x5203, 0x10 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_MEM_MAP", _IOC_READ|_IOC_WRITE, 0x520a, 0x40 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_MEM_UNMAP", _IOC_READ|_IOC_WRITE, 0x520b, 0x30 }, diff -Nru strace-6.1/src/linux/aarch64/ioctls_arch0.h strace-6.2/src/linux/aarch64/ioctls_arch0.h --- strace-6.1/src/linux/aarch64/ioctls_arch0.h 2022-07-18 12:07:31.000000000 +0200 +++ strace-6.2/src/linux/aarch64/ioctls_arch0.h 2023-01-30 14:54:29.000000000 +0100 @@ -59,7 +59,6 @@ { "linux/kvm.h", "KVM_SET_GUEST_DEBUG", _IOC_WRITE, 0xae9b, 0x208 }, { "linux/kvm.h", "KVM_SET_IDENTITY_MAP_ADDR", _IOC_WRITE, 0xae48, 0x08 }, { "linux/kvm.h", "KVM_SET_IRQCHIP", _IOC_READ, 0xae63, 0x208 }, -{ "linux/kvm.h", "KVM_SET_MEMORY_REGION", _IOC_WRITE, 0xae40, 0x18 }, { "linux/kvm.h", "KVM_SET_MP_STATE", _IOC_WRITE, 0xae99, 0x04 }, { "linux/kvm.h", "KVM_SET_NR_MMU_PAGES", _IOC_NONE, 0xae44, 0x00 }, { "linux/kvm.h", "KVM_SET_ONE_REG", _IOC_WRITE, 0xaeac, 0x10 }, diff -Nru strace-6.1/src/linux/hppa/arch_defs_.h strace-6.2/src/linux/hppa/arch_defs_.h --- strace-6.1/src/linux/hppa/arch_defs_.h 2021-10-08 03:50:59.000000000 +0200 +++ strace-6.2/src/linux/hppa/arch_defs_.h 2023-02-26 09:00:00.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2021 The strace developers. + * Copyright (c) 2018-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -13,5 +13,5 @@ * to return the error code of the failed syscall to userspace. * Workaround this by initializing %r28 ourselves. */ -#define ARCH_NEEDS_SET_ERROR_FOR_SCNO_TAMPERING 1 +#define ARCH_NEEDS_SET_ERROR_FOR_SCNO_TAMPERING 0 #define PERSONALITY0_AUDIT_ARCH { AUDIT_ARCH_PARISC, 0 } diff -Nru strace-6.1/src/linux/hppa/arch_regs.c strace-6.2/src/linux/hppa/arch_regs.c --- strace-6.1/src/linux/hppa/arch_regs.c 2021-02-16 09:00:00.000000000 +0100 +++ strace-6.2/src/linux/hppa/arch_regs.c 2023-02-26 09:00:00.000000000 +0100 @@ -1,11 +1,11 @@ /* - * Copyright (c) 2015-2021 The strace developers. + * Copyright (c) 2015-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ static struct user_regs_struct hppa_regs; -#define ARCH_REGS_FOR_GETREGS hppa_regs +#define ARCH_REGS_FOR_GETREGSET hppa_regs #define ARCH_PC_REG hppa_regs.iaoq[0] #define ARCH_SP_REG hppa_regs.gr[30] diff -Nru strace-6.1/src/linux/hppa/arch_rt_sigframe.c strace-6.2/src/linux/hppa/arch_rt_sigframe.c --- strace-6.1/src/linux/hppa/arch_rt_sigframe.c 2021-02-16 09:00:00.000000000 +0100 +++ strace-6.2/src/linux/hppa/arch_rt_sigframe.c 2023-02-26 09:00:00.000000000 +0100 @@ -1,5 +1,6 @@ /* * Copyright (c) 2017-2021 Dmitry V. Levin + * Copyright (c) 2021-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -7,15 +8,38 @@ #include "rt_sigframe.h" -#define SIGFRAME (sizeof(long) * 16) -#define FUNCTIONCALLFRAME (sizeof(long) * 12) -#define RT_SIGFRAME_SIZE \ - (((sizeof(struct_rt_sigframe) + FUNCTIONCALLFRAME)) & -SIGFRAME) +/* see further comments in GDB: gdb/hppa-linux-tdep.c */ + +#define SIGFRAME 64 FUNC_GET_RT_SIGFRAME_ADDR { - unsigned long addr; + unsigned long sp, ip; + + if (!get_instruction_pointer(tcp, &ip) || + !get_stack_pointer(tcp, &sp)) + return 0; + + sp &= -1UL; + /* check if ip is part of stack, running in tramp[] of rt_sigframe */ + if ((sp - ip) < 1024) { + /* on executable stack: We execute in tramp[], so align down. */ + return (ip & -SIGFRAME) + /* compensate for size difference old and new frame */ + + sizeof(struct_rt_sigframe_old) + - sizeof(struct_rt_sigframe); + } else { + /* running in VDSO on kernel >= 5.18 */ + static kernel_ulong_t context_offset; + + /* read sigframe offset from kernel VDSO header */ + if (!context_offset) + context_offset = ptrace(PTRACE_PEEKTEXT, (pid_t) tcp->pid, + (void *)(ip & -SIGFRAME), 0); + if (context_offset == (kernel_ulong_t) -1) + return 0; - return get_stack_pointer(tcp, &addr) - ? (addr & ~1UL) - RT_SIGFRAME_SIZE : 0; + /* context_offset is a negative value */ + return sp + context_offset - offsetof(struct_rt_sigframe, uc.uc_mcontext); + } } diff -Nru strace-6.1/src/linux/hppa/rt_sigframe.h strace-6.2/src/linux/hppa/rt_sigframe.h --- strace-6.1/src/linux/hppa/rt_sigframe.h 2021-02-16 09:00:00.000000000 +0100 +++ strace-6.2/src/linux/hppa/rt_sigframe.h 2023-02-26 09:00:00.000000000 +0100 @@ -1,5 +1,6 @@ /* * Copyright (c) 2017-2021 Dmitry V. Levin + * Copyright (c) 2021-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -14,6 +15,12 @@ unsigned int tramp[9]; siginfo_t info; ucontext_t uc; -} struct_rt_sigframe; +} struct_rt_sigframe_old; /* when executed on stack */ + +typedef struct { + unsigned int tramp[2]; /* holds original return address */ + siginfo_t info; + ucontext_t uc; +} struct_rt_sigframe; /* when VDSO is used */ #endif /* !STRACE_RT_SIGFRAME_H */ diff -Nru strace-6.1/src/linux/i386/ioctls_arch0.h strace-6.2/src/linux/i386/ioctls_arch0.h --- strace-6.1/src/linux/i386/ioctls_arch0.h 2022-10-10 11:49:13.000000000 +0200 +++ strace-6.2/src/linux/i386/ioctls_arch0.h 2023-01-30 14:54:29.000000000 +0100 @@ -100,8 +100,6 @@ { "linux/kvm.h", "KVM_SET_IDENTITY_MAP_ADDR", _IOC_WRITE, 0xae48, 0x08 }, { "linux/kvm.h", "KVM_SET_IRQCHIP", _IOC_READ, 0xae63, 0x208 }, { "linux/kvm.h", "KVM_SET_LAPIC", _IOC_WRITE, 0xae8f, 0x400 }, -{ "linux/kvm.h", "KVM_SET_MEMORY_ALIAS", _IOC_WRITE, 0xae43, 0x20 }, -{ "linux/kvm.h", "KVM_SET_MEMORY_REGION", _IOC_WRITE, 0xae40, 0x18 }, { "linux/kvm.h", "KVM_SET_MP_STATE", _IOC_WRITE, 0xae99, 0x04 }, { "linux/kvm.h", "KVM_SET_MSRS", _IOC_WRITE, 0xae89, 0x08 }, { "linux/kvm.h", "KVM_SET_NESTED_STATE", _IOC_WRITE, 0xaebf, 0x80 }, diff -Nru strace-6.1/src/linux/mips/genstub.sh strace-6.2/src/linux/mips/genstub.sh --- strace-6.1/src/linux/mips/genstub.sh 2021-02-16 09:00:00.000000000 +0100 +++ strace-6.2/src/linux/mips/genstub.sh 2023-02-26 09:00:00.000000000 +0100 @@ -1,6 +1,6 @@ #!/bin/sh -e # -# Copyright (c) 2015-2021 The strace developers. +# Copyright (c) 2015-2023 The strace developers. # All rights reserved. # # SPDX-License-Identifier: LGPL-2.1-or-later @@ -11,5 +11,5 @@ for n; do in="$srcdir/syscallent-$n.h" out="$dstdir/syscallent-$n-stub.h" - sed -r -n '/^#if/,/^#else/ {s/^([^{]*\{[^,]*,[^,]*,[[:space:]]*)[^,[:space:]]+,[[:space:]]*"([^"]+".*)/\1SEN(printargs), SYSCALL_NAME_PREFIX "\2/; s/^\[.*/&/p}' < "$in" > "$out" + sed -E -n '/^#if/,/^#else/ {s/^([^{]*\{[^,]*,[^,]*,[[:space:]]*)[^,[:space:]]+,[[:space:]]*"([^"]+".*)/\1SEN(printargs), SYSCALL_NAME_PREFIX "\2/; s/^\[.*/&/p}' < "$in" > "$out" done diff -Nru strace-6.1/src/linux/mips/ioctls_arch0.h strace-6.2/src/linux/mips/ioctls_arch0.h --- strace-6.1/src/linux/mips/ioctls_arch0.h 2022-07-18 12:07:31.000000000 +0200 +++ strace-6.2/src/linux/mips/ioctls_arch0.h 2023-01-30 14:54:29.000000000 +0100 @@ -136,7 +136,6 @@ { "linux/kvm.h", "KVM_SET_GUEST_DEBUG", _IOC_WRITE, 0xae9b, 0x08 }, { "linux/kvm.h", "KVM_SET_IDENTITY_MAP_ADDR", _IOC_WRITE, 0xae48, 0x08 }, { "linux/kvm.h", "KVM_SET_IRQCHIP", _IOC_READ, 0xae63, 0x208 }, -{ "linux/kvm.h", "KVM_SET_MEMORY_REGION", _IOC_WRITE, 0xae40, 0x18 }, { "linux/kvm.h", "KVM_SET_MP_STATE", _IOC_WRITE, 0xae99, 0x04 }, { "linux/kvm.h", "KVM_SET_NR_MMU_PAGES", _IOC_NONE, 0xae44, 0x00 }, { "linux/kvm.h", "KVM_SET_ONE_REG", _IOC_WRITE, 0xaeac, 0x10 }, diff -Nru strace-6.1/src/linux/powerpc/ioctls_arch0.h strace-6.2/src/linux/powerpc/ioctls_arch0.h --- strace-6.1/src/linux/powerpc/ioctls_arch0.h 2022-07-18 12:07:31.000000000 +0200 +++ strace-6.2/src/linux/powerpc/ioctls_arch0.h 2023-01-30 14:54:29.000000000 +0100 @@ -159,7 +159,6 @@ { "linux/kvm.h", "KVM_SET_GUEST_DEBUG", _IOC_WRITE, 0xae9b, 0x108 }, { "linux/kvm.h", "KVM_SET_IDENTITY_MAP_ADDR", _IOC_WRITE, 0xae48, 0x08 }, { "linux/kvm.h", "KVM_SET_IRQCHIP", _IOC_READ, 0xae63, 0x208 }, -{ "linux/kvm.h", "KVM_SET_MEMORY_REGION", _IOC_WRITE, 0xae40, 0x18 }, { "linux/kvm.h", "KVM_SET_MP_STATE", _IOC_WRITE, 0xae99, 0x04 }, { "linux/kvm.h", "KVM_SET_NR_MMU_PAGES", _IOC_NONE, 0xae44, 0x00 }, { "linux/kvm.h", "KVM_SET_ONE_REG", _IOC_WRITE, 0xaeac, 0x10 }, diff -Nru strace-6.1/src/linux/s390/ioctls_arch0.h strace-6.2/src/linux/s390/ioctls_arch0.h --- strace-6.1/src/linux/s390/ioctls_arch0.h 2022-11-28 12:14:14.000000000 +0100 +++ strace-6.2/src/linux/s390/ioctls_arch0.h 2023-01-30 14:54:29.000000000 +0100 @@ -161,7 +161,6 @@ { "linux/kvm.h", "KVM_SET_GUEST_DEBUG", _IOC_WRITE, 0xae9b, 0x14 }, { "linux/kvm.h", "KVM_SET_IDENTITY_MAP_ADDR", _IOC_WRITE, 0xae48, 0x08 }, { "linux/kvm.h", "KVM_SET_IRQCHIP", _IOC_READ, 0xae63, 0x208 }, -{ "linux/kvm.h", "KVM_SET_MEMORY_REGION", _IOC_WRITE, 0xae40, 0x18 }, { "linux/kvm.h", "KVM_SET_MP_STATE", _IOC_WRITE, 0xae99, 0x04 }, { "linux/kvm.h", "KVM_SET_NR_MMU_PAGES", _IOC_NONE, 0xae44, 0x00 }, { "linux/kvm.h", "KVM_SET_ONE_REG", _IOC_WRITE, 0xaeac, 0x10 }, diff -Nru strace-6.1/src/linux/s390x/ioctls_arch0.h strace-6.2/src/linux/s390x/ioctls_arch0.h --- strace-6.1/src/linux/s390x/ioctls_arch0.h 2022-11-28 12:14:14.000000000 +0100 +++ strace-6.2/src/linux/s390x/ioctls_arch0.h 2023-01-30 14:54:29.000000000 +0100 @@ -161,7 +161,6 @@ { "linux/kvm.h", "KVM_SET_GUEST_DEBUG", _IOC_WRITE, 0xae9b, 0x18 }, { "linux/kvm.h", "KVM_SET_IDENTITY_MAP_ADDR", _IOC_WRITE, 0xae48, 0x08 }, { "linux/kvm.h", "KVM_SET_IRQCHIP", _IOC_READ, 0xae63, 0x208 }, -{ "linux/kvm.h", "KVM_SET_MEMORY_REGION", _IOC_WRITE, 0xae40, 0x18 }, { "linux/kvm.h", "KVM_SET_MP_STATE", _IOC_WRITE, 0xae99, 0x04 }, { "linux/kvm.h", "KVM_SET_NR_MMU_PAGES", _IOC_NONE, 0xae44, 0x00 }, { "linux/kvm.h", "KVM_SET_ONE_REG", _IOC_WRITE, 0xaeac, 0x10 }, diff -Nru strace-6.1/src/linux/x32/ioctls_inc0.h strace-6.2/src/linux/x32/ioctls_inc0.h --- strace-6.1/src/linux/x32/ioctls_inc0.h 2022-11-28 12:14:14.000000000 +0100 +++ strace-6.2/src/linux/x32/ioctls_inc0.h 2023-01-30 14:54:29.000000000 +0100 @@ -1016,6 +1016,7 @@ { "linux/f2fs.h", "F2FS_IOC_SET_COMPRESS_OPTION", _IOC_WRITE, 0xf516, 0x02 }, { "linux/f2fs.h", "F2FS_IOC_SET_PIN_FILE", _IOC_WRITE, 0xf50d, 0x04 }, { "linux/f2fs.h", "F2FS_IOC_SHUTDOWN", _IOC_READ, 0x587d, 0x04 }, +{ "linux/f2fs.h", "F2FS_IOC_START_ATOMIC_REPLACE", _IOC_NONE, 0xf519, 0x00 }, { "linux/f2fs.h", "F2FS_IOC_START_ATOMIC_WRITE", _IOC_NONE, 0xf501, 0x00 }, { "linux/f2fs.h", "F2FS_IOC_START_VOLATILE_WRITE", _IOC_NONE, 0xf503, 0x00 }, { "linux/f2fs.h", "F2FS_IOC_WRITE_CHECKPOINT", _IOC_NONE, 0xf507, 0x00 }, @@ -1365,6 +1366,15 @@ { "linux/input.h", "EVIOCSKEYCODE_V2", _IOC_WRITE, 0x4504, 0x28 }, { "linux/input.h", "EVIOCSMASK", _IOC_WRITE, 0x4593, 0x10 }, { "linux/input.h", "EVIOCSREP", _IOC_WRITE, 0x4503, 0x08 }, +{ "linux/iommufd.h", "IOMMU_DESTROY", _IOC_NONE, 0x3b80, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_ALLOC", _IOC_NONE, 0x3b81, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_ALLOW_IOVAS", _IOC_NONE, 0x3b82, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_COPY", _IOC_NONE, 0x3b83, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_IOVA_RANGES", _IOC_NONE, 0x3b84, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_MAP", _IOC_NONE, 0x3b85, 0x00 }, +{ "linux/iommufd.h", "IOMMU_IOAS_UNMAP", _IOC_NONE, 0x3b86, 0x00 }, +{ "linux/iommufd.h", "IOMMU_OPTION", _IOC_NONE, 0x3b87, 0x00 }, +{ "linux/iommufd.h", "IOMMU_VFIO_IOAS", _IOC_NONE, 0x3b88, 0x00 }, { "linux/ipmi.h", "IPMICTL_GET_MAINTENANCE_MODE_CMD", _IOC_READ, 0x691e, 0x04 }, { "linux/ipmi.h", "IPMICTL_GET_MY_ADDRESS_CMD", _IOC_READ, 0x6912, 0x04 }, { "linux/ipmi.h", "IPMICTL_GET_MY_CHANNEL_ADDRESS_CMD", _IOC_READ, 0x6919, 0x04 }, @@ -2204,6 +2214,7 @@ { "linux/synclink.h", "MGSL_IOCTXENABLE", _IOC_NONE, 0x6d04, 0x00 }, { "linux/synclink.h", "MGSL_IOCWAITEVENT", _IOC_READ|_IOC_WRITE, 0x6d08, 0x04 }, { "linux/synclink.h", "MGSL_IOCWAITGPIO", _IOC_READ|_IOC_WRITE, 0x6d12, 0x10 }, +{ "linux/tdx-guest.h", "TDX_CMD_GET_REPORT0", _IOC_READ|_IOC_WRITE, 0x5401, 0x440 }, { "linux/tee.h", "TEE_IOC_CANCEL", _IOC_READ, 0xa404, 0x08 }, { "linux/tee.h", "TEE_IOC_CLOSE_SESSION", _IOC_READ, 0xa405, 0x04 }, { "linux/tee.h", "TEE_IOC_INVOKE", _IOC_READ, 0xa403, 0x10 }, @@ -2414,6 +2425,7 @@ { "linux/vfio.h", "VFIO_IOMMU_SPAPR_TCE_REMOVE", _IOC_NONE, 0x3b78, 0x00 }, { "linux/vfio.h", "VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY", _IOC_NONE, 0x3b76, 0x00 }, { "linux/vfio.h", "VFIO_IOMMU_UNMAP_DMA", _IOC_NONE, 0x3b72, 0x00 }, +{ "linux/vfio.h", "VFIO_MIG_GET_PRECOPY_INFO", _IOC_NONE, 0x3b79, 0x00 }, { "linux/vfio.h", "VFIO_SET_IOMMU", _IOC_NONE, 0x3b66, 0x00 }, { "linux/vhost.h", "VHOST_GET_BACKEND_FEATURES", _IOC_READ, 0xaf26, 0x08 }, { "linux/vhost.h", "VHOST_GET_FEATURES", _IOC_READ, 0xaf00, 0x08 }, @@ -2675,6 +2687,7 @@ { "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_ATTACH", _IOC_NONE, 0x5204, 0x00 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_ATTACH_SNS", _IOC_NONE, 0x5208, 0x00 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_CREATE", _IOC_READ|_IOC_WRITE, 0x5205, 0x18 }, +{ "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_CREATE_STATIC", _IOC_READ|_IOC_WRITE, 0x5209, 0x10 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_INVOKE", _IOC_READ|_IOC_WRITE, 0x5203, 0x10 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_MEM_MAP", _IOC_READ|_IOC_WRITE, 0x520a, 0x40 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_MEM_UNMAP", _IOC_READ|_IOC_WRITE, 0x520b, 0x30 }, diff -Nru strace-6.1/src/linux/x86_64/ioctls_arch0.h strace-6.2/src/linux/x86_64/ioctls_arch0.h --- strace-6.1/src/linux/x86_64/ioctls_arch0.h 2022-10-10 11:49:13.000000000 +0200 +++ strace-6.2/src/linux/x86_64/ioctls_arch0.h 2023-01-30 14:54:29.000000000 +0100 @@ -100,8 +100,6 @@ { "linux/kvm.h", "KVM_SET_IDENTITY_MAP_ADDR", _IOC_WRITE, 0xae48, 0x08 }, { "linux/kvm.h", "KVM_SET_IRQCHIP", _IOC_READ, 0xae63, 0x208 }, { "linux/kvm.h", "KVM_SET_LAPIC", _IOC_WRITE, 0xae8f, 0x400 }, -{ "linux/kvm.h", "KVM_SET_MEMORY_ALIAS", _IOC_WRITE, 0xae43, 0x20 }, -{ "linux/kvm.h", "KVM_SET_MEMORY_REGION", _IOC_WRITE, 0xae40, 0x18 }, { "linux/kvm.h", "KVM_SET_MP_STATE", _IOC_WRITE, 0xae99, 0x04 }, { "linux/kvm.h", "KVM_SET_MSRS", _IOC_WRITE, 0xae89, 0x08 }, { "linux/kvm.h", "KVM_SET_NESTED_STATE", _IOC_WRITE, 0xaebf, 0x80 }, diff -Nru strace-6.1/src/Makefile.am strace-6.2/src/Makefile.am --- strace-6.1/src/Makefile.am 2022-06-26 11:25:16.000000000 +0200 +++ strace-6.2/src/Makefile.am 2023-02-26 09:00:00.000000000 +0100 @@ -4,7 +4,7 @@ # Copyright (c) 2006-2016 Dmitry V. Levin # Copyright (c) 2008-2015 Mike Frysinger # Copyright (c) 2015 Elvira Khabirova -# Copyright (c) 2002-2022 The strace developers. +# Copyright (c) 2002-2023 The strace developers. # All rights reserved. # # SPDX-License-Identifier: LGPL-2.1-or-later @@ -169,6 +169,7 @@ kernel_dirent.h \ kernel_fcntl.h \ kernel_rusage.h \ + kernel_time_types.h \ kernel_timespec.h \ kernel_timeval.h \ kernel_timex.h \ @@ -1090,7 +1091,7 @@ ioctl_redefs%.h: ioctlent%.h ioctlent0.h sort $< > $<-t sort ioctlent0.h | comm -23 $<-t - | \ - sed -r -n 's/^\{ "([^"]+)", (0x[[:xdigit:]]+) \},$$/#ifdef \1\n# undef \1\n# define \1 \2\n#endif/p' \ + sed -E -n 's/^\{ "([^"]+)", (0x[[:xdigit:]]+) \},$$/#ifdef \1\n# undef \1\n# define \1 \2\n#endif/p' \ > $@-t rm -f $<-t mv $@-t $@ @@ -1167,7 +1168,7 @@ m%_type_defs.h: $(srcdir_mpers_source_files) for f in $^; do \ - sed -r -n 's/^#[[:space:]]*include DEF_MPERS_TYPE\(([^)]+)\)/#ifdef MPERS_$(mpers_PREFIX)\1\n# define \1 MPERS_$(mpers_PREFIX)\1\n#endif/p' $$f || exit; \ + sed -E -n 's/^#[[:space:]]*include DEF_MPERS_TYPE\(([^)]+)\)/#ifdef MPERS_$(mpers_PREFIX)\1\n# define \1 MPERS_$(mpers_PREFIX)\1\n#endif/p' $$f || exit; \ done > $@-t echo '#undef MPERS_PRINTER_NAME' >> $@-t echo '#define MPERS_PRINTER_NAME(printer_name) printer_name' >> $@-t @@ -1177,7 +1178,7 @@ m%_funcs.h: $(srcdir_mpers_source_files) for f in $^; do \ - sed -r -n 's/^SYS_FUNC\(([^)]+)\)/#undef sys_\1\n#define sys_\1 $(mpers_PREFIX)sys_\1/p' $$f || exit; \ + sed -E -n 's/^SYS_FUNC\(([^)]+)\)/#undef sys_\1\n#define sys_\1 $(mpers_PREFIX)sys_\1/p' $$f || exit; \ done > $@-t && \ echo '#include "sys_func.h"' >> $@-t mv $@-t $@ @@ -1193,7 +1194,7 @@ echo '/* Generated by Makefile from $^; do not edit. */' > $@-t echo 'typedef struct {' >> $@-t for f in $^; do \ - sed -r -n 's/$(mpers_printer_decl_pattern)/ \1 (*\2)(\3);\n#define \2 MPERS_PRINTER_NAME(\2)\n/p' $$f \ + sed -E -n 's/$(mpers_printer_decl_pattern)/ \1 (*\2)(\3);\n#define \2 MPERS_PRINTER_NAME(\2)\n/p' $$f \ || exit; \ done >> $@-t echo '} struct_printers;' >> $@-t @@ -1204,7 +1205,7 @@ %_printer_decls.h: $(mpers_preproc_files) echo '/* Generated by Makefile from $^; do not edit. */' > $@-t for f in $^; do \ - sed -r -n 's/$(mpers_printer_decl_pattern)/extern \1 $(mpers_PREFIX)\2(\3);/p' $$f \ + sed -E -n 's/$(mpers_printer_decl_pattern)/extern \1 $(mpers_PREFIX)\2(\3);/p' $$f \ || exit; \ done >> $@-t mv $@-t $@ @@ -1212,7 +1213,7 @@ %_printer_defs.h: $(mpers_preproc_files) echo '/* Generated by Makefile from $^; do not edit. */' > $@-t for f in $^; do \ - sed -r -n 's/$(mpers_printer_decl_pattern)/.\2 = $(mpers_PREFIX)\2,/p' $$f \ + sed -E -n 's/$(mpers_printer_decl_pattern)/.\2 = $(mpers_PREFIX)\2,/p' $$f \ || exit; \ done >> $@-t mv $@-t $@ diff -Nru strace-6.1/src/Makefile.in strace-6.2/src/Makefile.in --- strace-6.1/src/Makefile.in 2022-12-12 19:29:01.000000000 +0100 +++ strace-6.2/src/Makefile.in 2023-02-26 22:20:56.000000000 +0100 @@ -20,7 +20,7 @@ # Copyright (c) 2006-2016 Dmitry V. Levin # Copyright (c) 2008-2015 Mike Frysinger # Copyright (c) 2015 Elvira Khabirova -# Copyright (c) 2002-2022 The strace developers. +# Copyright (c) 2002-2023 The strace developers. # All rights reserved. # # SPDX-License-Identifier: LGPL-2.1-or-later @@ -321,14 +321,14 @@ iovec.h ipc.c ipc_defs.h ipc_msg.c ipc_msgctl.c ipc_sem.c \ ipc_semctl.c ipc_shm.c ipc_shmctl.c kcmp.c kd_ioctl.c \ kd_mpers_ioctl.c kernel_dirent.h kernel_fcntl.h \ - kernel_rusage.h kernel_timespec.h kernel_timeval.h \ - kernel_timex.h kernel_types.h kernel_v4l2_types.h kexec.c \ - keyctl.c keyctl_kdf_params.h kill_save_errno.h kvm.c \ - landlock.c largefile_wrappers.h ldt.c link.c \ - linux/x32/asm_stat.h linux/x86_64/asm_stat.h lirc_ioctl.c \ - list.h listen.c lookup_dcookie.c loop.c lseek.c macros.h mem.c \ - membarrier.c memfd_create.c memfd_secret.c mknod.c \ - mmap_cache.c mmap_cache.h mmap_notify.c mmap_notify.h \ + kernel_rusage.h kernel_time_types.h kernel_timespec.h \ + kernel_timeval.h kernel_timex.h kernel_types.h \ + kernel_v4l2_types.h kexec.c keyctl.c keyctl_kdf_params.h \ + kill_save_errno.h kvm.c landlock.c largefile_wrappers.h ldt.c \ + link.c linux/x32/asm_stat.h linux/x86_64/asm_stat.h \ + lirc_ioctl.c list.h listen.c lookup_dcookie.c loop.c lseek.c \ + macros.h mem.c membarrier.c memfd_create.c memfd_secret.c \ + mknod.c mmap_cache.c mmap_cache.h mmap_notify.c mmap_notify.h \ mmsghdr.c mount.c mount_setattr.c move_mount.c mpers_type.h \ mq.c msghdr.c msghdr.h mtd.c native_defs.h nbd_ioctl.c \ negated_errno.h net.c netlink.c netlink.h netlink_crypto.c \ @@ -1565,19 +1565,20 @@ xlat/tee_ioctl_max_arg_size.in xlat/tee_ioctl_optee_caps.in \ xlat/tee_ioctl_origins.in xlat/tee_ioctl_param_attr_types.in \ xlat/tee_ioctl_shm_flags.in xlat/term_cflags.in \ - xlat/term_cflags_csize.in xlat/term_iflags.in \ - xlat/term_lflags.in xlat/term_line_discs.in \ - xlat/term_oflags.in xlat/term_oflags_bsdly.in \ - xlat/term_oflags_crdly.in xlat/term_oflags_ffdly.in \ - xlat/term_oflags_nldly.in xlat/term_oflags_tabdly.in \ - xlat/term_oflags_vtdly.in xlat/termio_cc.in xlat/termios_cc.in \ - xlat/timerfdflags.in xlat/tls_info_ciphers.in \ - xlat/tls_info_configs.in xlat/tls_info_versions.in \ - xlat/tun_device_types.in xlat/ubi_data_types.in \ - xlat/ubi_volume_flags.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/term_cflags_csize.in xlat/term_cmds_overlapping.in \ + xlat/term_iflags.in xlat/term_lflags.in \ + xlat/term_line_discs.in xlat/term_oflags.in \ + xlat/term_oflags_bsdly.in xlat/term_oflags_crdly.in \ + xlat/term_oflags_ffdly.in xlat/term_oflags_nldly.in \ + xlat/term_oflags_tabdly.in xlat/term_oflags_vtdly.in \ + xlat/termio_cc.in xlat/termios_cc.in xlat/timerfdflags.in \ + xlat/tls_info_ciphers.in xlat/tls_info_configs.in \ + xlat/tls_info_versions.in xlat/tun_device_types.in \ + xlat/ubi_data_types.in xlat/ubi_volume_flags.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 \ @@ -1899,18 +1900,18 @@ xlat/tee_ioctl_max_arg_size.h xlat/tee_ioctl_optee_caps.h \ xlat/tee_ioctl_origins.h xlat/tee_ioctl_param_attr_types.h \ xlat/tee_ioctl_shm_flags.h xlat/term_cflags.h \ - xlat/term_cflags_csize.h xlat/term_iflags.h xlat/term_lflags.h \ - xlat/term_line_discs.h xlat/term_oflags.h \ - xlat/term_oflags_bsdly.h xlat/term_oflags_crdly.h \ - xlat/term_oflags_ffdly.h xlat/term_oflags_nldly.h \ - xlat/term_oflags_tabdly.h xlat/term_oflags_vtdly.h \ - xlat/termio_cc.h xlat/termios_cc.h xlat/timerfdflags.h \ - xlat/tls_info_ciphers.h xlat/tls_info_configs.h \ - xlat/tls_info_versions.h xlat/tun_device_types.h \ - xlat/ubi_data_types.h xlat/ubi_volume_flags.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/term_cflags_csize.h xlat/term_cmds_overlapping.h \ + xlat/term_iflags.h xlat/term_lflags.h xlat/term_line_discs.h \ + xlat/term_oflags.h xlat/term_oflags_bsdly.h \ + xlat/term_oflags_crdly.h xlat/term_oflags_ffdly.h \ + xlat/term_oflags_nldly.h xlat/term_oflags_tabdly.h \ + xlat/term_oflags_vtdly.h xlat/termio_cc.h xlat/termios_cc.h \ + xlat/timerfdflags.h xlat/tls_info_ciphers.h \ + xlat/tls_info_configs.h xlat/tls_info_versions.h \ + xlat/tun_device_types.h xlat/ubi_data_types.h \ + xlat/ubi_volume_flags.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 \ @@ -1983,14 +1984,14 @@ iovec.h ipc.c ipc_defs.h ipc_msg.c ipc_msgctl.c ipc_sem.c \ ipc_semctl.c ipc_shm.c ipc_shmctl.c kcmp.c kd_ioctl.c \ kd_mpers_ioctl.c kernel_dirent.h kernel_fcntl.h \ - kernel_rusage.h kernel_timespec.h kernel_timeval.h \ - kernel_timex.h kernel_types.h kernel_v4l2_types.h kexec.c \ - keyctl.c keyctl_kdf_params.h kill_save_errno.h kvm.c \ - landlock.c largefile_wrappers.h ldt.c link.c \ - linux/x32/asm_stat.h linux/x86_64/asm_stat.h lirc_ioctl.c \ - list.h listen.c lookup_dcookie.c loop.c lseek.c macros.h mem.c \ - membarrier.c memfd_create.c memfd_secret.c mknod.c \ - mmap_cache.c mmap_cache.h mmap_notify.c mmap_notify.h \ + kernel_rusage.h kernel_time_types.h kernel_timespec.h \ + kernel_timeval.h kernel_timex.h kernel_types.h \ + kernel_v4l2_types.h kexec.c keyctl.c keyctl_kdf_params.h \ + kill_save_errno.h kvm.c landlock.c largefile_wrappers.h ldt.c \ + link.c linux/x32/asm_stat.h linux/x86_64/asm_stat.h \ + lirc_ioctl.c list.h listen.c lookup_dcookie.c loop.c lseek.c \ + macros.h mem.c membarrier.c memfd_create.c memfd_secret.c \ + mknod.c mmap_cache.c mmap_cache.h mmap_notify.c mmap_notify.h \ mmsghdr.c mount.c mount_setattr.c move_mount.c mpers_type.h \ mq.c msghdr.c msghdr.h mtd.c native_defs.h nbd_ioctl.c \ negated_errno.h net.c netlink.c netlink.h netlink_crypto.c \ @@ -10606,6 +10607,8 @@ $(AM_V_GEN)$(top_srcdir)/src/xlat/gen.sh $< $@ $(top_srcdir)/src/xlat/term_cflags_csize.h: $(top_srcdir)/src/xlat/term_cflags_csize.in $(top_srcdir)/src/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/src/xlat/gen.sh $< $@ +$(top_srcdir)/src/xlat/term_cmds_overlapping.h: $(top_srcdir)/src/xlat/term_cmds_overlapping.in $(top_srcdir)/src/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/src/xlat/gen.sh $< $@ $(top_srcdir)/src/xlat/term_iflags.h: $(top_srcdir)/src/xlat/term_iflags.in $(top_srcdir)/src/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/src/xlat/gen.sh $< $@ $(top_srcdir)/src/xlat/term_lflags.h: $(top_srcdir)/src/xlat/term_lflags.in $(top_srcdir)/src/xlat/gen.sh @@ -10801,7 +10804,7 @@ ioctl_redefs%.h: ioctlent%.h ioctlent0.h sort $< > $<-t sort ioctlent0.h | comm -23 $<-t - | \ - sed -r -n 's/^\{ "([^"]+)", (0x[[:xdigit:]]+) \},$$/#ifdef \1\n# undef \1\n# define \1 \2\n#endif/p' \ + sed -E -n 's/^\{ "([^"]+)", (0x[[:xdigit:]]+) \},$$/#ifdef \1\n# undef \1\n# define \1 \2\n#endif/p' \ > $@-t rm -f $<-t mv $@-t $@ @@ -10858,7 +10861,7 @@ m%_type_defs.h: $(srcdir_mpers_source_files) for f in $^; do \ - sed -r -n 's/^#[[:space:]]*include DEF_MPERS_TYPE\(([^)]+)\)/#ifdef MPERS_$(mpers_PREFIX)\1\n# define \1 MPERS_$(mpers_PREFIX)\1\n#endif/p' $$f || exit; \ + sed -E -n 's/^#[[:space:]]*include DEF_MPERS_TYPE\(([^)]+)\)/#ifdef MPERS_$(mpers_PREFIX)\1\n# define \1 MPERS_$(mpers_PREFIX)\1\n#endif/p' $$f || exit; \ done > $@-t echo '#undef MPERS_PRINTER_NAME' >> $@-t echo '#define MPERS_PRINTER_NAME(printer_name) printer_name' >> $@-t @@ -10868,7 +10871,7 @@ m%_funcs.h: $(srcdir_mpers_source_files) for f in $^; do \ - sed -r -n 's/^SYS_FUNC\(([^)]+)\)/#undef sys_\1\n#define sys_\1 $(mpers_PREFIX)sys_\1/p' $$f || exit; \ + sed -E -n 's/^SYS_FUNC\(([^)]+)\)/#undef sys_\1\n#define sys_\1 $(mpers_PREFIX)sys_\1/p' $$f || exit; \ done > $@-t && \ echo '#include "sys_func.h"' >> $@-t mv $@-t $@ @@ -10882,7 +10885,7 @@ echo '/* Generated by Makefile from $^; do not edit. */' > $@-t echo 'typedef struct {' >> $@-t for f in $^; do \ - sed -r -n 's/$(mpers_printer_decl_pattern)/ \1 (*\2)(\3);\n#define \2 MPERS_PRINTER_NAME(\2)\n/p' $$f \ + sed -E -n 's/$(mpers_printer_decl_pattern)/ \1 (*\2)(\3);\n#define \2 MPERS_PRINTER_NAME(\2)\n/p' $$f \ || exit; \ done >> $@-t echo '} struct_printers;' >> $@-t @@ -10893,7 +10896,7 @@ %_printer_decls.h: $(mpers_preproc_files) echo '/* Generated by Makefile from $^; do not edit. */' > $@-t for f in $^; do \ - sed -r -n 's/$(mpers_printer_decl_pattern)/extern \1 $(mpers_PREFIX)\2(\3);/p' $$f \ + sed -E -n 's/$(mpers_printer_decl_pattern)/extern \1 $(mpers_PREFIX)\2(\3);/p' $$f \ || exit; \ done >> $@-t mv $@-t $@ @@ -10901,7 +10904,7 @@ %_printer_defs.h: $(mpers_preproc_files) echo '/* Generated by Makefile from $^; do not edit. */' > $@-t for f in $^; do \ - sed -r -n 's/$(mpers_printer_decl_pattern)/.\2 = $(mpers_PREFIX)\2,/p' $$f \ + sed -E -n 's/$(mpers_printer_decl_pattern)/.\2 = $(mpers_PREFIX)\2,/p' $$f \ || exit; \ done >> $@-t mv $@-t $@ diff -Nru strace-6.1/src/mem.c strace-6.2/src/mem.c --- strace-6.1/src/mem.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/mem.c 2022-12-19 09:00:00.000000000 +0100 @@ -65,6 +65,8 @@ if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE) tprint_comment_begin(); + tprint_flags_begin(); + printxvals_ex(flags & MAP_TYPE, "MAP_???", XLAT_STYLE_ABBREV, mmap_flags, NULL); flags &= ~MAP_TYPE; @@ -74,22 +76,26 @@ flags &= ~mask; if (flags) { - tprint_or(); + tprint_flags_or(); printflags_ex(flags, NULL, XLAT_STYLE_ABBREV, mmap_flags, NULL); } if (hugetlb_value) { - tprint_or(); + tprint_flags_or(); + tprint_shift_begin(); PRINT_VAL_U(hugetlb_value >> MAP_HUGE_SHIFT); tprint_shift(); /* * print_xlat_u is not used here because the whole thing * is potentially inside a comment already. */ - tprints("MAP_HUGE_SHIFT"); + tprints_string("MAP_HUGE_SHIFT"); + tprint_shift_end(); } + tprint_flags_end(); + if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE) tprint_comment_end(); } diff -Nru strace-6.1/src/memfd_create.c strace-6.2/src/memfd_create.c --- strace-6.1/src/memfd_create.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/memfd_create.c 2022-12-19 09:00:00.000000000 +0100 @@ -36,22 +36,28 @@ const unsigned int hugetlb_value = flags & mask; flags &= ~mask; + tprint_flags_begin(); + if (flags || !hugetlb_value) printflags_ex(flags, "MFD_???", XLAT_STYLE_ABBREV, memfd_create_flags, NULL); if (hugetlb_value) { if (flags) - tprint_or(); + tprint_flags_or(); + tprint_shift_begin(); PRINT_VAL_U(hugetlb_value >> MFD_HUGE_SHIFT); tprint_shift(); /* * print_xlat_u is not used here because the whole thing * is potentially inside a comment already. */ - tprints("MFD_HUGE_SHIFT"); + tprints_string("MFD_HUGE_SHIFT"); + tprint_shift_end(); } + tprint_flags_end(); + if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE) tprint_comment_end(); diff -Nru strace-6.1/src/mmsghdr.c strace-6.2/src/mmsghdr.c --- strace-6.1/src/mmsghdr.c 2021-11-05 09:00:00.000000000 +0100 +++ strace-6.2/src/mmsghdr.c 2023-02-26 09:00:00.000000000 +0100 @@ -3,7 +3,7 @@ * Copyright (c) 2012-2013 Denys Vlasenko * Copyright (c) 2014 Masatake YAMATO * Copyright (c) 2010-2016 Dmitry V. Levin - * Copyright (c) 2016-2021 The strace developers. + * Copyright (c) 2016-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -138,8 +138,8 @@ fetched = fetch_struct_mmsghdr(tcp, addr, &mmsg); if (!fetched) break; - tprintf(" = %" PRI_klu " buffers in vector %u\n", - (kernel_ulong_t) mmsg.msg_hdr.msg_iovlen, i); + tprintf_string(" = %" PRI_klu " buffers in vector %u\n", + (kernel_ulong_t) mmsg.msg_hdr.msg_iovlen, i); dumpiov_upto(tcp, mmsg.msg_hdr.msg_iovlen, ptr_to_kulong(mmsg.msg_hdr.msg_iov), mmsg.msg_len); @@ -231,7 +231,7 @@ tprint_arg_next(); /* timeout on entrance */ - tprints(*(const char **) get_tcb_priv_data(tcp)); + tprints_string(*(const char **) get_tcb_priv_data(tcp)); } if (syserror(tcp)) return 0; diff -Nru strace-6.1/src/mount.c strace-6.2/src/mount.c --- strace-6.1/src/mount.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/mount.c 2022-12-18 09:00:00.000000000 +0100 @@ -53,13 +53,15 @@ tprint_arg_next(); /* mountflags */ + tprint_flags_begin(); if (old_magic) { print_xlat(MS_MGC_VAL); if (flags) - tprint_or(); + tprint_flags_or(); } if (flags || !old_magic) - printflags64(mount_flags, flags, "MS_???"); + printflags64_in(mount_flags, flags, "MS_???"); + tprint_flags_end(); tprint_arg_next(); /* data */ diff -Nru strace-6.1/src/mpers.sh strace-6.2/src/mpers.sh --- strace-6.1/src/mpers.sh 2021-02-16 09:00:00.000000000 +0100 +++ strace-6.2/src/mpers.sh 2023-02-26 09:00:00.000000000 +0100 @@ -1,7 +1,7 @@ #!/bin/sh -e # # Copyright (c) 2015 Elvira Khabirova -# Copyright (c) 2015-2021 The strace developers. +# Copyright (c) 2015-2023 The strace developers. # All rights reserved. # # SPDX-License-Identifier: LGPL-2.1-or-later @@ -25,7 +25,7 @@ BITS_DIR="mpers-${ARCH_FLAG}" mkdir -p ${BITS_DIR} -set -- $(sed -r -n \ +set -- $(sed -E -n \ 's/^#[[:space:]]*include[[:space:]]+DEF_MPERS_TYPE\(([^)[:space:]]*)\)$/\1/p' \ "${PARSER_FILE}") for m_type; do @@ -47,7 +47,7 @@ sed -i -e '/DEF_MPERS_TYPE/d' "${f_c}" $CC $CFLAGS $CC_ARCH_FLAG "${f_c}" -o "${f_o}" $READELF --wide --debug-dump=info "${f_o}" > "${f_d1}" - sed -r -n ' + sed -E -n ' /^[[:space:]]*<1>/,/^[[:space:]]*<1><[^>]+>: Abbrev Number: 0/!d /^[[:space:]]*<[^>]*><[^>]*>: Abbrev Number: 0/d s/^[[:space:]]*<[[:xdigit:]]+>[[:space:]]+// diff -Nru strace-6.1/src/net.c strace-6.2/src/net.c --- strace-6.1/src/net.c 2022-11-28 09:00:00.000000000 +0100 +++ strace-6.2/src/net.c 2022-12-19 09:00:00.000000000 +0100 @@ -95,14 +95,16 @@ { const char *str = xlookup(socktypes, flags & SOCK_TYPE_MASK); + tprint_flags_begin(); if (str) { print_xlat_ex(flags & SOCK_TYPE_MASK, str, XLAT_STYLE_DEFAULT); flags &= ~SOCK_TYPE_MASK; if (!flags) return; - tprint_or(); + tprint_flags_or(); } - printflags(sock_type_flags, flags, "SOCK_???"); + printflags_in(sock_type_flags, flags, "SOCK_???"); + tprint_flags_end(); } SYS_FUNC(socket) @@ -783,7 +785,7 @@ if (popcount32(&data32, 1) > sizeof(data32) * 8 / 2) { /* show those bits that are NOT in the set */ data32 = ~data32; - tprints("~"); + tprints_string("~"); } /* next_set_bit operates on current_wordsize words */ diff -Nru strace-6.1/src/netlink.c strace-6.2/src/netlink.c --- strace-6.1/src/netlink.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/netlink.c 2023-02-26 09:00:00.000000000 +0100 @@ -1,7 +1,7 @@ /* * Copyright (c) 2016 Fabien Siron * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2022 The strace developers. + * Copyright (c) 2016-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -178,16 +178,20 @@ const uint8_t subsys_id = (uint8_t) (type >> 8); const uint8_t msg_type = (uint8_t) type; + tprint_flags_begin(); + tprint_shift_begin(); printxval(xlat, subsys_id, dflt); - tprint_shift(); PRINT_VAL_U(8); - tprint_or(); + tprint_shift_end(); + + tprint_flags_or(); if (subsys_id < ARRAY_SIZE(nf_nlmsg_types)) printxval(nf_nlmsg_types[subsys_id].xlat, msg_type, nf_nlmsg_types[subsys_id].dflt); else PRINT_VAL_X(msg_type); + tprint_flags_end(); } typedef void (*nlmsg_types_decoder_t)(struct tcb *, const struct xlat *, @@ -345,6 +349,7 @@ case NFT_MSG_GETOBJ: case NFT_MSG_GETOBJ_RESET: case NFT_MSG_GETFLOWTABLE: + case NFT_MSG_GETRULE_RESET: return netlink_get_flags; case NFT_MSG_DELTABLE: case NFT_MSG_DELCHAIN: @@ -447,8 +452,10 @@ } else if (family < ARRAY_SIZE(nlmsg_flags) && nlmsg_flags[family]) table = nlmsg_flags[family](type); + tprint_flags_begin(); printflags_ex(flags, "NLM_F_???", XLAT_STYLE_DEFAULT, netlink_flags, table, NULL); + tprint_flags_end(); } static void diff -Nru strace-6.1/src/nlattr.c strace-6.2/src/nlattr.c --- strace-6.1/src/nlattr.c 2022-10-31 09:00:00.000000000 +0100 +++ strace-6.2/src/nlattr.c 2022-12-20 09:00:00.000000000 +0100 @@ -53,15 +53,17 @@ PRINT_FIELD_U(*nla, nla_len); tprint_struct_next(); tprints_field_name("nla_type"); + tprint_flags_begin(); if (nla->nla_type & NLA_F_NESTED) { print_xlat(NLA_F_NESTED); - tprint_or(); + tprint_flags_or(); } if (nla->nla_type & NLA_F_NET_BYTEORDER) { print_xlat(NLA_F_NET_BYTEORDER); - tprint_or(); + tprint_flags_or(); } printxval(table, nla->nla_type & NLA_TYPE_MASK, dflt); + tprint_flags_end(); tprint_struct_end(); } @@ -418,7 +420,9 @@ data = opts->process_fn(data); if (opts->fn_str) tprints_arg_begin(opts->fn_str); + tprint_flags_begin(); printflags_ex(data, opts->dflt, opts->style, opts->xlat, NULL); + tprint_flags_end(); if (opts->fn_str) tprint_arg_end(); } @@ -507,7 +511,7 @@ if (len < sizeof(num)) \ return false; \ if (!umove_or_printaddr(tcp, addr, &num)) \ - tprintf(fmt, num); \ + tprintf_string(fmt, num); \ return true; \ } diff -Nru strace-6.1/src/numa.c strace-6.2/src/numa.c --- strace-6.1/src/numa.c 2022-11-21 09:00:00.000000000 +0100 +++ strace-6.2/src/numa.c 2022-12-19 09:00:00.000000000 +0100 @@ -95,9 +95,11 @@ if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE) tprint_comment_begin(); - tprints(mode_str); - tprint_or(); + tprint_flags_begin(); + tprints_string(mode_str); + tprint_flags_or(); printflags_ex(flags, NULL, XLAT_STYLE_ABBREV, mpol_mode_flags, NULL); + tprint_flags_end(); if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE) tprint_comment_end(); diff -Nru strace-6.1/src/perf.c strace-6.2/src/perf.c --- strace-6.1/src/perf.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/perf.c 2022-12-17 09:00:00.000000000 +0100 @@ -157,14 +157,18 @@ */ tprint_struct_next(); tprints_field_name("config"); + tprint_flags_begin(); if (attr->config >> 32) { + tprint_shift_begin(); PRINT_VAL_X(attr->config >> 32); tprint_shift(); PRINT_VAL_U(32); - tprint_or(); + tprint_shift_end(); + tprint_flags_or(); } printxval(perf_hw_id, attr->config & PERF_HW_EVENT_MASK, "PERF_COUNT_HW_???"); + tprint_flags_end(); break; case PERF_TYPE_SOFTWARE: tprint_struct_next(); @@ -190,31 +194,43 @@ */ tprint_struct_next(); tprints_field_name("config"); + tprint_flags_begin(); if (attr->config >> 32){ + tprint_shift_begin(); PRINT_VAL_X(attr->config >> 32); tprint_shift(); PRINT_VAL_U(32); - tprint_or(); + tprint_shift_end(); + tprint_flags_or(); } if ((attr->config & PERF_HW_EVENT_MASK) >> 24) { + tprint_shift_begin(); PRINT_VAL_X((attr->config & PERF_HW_EVENT_MASK) >> 24); tprint_shift(); PRINT_VAL_U(24); - tprint_or(); + tprint_shift_end(); + tprint_flags_or(); } + tprint_shift_begin(); printxval(perf_hw_cache_op_result_id, (attr->config >> 16) & 0xFF, "PERF_COUNT_HW_CACHE_RESULT_???"); tprint_shift(); PRINT_VAL_U(16); - tprint_or(); + tprint_shift_end(); + + tprint_flags_or(); + tprint_shift_begin(); printxval(perf_hw_cache_op_id, (attr->config >> 8) & 0xFF, "PERF_COUNT_HW_CACHE_OP_???"); tprint_shift(); PRINT_VAL_U(8); - tprint_or(); + tprint_shift_end(); + + tprint_flags_or(); printxval(perf_hw_cache_id, attr->config & 0xFF, "PERF_COUNT_HW_CACHE_???"); + tprint_flags_end(); break; case PERF_TYPE_RAW: /* diff -Nru strace-6.1/src/personality.c strace-6.2/src/personality.c --- strace-6.1/src/personality.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/personality.c 2022-12-18 09:00:00.000000000 +0100 @@ -20,12 +20,14 @@ if (0xffffffff == pers) { PRINT_VAL_X(0xffffffff); } else { + tprint_flags_begin(); printxval(personality_types, pers & PER_MASK, "PER_???"); pers &= ~PER_MASK; if (pers) { - tprint_or(); - printflags(personality_flags, pers, NULL); + tprint_flags_or(); + printflags_in(personality_flags, pers, NULL); } + tprint_flags_end(); } return 0; } diff -Nru strace-6.1/src/prctl.c strace-6.2/src/prctl.c --- strace-6.1/src/prctl.c 2022-08-11 14:34:17.000000000 +0200 +++ strace-6.2/src/prctl.c 2022-12-19 09:00:00.000000000 +0100 @@ -286,7 +286,7 @@ case PR_SVE_SET_VL: if (entering(tcp)) { tprint_arg_next(); - tprints(sprint_sve_val(arg2, false)); + tprints_string(sprint_sve_val(arg2, false)); return 0; } ATTRIBUTE_FALLTHROUGH; @@ -327,7 +327,7 @@ case PR_SET_TAGGED_ADDR_CTRL: tprint_arg_next(); - tprints(sprint_tagged_addr_val(arg2, false)); + tprints_string(sprint_tagged_addr_val(arg2, false)); print_prctl_args(tcp, 2); return RVAL_DECODED; @@ -345,7 +345,7 @@ case PR_SME_SET_VL: if (entering(tcp)) { tprint_arg_next(); - tprints(sprint_sme_val(arg2, false)); + tprints_string(sprint_sme_val(arg2, false)); return 0; } ATTRIBUTE_FALLTHROUGH; diff -Nru strace-6.1/src/print_fields.h strace-6.2/src/print_fields.h --- strace-6.1/src/print_fields.h 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/print_fields.h 2022-12-31 09:00:00.000000000 +0100 @@ -13,13 +13,13 @@ # ifdef IN_STRACE -# define STRACE_PRINTS(s_) tprints(s_) +# define STRACE_PRINTS(s_) tprints_string(s_) /* * The printf-like function to use in header files * shared between strace and its tests. */ -# define STRACE_PRINTF tprintf +# define STRACE_PRINTF tprintf_string # else /* !IN_STRACE */ @@ -97,12 +97,17 @@ } static inline void -tprint_array_index_end(void) +tprint_array_index_equal(void) { STRACE_PRINTS("]="); } static inline void +tprint_array_index_end(void) +{ +} + +static inline void tprint_arg_next(void) { STRACE_PRINTS(", "); @@ -205,18 +210,38 @@ } static inline void +tprint_shift_begin(void) +{ +} + +static inline void +tprint_shift_end(void) +{ +} + +static inline void tprint_shift(void) { STRACE_PRINTS("<<"); } static inline void -tprint_or(void) +tprint_flags_begin(void) +{ +} + +static inline void +tprint_flags_or(void) { STRACE_PRINTS("|"); } static inline void +tprint_flags_end(void) +{ +} + +static inline void tprint_plus(void) { STRACE_PRINTS("+"); @@ -247,17 +272,52 @@ } static inline void -tprints_arg_name(const char *name) +tprints_arg_name_begin(const char *name) { STRACE_PRINTF("%s=", name); } static inline void +tprint_arg_name_end(void) +{ +} + +static inline void tprints_arg_begin(const char *name) { STRACE_PRINTF("%s(", name); } +static inline void +tprint_sysret_begin(void) +{ + STRACE_PRINTS("="); +} + +static inline void +tprints_sysret_next(const char *name) +{ + tprint_space(); +} + +static inline void +tprints_sysret_string(const char *name, const char *str) +{ + tprints_sysret_next(name); + STRACE_PRINTF("(%s)", str); +} + +static inline void +tprint_sysret_pseudo_rval(void) +{ + STRACE_PRINTS("?"); +} + +static inline void +tprint_sysret_end(void) +{ +} + # define PRINT_VAL_D(val_) \ STRACE_PRINTF("%lld", sign_extend_unsigned_to_ll(val_)) @@ -393,11 +453,13 @@ # define PRINT_FIELD_FLAGS_VERBOSE(where_, field_, xlat_, dflt_) \ do { \ tprints_field_name(#field_); \ + tprint_flags_begin(); \ printflags_ex(zero_extend_signed_to_ull((where_).field_), \ (dflt_), \ xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW \ ? XLAT_STYLE_RAW : XLAT_STYLE_VERBOSE, \ - (xlat_), NULL); \ + (xlat_), NULL); \ + tprint_flags_end(); \ } while (0) # define PRINT_FIELD_XVAL(where_, field_, xlat_, dflt_) \ @@ -645,8 +707,8 @@ xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE) \ tprint_comment_begin(); \ if (nr_prefix_) \ - tprints(nr_prefix_); \ - tprints(name); \ + tprints_string(nr_prefix_); \ + tprints_string(name); \ if (!nr_prefix_ || \ xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE) \ tprint_comment_end(); \ diff -Nru strace-6.1/src/print_instruction_pointer.c strace-6.2/src/print_instruction_pointer.c --- strace-6.1/src/print_instruction_pointer.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/print_instruction_pointer.c 2022-12-20 09:00:00.000000000 +0100 @@ -14,13 +14,13 @@ tprint_attribute_begin(); if (get_instruction_pointer(tcp, &ip)) { - tprintf(current_wordsize == 4 - ? "%08" PRI_klx - : "%016" PRI_klx, ip); + tprintf_string(current_wordsize == 4 + ? "%08" PRI_klx + : "%016" PRI_klx, ip); } else { - tprints(current_wordsize == 4 - ? "????????" - : "????????????????"); + tprints_string(current_wordsize == 4 + ? "????????" + : "????????????????"); } tprint_attribute_end(); tprint_space(); diff -Nru strace-6.1/src/print_mac.c strace-6.2/src/print_mac.c --- strace-6.1/src/print_mac.c 2022-03-26 09:00:00.000000000 +0100 +++ strace-6.2/src/print_mac.c 2022-12-19 09:00:00.000000000 +0100 @@ -114,7 +114,7 @@ void print_mac_addr(const char *prefix, const uint8_t addr[], size_t size) { - tprints(prefix); + tprints_string(prefix); if (xlat_verbose(xlat_verbosity) != XLAT_STYLE_ABBREV || size > MAX_ADDR_LEN) print_quoted_string((const char *) addr, size, @@ -123,7 +123,7 @@ || size > MAX_ADDR_LEN) return; (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE - ? tprints_comment : tprints)(sprint_mac_addr(addr, size)); + ? tprints_comment : tprints_string)(sprint_mac_addr(addr, size)); } static const char * @@ -139,7 +139,7 @@ print_hwaddr(const char *prefix, const uint8_t addr[], size_t size, uint32_t devtype) { - tprints(prefix); + tprints_string(prefix); if (xlat_verbose(xlat_verbosity) != XLAT_STYLE_ABBREV || size > MAX_ADDR_LEN) print_quoted_string((const char *) addr, size, @@ -148,6 +148,6 @@ || size > MAX_ADDR_LEN) return; (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE - ? tprints_comment : tprints)(sprint_hwaddr(addr, size, + ? tprints_comment : tprints_string)(sprint_hwaddr(addr, size, devtype)); } diff -Nru strace-6.1/src/printmode.c strace-6.2/src/printmode.c --- strace-6.1/src/printmode.c 2021-07-04 10:00:00.000000000 +0200 +++ strace-6.2/src/printmode.c 2023-02-26 09:00:00.000000000 +0100 @@ -4,7 +4,7 @@ * Copyright (c) 1993-1996 Rick Sladkey * Copyright (c) 1996-1999 Wichert Akkerman * Copyright (c) 2012 Denys Vlasenko - * Copyright (c) 2012-2021 The strace developers. + * Copyright (c) 2012-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -32,7 +32,7 @@ return; (xlat_verbose(xlat_verbosity) == XLAT_STYLE_ABBREV - ? tprintf : tprintf_comment)("%s%s%s%s%s%#03o", + ? tprintf_string : tprintf_comment)("%s%s%s%s%s%#03o", ifmt, ifmt[0] ? "|" : "", (mode & S_ISUID) ? "S_ISUID|" : "", (mode & S_ISGID) ? "S_ISGID|" : "", diff -Nru strace-6.1/src/printsiginfo.c strace-6.2/src/printsiginfo.c --- strace-6.1/src/printsiginfo.c 2022-10-02 10:00:00.000000000 +0200 +++ strace-6.2/src/printsiginfo.c 2023-02-26 09:00:00.000000000 +0100 @@ -7,7 +7,7 @@ * Copyright (c) 2013 Denys Vlasenko * Copyright (c) 2011-2015 Dmitry V. Levin * Copyright (c) 2015 Elvira Khabirova - * Copyright (c) 2015-2022 The strace developers. + * Copyright (c) 2015-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -168,7 +168,7 @@ case SIGFPE: tprint_struct_next(); PRINT_FIELD_PTR(*sip, si_addr); -#ifdef ALPHA +#if defined ALPHA && defined HAVE_SIGINFO_T_SI_TRAPNO tprint_struct_next(); PRINT_FIELD_XVAL_D(*sip, si_trapno, alpha_trap_codes, "GEN_???"); @@ -214,15 +214,16 @@ case SIGTRAP: tprint_struct_next(); PRINT_FIELD_PTR(*sip, si_addr); -#if defined(ALPHA) || defined(HAVE_SIGINFO_T_SI_PERF_DATA) +#if (defined ALPHA && defined HAVE_SIGINFO_T_SI_TRAPNO) \ + || defined HAVE_SIGINFO_T_SI_PERF_DATA switch (sip->si_code) { -# ifdef ALPHA +# if defined ALPHA && defined HAVE_SIGINFO_T_SI_TRAPNO case TRAP_UNK: tprint_struct_next(); PRINT_FIELD_XVAL_D(*sip, si_trapno, alpha_trap_codes, "GEN_???"); break; -# endif /* ALPHA */ +# endif /* ALPHA && HAVE_SIGINFO_T_SI_TRAPNO */ # ifdef HAVE_SIGINFO_T_SI_PERF_DATA case TRAP_PERF: tprint_struct_next(); diff -Nru strace-6.1/src/print_syscall_number.c strace-6.2/src/print_syscall_number.c --- strace-6.1/src/print_syscall_number.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/print_syscall_number.c 2022-12-20 09:00:00.000000000 +0100 @@ -12,7 +12,7 @@ { tprint_attribute_begin(); if (tcp->true_scno != (kernel_ulong_t) -1) - tprintf("%4" PRI_klu, tcp->true_scno); + tprintf_string("%4" PRI_klu, tcp->true_scno); else tprint_unavailable(); tprint_attribute_end(); diff -Nru strace-6.1/src/print_timespec.h strace-6.2/src/print_timespec.h --- strace-6.1/src/print_timespec.h 2021-02-28 09:00:00.000000000 +0100 +++ strace-6.2/src/print_timespec.h 2023-02-26 09:00:00.000000000 +0100 @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2016-2021 The strace developers. + * Copyright (c) 2016-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -133,7 +133,7 @@ break; (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE - ? tprints_comment : tprints)(t->TIMESPEC_NSEC == UTIME_NOW + ? tprints_comment : tprints_string)(t->TIMESPEC_NSEC == UTIME_NOW ? "UTIME_NOW" : "UTIME_OMIT"); break; default: diff -Nru strace-6.1/src/print_utils.h strace-6.2/src/print_utils.h --- strace-6.1/src/print_utils.h 2021-11-08 09:00:00.000000000 +0100 +++ strace-6.2/src/print_utils.h 2022-12-19 09:00:00.000000000 +0100 @@ -105,7 +105,7 @@ char buf[SPRINT_CHAR_BUFSZ]; \ \ sprint_char(buf, (c_), (flags_) | SCF_NUL); \ - tprints(buf); \ + tprints_string(buf); \ } while (0) #endif /* STRACE_PRINT_UTILS_H */ diff -Nru strace-6.1/src/ptrace.c strace-6.2/src/ptrace.c --- strace-6.1/src/ptrace.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/ptrace.c 2022-12-19 09:00:00.000000000 +0100 @@ -73,7 +73,7 @@ if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE) tprint_comment_begin(); - tprints(str); + tprints_string(str); if (base_addr != addr) { tprint_plus(); PRINT_VAL_U(addr - (kernel_ulong_t) base_addr); diff -Nru strace-6.1/src/resource.c strace-6.2/src/resource.c --- strace-6.1/src/resource.c 2021-03-14 09:00:00.000000000 +0100 +++ strace-6.2/src/resource.c 2023-02-26 09:00:00.000000000 +0100 @@ -3,7 +3,7 @@ * Copyright (c) 1993 Branko Lankester * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey * Copyright (c) 1996-1999 Wichert Akkerman - * Copyright (c) 1999-2021 The strace developers. + * Copyright (c) 1999-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -36,7 +36,7 @@ return; (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE - ? tprints_comment : tprints)(str); + ? tprints_comment : tprints_string)(str); } static void @@ -78,7 +78,7 @@ return; (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE - ? tprints_comment : tprints)(str); + ? tprints_comment : tprints_string)(str); } static void diff -Nru strace-6.1/src/rtnl_link.c strace-6.2/src/rtnl_link.c --- strace-6.1/src/rtnl_link.c 2022-12-11 09:00:00.000000000 +0100 +++ strace-6.2/src/rtnl_link.c 2023-02-26 09:00:00.000000000 +0100 @@ -1,7 +1,7 @@ /* * Copyright (c) 2016 Fabien Siron * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2016-2022 The strace developers. + * Copyright (c) 2016-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -211,6 +211,7 @@ [IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT] = decode_nla_u32, [IFLA_BRPORT_MCAST_EHT_HOSTS_CNT] = decode_nla_u32, [IFLA_BRPORT_LOCKED] = decode_nla_u8, + [IFLA_BRPORT_MAB] = decode_nla_u8, }; static bool @@ -1688,6 +1689,7 @@ [IFLA_TSO_MAX_SIZE] = decode_nla_u32, [IFLA_TSO_MAX_SEGS] = decode_nla_u32, [IFLA_ALLMULTI] = decode_nla_u32, + [IFLA_DEVLINK_PORT] = decode_nla_u32, }; DECL_NETLINK_ROUTE_DECODER(decode_ifinfomsg) diff -Nru strace-6.1/src/s390.c strace-6.2/src/s390.c --- strace-6.1/src/s390.c 2022-11-25 09:00:00.000000000 +0100 +++ strace-6.2/src/s390.c 2022-12-20 09:00:00.000000000 +0100 @@ -510,7 +510,7 @@ CHECK_SIZE_EX(hdr, last_decoded, size, "machine structure"); - tprints("/* machine */ "); + tprints_string("/* machine */ "); tprint_struct_begin(); if (!abbrev(tcp)) { if (hdr->infmflg1) { /* Reserved */ @@ -620,7 +620,7 @@ *mt = !!(hdr->infpflg1 & 0x80); - tprints("/* partition */ "); + tprints_string("/* partition */ "); tprint_struct_begin(); PRINT_FIELD_0X(*hdr, infpflg1); if (!abbrev(tcp) && hdr->infpflg1) @@ -786,12 +786,12 @@ continue; if (cont) { - tprints(", "); + tprints_string(", "); } else { tprint_comment_begin(); cont = true; } - tprintf("%u: %s", i, func_descs[i]); + tprintf_string("%u: %s", i, func_descs[i]); } if (cont) @@ -806,7 +806,7 @@ CHECK_SIZE_EX(hdr, last_decoded, size, "hypervisor %d structure", num); - tprintf("/* hypervisor %d */ ", num); + tprintf_string("/* hypervisor %d */ ", num); tprint_struct_begin(); PRINT_FIELD_0X(*hdr, infyflg1); if (!abbrev(tcp) && hdr->infyflg1) @@ -922,7 +922,7 @@ { CHECK_SIZE(hdr, size, "guest %d structure", num); - tprintf("/* guest %d */ ", num); + tprintf_string("/* guest %d */ ", num); tprint_struct_begin(); PRINT_FIELD_0X(*hdr, infgflg1); if (!abbrev(tcp) && hdr->infgflg1) @@ -1132,7 +1132,7 @@ tprint_struct_begin(); /* Header */ - tprints("/* header */ "); + tprints_string("/* header */ "); tprint_struct_begin(); PRINT_FIELD_0X(*hdr, infhflg1); @@ -1349,7 +1349,7 @@ /* Since it is 64-bit even on 31-bit s390... */ if (sizeof(addr) > current_klongsize && addr >= (1ULL << (current_klongsize * 8))) { - tprintf("%#" PRIx64, addr); + tprintf_string("%#" PRIx64, addr); return; } diff -Nru strace-6.1/src/sched.c strace-6.2/src/sched.c --- strace-6.1/src/sched.c 2021-03-15 09:00:00.000000000 +0100 +++ strace-6.2/src/sched.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Copyright (c) 2004 Ulrich Drepper * Copyright (c) 2005 Roland McGrath * Copyright (c) 2012-2015 Dmitry V. Levin - * Copyright (c) 2014-2021 The strace developers. + * Copyright (c) 2014-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -235,10 +235,16 @@ * as on other architectures. For more details see * https://lists.strace.io/pipermail/strace-devel/2017-March/006085.html */ - if (syserror(tcp)) + if (syserror(tcp)) { + tprint_flags_begin(); print_abnormal_hi(tcp->u_arg[2]); + PRINT_VAL_U(size); + tprint_flags_end(); + } else #endif - PRINT_VAL_U(size); + { + PRINT_VAL_U(size); + } tprint_arg_next(); /* flags */ diff -Nru strace-6.1/src/scsi.c strace-6.2/src/scsi.c --- strace-6.1/src/scsi.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/scsi.c 2022-12-17 09:00:00.000000000 +0100 @@ -107,14 +107,16 @@ tprint_arg_next(); if (!umove_or_printaddr(tcp, arg, &val)) { tprint_indirect_begin(); + tprint_flags_begin(); if (val & SG_SCSI_RESET_NO_ESCALATE) { printxval(sg_scsi_reset, SG_SCSI_RESET_NO_ESCALATE, 0); - tprint_or(); + tprint_flags_or(); } printxval(sg_scsi_reset, val & ~SG_SCSI_RESET_NO_ESCALATE, "SG_SCSI_RESET_???"); + tprint_flags_end(); tprint_indirect_end(); } diff -Nru strace-6.1/src/secontext.c strace-6.2/src/secontext.c --- strace-6.1/src/secontext.c 2022-11-27 09:00:00.000000000 +0100 +++ strace-6.2/src/secontext.c 2022-12-19 09:00:00.000000000 +0100 @@ -227,7 +227,7 @@ ssize_t exp_len = parse_secontext(expected, &exp_str); if (ctx_len != exp_len || strncmp(ctx_str, exp_str, ctx_len)) { - tprints("!!"); + tprints_string("!!"); print_quoted_string_ex(exp_str, exp_len, style, "[]!"); } diff -Nru strace-6.1/src/sg_io_v3.c strace-6.2/src/sg_io_v3.c --- strace-6.1/src/sg_io_v3.c 2021-08-24 19:01:21.000000000 +0200 +++ strace-6.2/src/sg_io_v3.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,6 +2,7 @@ * Copyright (c) 2007 Vladimir Nadvornik * Copyright (c) 2007-2021 Dmitry V. Levin * Copyright (c) 2015 Bart Van Assche + * Copyright (c) 2021-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -55,7 +56,7 @@ tprint_struct_begin(); tprints_field_name("interface_id"); - tprints("'S'"); + tprints_string("'S'"); tprint_struct_next(); if (umoven_or_printaddr(tcp, arg + skip_iid, sizeof(sg_io) - skip_iid, &sg_io.dxfer_direction)) { @@ -168,7 +169,7 @@ { tprint_struct_begin(); tprints_field_name("interface_id"); - tprints("'S'"); + tprints_string("'S'"); tprint_struct_next(); tprint_more_data_follows(); tprint_struct_end(); diff -Nru strace-6.1/src/sg_io_v4.c strace-6.2/src/sg_io_v4.c --- strace-6.1/src/sg_io_v4.c 2021-08-24 19:01:21.000000000 +0200 +++ strace-6.2/src/sg_io_v4.c 2023-02-26 09:00:00.000000000 +0100 @@ -1,6 +1,7 @@ /* * Copyright (c) 2015 Bart Van Assche * Copyright (c) 2015-2021 Dmitry V. Levin + * Copyright (c) 2021-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -38,7 +39,7 @@ tprint_struct_begin(); tprints_field_name("guard"); - tprints("'Q'"); + tprints_string("'Q'"); tprint_struct_next(); if (umoven_or_printaddr(tcp, arg + skip_iid, sizeof(sg_io) - skip_iid, &sg_io.protocol)) { diff -Nru strace-6.1/src/signal.c strace-6.2/src/signal.c --- strace-6.1/src/signal.c 2021-11-05 09:00:00.000000000 +0100 +++ strace-6.2/src/signal.c 2023-02-26 09:00:00.000000000 +0100 @@ -6,7 +6,7 @@ * Copyright (c) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation * Linux for s390 port by D.J. Barrow * - * Copyright (c) 1999-2021 The strace developers. + * Copyright (c) 1999-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -209,7 +209,7 @@ sprintsigmask_n((prefix), &(mask), sizeof(mask)) #define tprintsigmask_val(mask) \ - tprints(sprintsigmask_n("", &(mask), sizeof(mask))) + tprints_string(sprintsigmask_n("", &(mask), sizeof(mask))) static const char * sprint_old_sigmask_val(const char *const prefix, const unsigned long mask) @@ -229,7 +229,7 @@ static void tprint_old_sigmask_val(const unsigned long mask) { - tprints(sprint_old_sigmask_val("", mask)); + tprints_string(sprint_old_sigmask_val("", mask)); } void @@ -242,7 +242,7 @@ if (!str || xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW) return; (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE - ? tprints_comment : tprints)(str); + ? tprints_comment : tprints_string)(str); } static void @@ -260,7 +260,7 @@ int mask[NSIG_BYTES / sizeof(int)] = {}; if (umoven_or_printaddr(tcp, addr, len, mask)) return; - tprints(sprintsigmask_n("", mask, len)); + tprints_string(sprintsigmask_n("", mask, len)); } void @@ -362,7 +362,7 @@ int signo = tcp->u_arg[0]; #if defined SPARC || defined SPARC64 if (signo < 0) { - tprints("-"); + tprints_string("-"); signo = -signo; } #endif @@ -781,7 +781,7 @@ tprint_arg_next(); /* timeout */ - tprints(get_tcb_priv_data(tcp)); + tprints_string(get_tcb_priv_data(tcp)); tprint_arg_next(); /* sigsetsize */ @@ -810,7 +810,7 @@ SYS_FUNC(restart_syscall) { - tprintf("<... resuming interrupted %s ...>", + tprintf_string("<... resuming interrupted %s ...>", tcp->s_prev_ent ? tcp->s_prev_ent->sys_name : "system call"); return RVAL_DECODED; diff -Nru strace-6.1/src/sigreturn.c strace-6.2/src/sigreturn.c --- strace-6.1/src/sigreturn.c 2021-09-04 10:00:00.000000000 +0200 +++ strace-6.2/src/sigreturn.c 2023-02-26 09:00:00.000000000 +0100 @@ -1,5 +1,6 @@ /* * Copyright (c) 2015-2021 Dmitry V. Levin + * Copyright (c) 2021-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -20,7 +21,7 @@ { tprint_struct_begin(); tprints_field_name("mask"); - tprints(sprintsigmask_n("", addr, size)); + tprints_string(sprintsigmask_n("", addr, size)); tprint_struct_end(); } diff -Nru strace-6.1/src/sockaddr.c strace-6.2/src/sockaddr.c --- strace-6.1/src/sockaddr.c 2022-11-23 09:00:00.000000000 +0100 +++ strace-6.2/src/sockaddr.c 2022-12-20 09:00:00.000000000 +0100 @@ -119,7 +119,7 @@ QUOTE_0_TERMINATED); selinux_printfilecon(tcp, sa_un->sun_path); } else { - tprints("@"); + tprints_string("@"); print_quoted_string(sa_un->sun_path + 1, path_len - 1, 0); } } @@ -181,7 +181,7 @@ if (var_name && (xlat_verbose(xlat_verbosity) == XLAT_STYLE_ABBREV)) { tprint_arg_next(); - tprintf("&%s", var_name); + tprintf_string("&%s", var_name); } tprint_arg_end(); @@ -402,7 +402,7 @@ const char *addr_str = ax25_addr2str(addr); - (xs == XLAT_STYLE_VERBOSE ? tprints_comment : tprints)(addr_str); + (xs == XLAT_STYLE_VERBOSE ? tprints_comment : tprints_string)(addr_str); } static bool @@ -617,7 +617,7 @@ tprint_comment_begin(); if (psm_name) { - tprints(psm_name); + tprints_string(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); @@ -628,7 +628,7 @@ tprint_plus(); PRINT_VAL_U(psm_he - L2CAP_PSM_DYN_START); } else { - tprints("L2CAP_PSM_???"); + tprints_string("L2CAP_PSM_???"); } if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE || !psm_str) @@ -657,13 +657,13 @@ tprint_comment_begin(); if (cid_name) { - tprints(cid_name); + tprints_string(cid_name); } else if (cid_he >= L2CAP_CID_DYN_START) { print_xlat(L2CAP_CID_DYN_START); tprint_plus(); PRINT_VAL_U(cid_he - L2CAP_CID_DYN_START); } else { - tprints("L2CAP_CID_???"); + tprints_string("L2CAP_CID_???"); } if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE || !cid_str) diff -Nru strace-6.1/src/sock.c strace-6.2/src/sock.c --- strace-6.1/src/sock.c 2021-04-28 10:00:00.000000000 +0200 +++ strace-6.2/src/sock.c 2023-02-26 09:00:00.000000000 +0100 @@ -1,6 +1,6 @@ /* * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey - * Copyright (c) 1996-2021 The strace developers. + * Copyright (c) 1996-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -130,7 +130,7 @@ if (len > 0 && n * sizeof(struct_ifreq) == (unsigned int) len) { tprint_comment_begin(); PRINT_VAL_U(n); - tprints(" * sizeof(struct ifreq)"); + tprints_string(" * sizeof(struct ifreq)"); tprint_comment_end(); } diff -Nru strace-6.1/src/socketutils.c strace-6.2/src/socketutils.c --- strace-6.1/src/socketutils.c 2021-12-03 18:32:15.000000000 +0100 +++ strace-6.2/src/socketutils.c 2023-02-21 09:00:00.000000000 +0100 @@ -629,7 +629,7 @@ static struct dyxlat *dyxlat; if (!dyxlat) { - dyxlat = dyxlat_alloc(32); + dyxlat = dyxlat_alloc(32, XT_NORMAL); int fd = socket(AF_NETLINK, SOCK_RAW, NETLINK_GENERIC); if (fd < 0) diff -Nru strace-6.1/src/statx.c strace-6.2/src/statx.c --- strace-6.1/src/statx.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/statx.c 2022-12-18 09:00:00.000000000 +0100 @@ -40,13 +40,15 @@ /* flags */ unsigned int flags = tcp->u_arg[2]; - printflags(at_statx_sync_types, flags & AT_STATX_SYNC_TYPE, - NULL); + tprint_flags_begin(); + printflags_in(at_statx_sync_types, flags & AT_STATX_SYNC_TYPE, + NULL); flags &= ~AT_STATX_SYNC_TYPE; if (flags) { - tprint_or(); - printflags(at_flags, flags, NULL); + tprint_flags_or(); + printflags_in(at_flags, flags, NULL); } + tprint_flags_end(); tprint_arg_next(); /* mask */ diff -Nru strace-6.1/src/strace.c strace-6.2/src/strace.c --- strace-6.1/src/strace.c 2022-11-27 09:00:00.000000000 +0100 +++ strace-6.2/src/strace.c 2023-02-26 09:00:00.000000000 +0100 @@ -3,7 +3,7 @@ * Copyright (c) 1993 Branko Lankester * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey * Copyright (c) 1996-1999 Wichert Akkerman - * Copyright (c) 1999-2022 The strace developers. + * Copyright (c) 1999-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -83,8 +83,8 @@ int Tflag_scale = 1000; int Tflag_width = 6; bool iflag; -bool nflag; bool count_wallclock; +static bool nflag; static int tflag_scale = 1000000000; static unsigned tflag_width = 0; static const char *tflag_format = NULL; @@ -574,8 +574,8 @@ */ if (current_tcp && current_tcp->curcol != 0) { tprint_space(); - tprintf("", - tcp->pid, ptrace_op_str(op), strerror(err)); + tprintf_string("", + tcp->pid, ptrace_op_str(op), strerror(err)); tprint_newline(); line_ended(); } @@ -714,7 +714,7 @@ } void -tprintf(const char *fmt, ...) +tprintf_string(const char *fmt, ...) { va_list args; va_start(args, fmt); @@ -727,7 +727,7 @@ #endif void -tprints(const char *str) +tprints_string(const char *str) { if (current_tcp) { int n = fputs_unlocked(str, current_tcp->outf); @@ -743,8 +743,11 @@ void tprints_comment(const char *const str) { - if (str && *str) - tprintf(" /* %s */", str); + if (str && *str) { + tprint_comment_begin(); + tprints_string(str); + tprint_comment_end(); + } } void @@ -812,17 +815,19 @@ printing_tcp = tcp; if (printing_tcp) { - set_current_tcp(printing_tcp); - if (!tcp->staged_output_data && printing_tcp->curcol != 0 && - (!output_separately || printing_tcp == tcp)) { + if (printing_tcp->curcol != 0 && + (printing_tcp == tcp || + (!output_separately && + !printing_tcp->staged_output_data))) { /* * case 1: we have a shared log (i.e. not -ff), and last line * wasn't finished (same or different tcb, doesn't matter). * case 2: split log, we are the same tcb, but our last line * didn't finish ("SIGKILL nuked us after syscall entry" etc). */ + set_current_tcp(printing_tcp); tprint_space(); - tprints(""); + tprints_string(""); tprint_newline(); printing_tcp->curcol = 0; } @@ -838,12 +843,12 @@ if (print_pid_pfx) { if (len) - tprintf("%u", tcp->pid); + tprintf_string("%u", tcp->pid); else - tprintf("%-5u", tcp->pid); + tprintf_string("%-5u", tcp->pid); } else { tprint_attribute_begin(); - tprintf("pid %5u", tcp->pid); + tprintf_string("pid %5u", tcp->pid); } print_comm_str(tcp->comm, len); @@ -868,10 +873,10 @@ else xsprintf(str, "%lld", (long long) local); if (tflag_width) - tprintf("%s.%0*ld ", str, tflag_width, - (long) ts.tv_nsec / tflag_scale); + tprintf_string("%s.%0*ld ", str, tflag_width, + (long) ts.tv_nsec / tflag_scale); else - tprintf("%s ", str); + tprintf_string("%s ", str); } if (rflag) { @@ -886,12 +891,13 @@ ts_sub(&dts, &ts, &ots); ots = ts; - tprintf("%s%6ld", tflag_format ? "(+" : "", (long) dts.tv_sec); + tprintf_string("%s%6ld", + tflag_format ? "(+" : "", (long) dts.tv_sec); if (rflag_width) { - tprintf(".%0*ld", - rflag_width, (long) dts.tv_nsec / rflag_scale); + tprintf_string(".%0*ld", rflag_width, + (long) dts.tv_nsec / rflag_scale); } - tprints(tflag_format ? ") " : " "); + tprints_string(tflag_format ? ") " : " "); } if (nflag) @@ -905,7 +911,7 @@ tabto(void) { if (current_tcp->curcol < acolumn) - tprints(acolumn_spaces + current_tcp->curcol); + tprints_string(acolumn_spaces + current_tcp->curcol); } /* Should be only called directly *after successful attach* to a tracee. @@ -3142,8 +3148,8 @@ if (cflag != CFLAG_ONLY_STATS) { if (!is_number_in_set(QUIET_THREAD_EXECVE, quiet_set)) { printleader(tcp); - tprintf("+++ superseded by execve in pid %lu +++", - old_pid); + tprintf_string("+++ superseded by execve in pid %lu +++", + old_pid); tprint_newline(); line_ended(); } @@ -3181,9 +3187,9 @@ if (cflag != CFLAG_ONLY_STATS && is_number_in_set(WTERMSIG(status), signal_set)) { printleader(tcp); - tprintf("+++ killed by %s %s+++", - sprintsigname(WTERMSIG(status)), - WCOREDUMP(status) ? "(core dumped) " : ""); + tprintf_string("+++ killed by %s %s+++", + sprintsigname(WTERMSIG(status)), + WCOREDUMP(status) ? "(core dumped) " : ""); tprint_newline(); line_ended(); } @@ -3200,7 +3206,7 @@ if (cflag != CFLAG_ONLY_STATS && !is_number_in_set(QUIET_EXIT, quiet_set)) { printleader(tcp); - tprintf("+++ exited with %d +++", WEXITSTATUS(status)); + tprintf_string("+++ exited with %d +++", WEXITSTATUS(status)); tprint_newline(); line_ended(); } @@ -3214,11 +3220,11 @@ && is_number_in_set(sig, signal_set)) { printleader(tcp); if (si) { - tprintf("--- %s ", sprintsigname(sig)); + tprintf_string("--- %s ", sprintsigname(sig)); printsiginfo(tcp, si); - tprints(" ---"); + tprints_string(" ---"); } else - tprintf("--- stopped by %s ---", sprintsigname(sig)); + tprintf_string("--- stopped by %s ---", sprintsigname(sig)); tprint_newline(); line_ended(); @@ -3264,10 +3270,10 @@ } if (!output_separately && printing_tcp && printing_tcp != tcp - && printing_tcp->curcol != 0) { + && printing_tcp->curcol != 0 && !printing_tcp->staged_output_data) { set_current_tcp(printing_tcp); tprint_space(); - tprints(""); + tprints_string(""); tprint_newline(); flush_tcp_output(printing_tcp); printing_tcp->curcol = 0; @@ -3282,13 +3288,15 @@ * on exiting syscall which is not going to happen. */ tprint_space(); - tprints(""); + tprints_string(""); } - printing_tcp = tcp; - tprints(") "); + tprints_string(") "); tabto(); - tprints("= ?"); + tprint_sysret_begin(); + tprints_sysret_next("retval"); + tprint_sysret_pseudo_rval(); + tprint_sysret_end(); tprint_newline(); if (!is_complete_set(status_set, NUMBER_OF_STATUSES)) { bool publish = is_number_in_set(STATUS_UNFINISHED, status_set); diff -Nru strace-6.1/src/swapon.c strace-6.2/src/swapon.c --- strace-6.1/src/swapon.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/swapon.c 2022-12-18 09:00:00.000000000 +0100 @@ -22,11 +22,13 @@ tprint_arg_next(); /* swapflags */ + tprint_flags_begin(); if (flags) { - printflags(swap_flags, flags, "SWAP_FLAG_???"); - tprint_or(); + printflags_in(swap_flags, flags, "SWAP_FLAG_???"); + tprint_flags_or(); } PRINT_VAL_U(prio); + tprint_flags_end(); return RVAL_DECODED; } diff -Nru strace-6.1/src/syscall.c strace-6.2/src/syscall.c --- strace-6.1/src/syscall.c 2022-11-27 09:00:00.000000000 +0100 +++ strace-6.2/src/syscall.c 2022-12-31 09:00:00.000000000 +0100 @@ -255,8 +255,8 @@ if (!is_number_in_set(QUIET_PERSONALITY, quiet_set)) { printleader(tcp); - tprintf("[ Process PID=%d runs in %s mode. ]\n", - tcp->pid, personality_names[personality]); + tprintf_string("[ Process PID=%d runs in %s mode. ]\n", + tcp->pid, personality_names[personality]); line_ended(); } @@ -421,12 +421,12 @@ const char *str = err_name(negated ? -err : err); if (!str || xlat_verbose(xlat_verbosity) != XLAT_STYLE_ABBREV) - tprintf(negated ? "%" PRId64 : "%" PRIu64, err); + tprintf_string(negated ? "%" PRId64 : "%" PRIu64, err); if (!str || xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW) return; (xlat_verbose(xlat_verbosity) == XLAT_STYLE_ABBREV - ? tprintf : tprintf_comment)("%s%s", - negated ? "-" : "", str); + ? tprintf_string : tprintf_comment)("%s%s", + negated ? "-" : "", str); } static void @@ -434,11 +434,17 @@ { 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); + tprints_sysret_next("retval"); + PRINT_VAL_D(ret); + + if (u_error_str) { + tprints_sysret_next("error"); + tprints_string(u_error_str); + tprints_sysret_string("strerror", strerror(u_error)); + } else { + tprints_sysret_next("strerror"); + tprintf_string("(errno %lu)", u_error); + } } static long get_regs(struct tcb *); @@ -753,21 +759,32 @@ || (tcp->flags & TCB_REPRINT)) { tcp->flags &= ~TCB_REPRINT; printleader(tcp); - tprintf("<... %s resumed>", tcp_sysent(tcp)->sys_name); + tprintf_string("<... %s resumed>", tcp_sysent(tcp)->sys_name); } + printing_tcp = tcp; } static void print_injected_note(struct tcb *tcp) { if (syscall_tampered(tcp) && syscall_tampered_poked(tcp)) - tprints(" (INJECTED: args, retval)"); + tprints_sysret_string("inject", "INJECTED: args, retval"); else if (syscall_tampered_poked(tcp)) - tprints(" (INJECTED: args)"); + tprints_sysret_string("inject", "INJECTED: args"); else if (syscall_tampered(tcp)) - tprints(" (INJECTED)"); + tprints_sysret_string("inject", "INJECTED"); if (syscall_tampered_delayed(tcp)) - tprints(" (DELAYED)"); + tprints_sysret_string("delay", "DELAYED"); +} + +static void +print_erestart(const char *err_short, const char *err_long) +{ + tprints_sysret_next("retval"); + tprint_sysret_pseudo_rval(); + tprints_sysret_next("error"); + tprints_string(err_short); + tprints_sysret_string("strerror", err_long); } int @@ -786,7 +803,6 @@ } print_syscall_resume(tcp); - printing_tcp = tcp; tcp->s_prev_ent = NULL; if (res != 1) { @@ -794,7 +810,12 @@ tprint_arg_end(); tprint_space(); tabto(); - tprints("= ? "); + tprint_sysret_begin(); + tprints_sysret_next("retval"); + tprint_sysret_pseudo_rval(); + tprints_sysret_next("return"); + tprints_string(""); + tprint_sysret_end(); tprint_newline(); if (!is_complete_set(status_set, NUMBER_OF_STATUSES)) { bool publish = is_number_in_set(STATUS_UNAVAILABLE, @@ -831,14 +852,15 @@ tprint_arg_end(); tprint_space(); tabto(); + tprint_sysret_begin(); if (raw(tcp)) { - if (tcp->u_error) + if (tcp->u_error) { print_err_ret(tcp->u_rval, tcp->u_error); - else - tprintf("= %#" PRI_klx, tcp->u_rval); - - print_injected_note(tcp); + } else { + tprints_sysret_next("retval"); + PRINT_VAL_X(tcp->u_rval); + } } else if (!(sys_res & RVAL_NONE) && tcp->u_error) { switch (tcp->u_error) { /* Blocked signals do not interrupt any syscalls. @@ -862,13 +884,13 @@ * The system call will be restarted with the same arguments * if SA_RESTART is set; otherwise, it will fail with EINTR. */ - tprints("= ? ERESTARTSYS (To be restarted if SA_RESTART is set)"); + print_erestart("ERESTARTSYS", "To be restarted if SA_RESTART is set"); break; case ERESTARTNOINTR: /* Rare. For example, fork() returns this if interrupted. * SA_RESTART is ignored (assumed set): the restart is unconditional. */ - tprints("= ? ERESTARTNOINTR (To be restarted)"); + print_erestart("ERESTARTNOINTR", "To be restarted"); break; case ERESTARTNOHAND: /* pause(), rt_sigsuspend() etc use this code. @@ -878,7 +900,7 @@ * after SIG_IGN or SIG_DFL signal it will restart * (thus the name "restart only if has no handler"). */ - tprints("= ? ERESTARTNOHAND (To be restarted if no handler)"); + print_erestart("ERESTARTNOHAND", "To be restarted if no handler"); break; case ERESTART_RESTARTBLOCK: /* Syscalls like nanosleep(), poll() which can't be @@ -892,35 +914,31 @@ * which in turn saves another such restart block, * old data is lost and restart becomes impossible) */ - tprints("= ? ERESTART_RESTARTBLOCK (Interrupted by signal)"); + print_erestart("ERESTART_RESTARTBLOCK", "Interrupted by signal"); break; default: print_err_ret(tcp->u_rval, tcp->u_error); break; } - print_injected_note(tcp); - if ((sys_res & RVAL_STR) && tcp->auxstr) - tprintf(" (%s)", tcp->auxstr); } else { + tprints_sysret_next("retval"); if (sys_res & RVAL_NONE) - tprints("= ?"); + tprint_sysret_pseudo_rval(); else { switch (sys_res & RVAL_MASK) { case RVAL_HEX: #if ANY_WORDSIZE_LESS_THAN_KERNEL_LONG if (current_klongsize < sizeof(tcp->u_rval)) { - tprintf("= %#x", - (unsigned int) tcp->u_rval); + PRINT_VAL_X((unsigned int) tcp->u_rval); } else #endif { - tprintf("= %#" PRI_klx, tcp->u_rval); + PRINT_VAL_X(tcp->u_rval); } break; case RVAL_OCTAL: { unsigned long long mode = zero_extend_signed_to_ull(tcp->u_rval); - tprints("= "); #if ANY_WORDSIZE_LESS_THAN_KERNEL_LONG if (current_klongsize < sizeof(tcp->u_rval)) mode = (unsigned int) mode; @@ -931,12 +949,11 @@ case RVAL_UDECIMAL: #if ANY_WORDSIZE_LESS_THAN_KERNEL_LONG if (current_klongsize < sizeof(tcp->u_rval)) { - tprintf("= %u", - (unsigned int) tcp->u_rval); + PRINT_VAL_U((unsigned int) tcp->u_rval); } else #endif { - tprintf("= %" PRI_klu, tcp->u_rval); + PRINT_VAL_U(tcp->u_rval); } break; case RVAL_FD: @@ -946,10 +963,9 @@ */ if ((current_klongsize < sizeof(tcp->u_rval)) || ((kernel_ulong_t) tcp->u_rval <= INT_MAX)) { - tprints("= "); printfd(tcp, tcp->u_rval); } else { - tprintf("= %" PRI_kld, tcp->u_rval); + PRINT_VAL_D(tcp->u_rval); } break; case RVAL_TID: @@ -962,31 +978,32 @@ }; #undef _ - tprints("= "); printpid(tcp, tcp->u_rval, types[(sys_res & RVAL_MASK) - RVAL_TID]); break; } default: + tprint_sysret_pseudo_rval(); error_msg("invalid rval format"); break; } } - if ((sys_res & RVAL_STR) && tcp->auxstr) - tprintf(" (%s)", tcp->auxstr); - print_injected_note(tcp); } + if ((sys_res & RVAL_STR) && tcp->auxstr) + tprints_sysret_string("retstr", tcp->auxstr); + print_injected_note(tcp); if (Tflag) { - tprint_space(); + tprints_sysret_next("time"); tprint_associated_info_begin(); ts_sub(ts, ts, &tcp->etime); PRINT_VAL_D(ts->tv_sec); if (Tflag_width) { - tprintf(".%0*ld", - Tflag_width, (long) ts->tv_nsec / Tflag_scale); + tprintf_string(".%0*ld", Tflag_width, + (long) ts->tv_nsec / Tflag_scale); } tprint_associated_info_end(); } + tprint_sysret_end(); tprint_newline(); dumpio(tcp); line_ended(); diff -Nru strace-6.1/src/tee.c strace-6.2/src/tee.c --- strace-6.1/src/tee.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/tee.c 2022-12-19 09:00:00.000000000 +0100 @@ -101,13 +101,15 @@ tprint_struct_begin(); tprints_field_name("attr"); + tprint_flags_begin(); printxval(tee_ioctl_param_attr_types, param->attr & ~TEE_IOCTL_PARAM_ATTR_META, "TEE_IOCTL_PARAM_ATTR_"); if (param->attr & TEE_IOCTL_PARAM_ATTR_META) { - tprint_or(); - tprints("TEE_IOCTL_PARAM_ATTR_META"); + tprint_flags_or(); + tprints_string("TEE_IOCTL_PARAM_ATTR_META"); } + tprint_flags_end(); switch (param->attr) { case TEE_IOCTL_PARAM_ATTR_TYPE_NONE: diff -Nru strace-6.1/src/term.c strace-6.2/src/term.c --- strace-6.1/src/term.c 2022-11-13 09:00:00.000000000 +0100 +++ strace-6.2/src/term.c 2023-02-20 09:00:00.000000000 +0100 @@ -40,6 +40,8 @@ # define termio_cc termios_cc #endif +#include "xlat/term_cmds_overlapping.h" + static void decode_oflag(uint64_t val) { @@ -56,34 +58,40 @@ { term_oflags_ffdly, FFDLY, "FF?" }, }; + tprint_flags_begin(); for (unsigned int i = 0; i < ARRAY_SIZE(xlats); i++) { printxval64(xlats[i].xl, val & xlats[i].mask, xlats[i].dfl); - tprint_or(); + tprint_flags_or(); val &= ~xlats[i].mask; } - printflags64(term_oflags, val, NULL); + printflags64_in(term_oflags, val, NULL); + tprint_flags_end(); } static void decode_cflag(uint64_t val) { + tprint_flags_begin(); printxval64(baud_options, val & CBAUD, "B???"); - tprint_or(); + tprint_flags_or(); if (val & CIBAUD) { + tprint_shift_begin(); printxval64(baud_options, (val & CIBAUD) >> IBSHIFT, "B???"); tprint_shift(); print_xlat(IBSHIFT); - tprint_or(); + tprint_shift_end(); + tprint_flags_or(); } printxval64(term_cflags_csize, val & CSIZE, "CS?"); - tprint_or(); + tprint_flags_or(); val &= ~(CBAUD | CIBAUD | CSIZE); - printflags64(term_cflags, val, NULL); + printflags64_in(term_cflags, val, NULL); + tprint_flags_end(); } static void @@ -116,12 +124,13 @@ tprint_array_index_begin(); if (s) - tprints(s); + tprints_string(s); else PRINT_VAL_U(idx); - tprint_array_index_end(); + tprint_array_index_equal(); PRINT_VAL_X(data[idx]); + tprint_array_index_end(); } static void @@ -442,3 +451,40 @@ return RVAL_IOCTL_DECODED; } + +/* + * TTY and SND ioctl commands may clash, for example: + * + * 0x00005404 + * { "SNDCTL_TMR_CONTINUE", 0x00005404 }, + * { "TCSETSF", 0x00005404 }, + * 0x00005403 + * { "SNDCTL_TMR_STOP", 0x00005403 }, + * { "TCSETSW", 0x00005403 }, + * 0x00005402 + * { "SNDCTL_TMR_START", 0x00005402 }, + * { "TCSETS", 0x00005402 }, + * + * This function tries to resolve the collision using the device information + * associated with the specified file descriptor. + */ +int +term_ioctl_decode_command_number(struct tcb *tcp, + const struct finfo *finfo, + unsigned int code) +{ + /* + * See Linux kernel Documentation/admin-guide/devices.txt + */ + if (finfo + && finfo->type == FINFO_DEV_CHR + && ((3 <= finfo->dev.major && finfo->dev.major <= 5) || + (136 <= finfo->dev.major && finfo->dev.major <= 143))) { + const char *str = xlookup(term_cmds_overlapping, code); + if (str) { + tprints_string(str); + return IOCTL_NUMBER_STOP_LOOKUP; + } + } + return 0; +} diff -Nru strace-6.1/src/ucopy.c strace-6.2/src/ucopy.c --- strace-6.1/src/ucopy.c 2021-12-01 01:08:00.000000000 +0100 +++ strace-6.2/src/ucopy.c 2023-02-26 09:00:00.000000000 +0100 @@ -6,7 +6,7 @@ * Copyright (c) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation * Linux for s390 port by D.J. Barrow * - * Copyright (c) 1999-2021 The strace developers. + * Copyright (c) 1999-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -432,7 +432,7 @@ char *nul_addr = memchr(laddr, '\0', r); if (nul_addr) - return (nul_addr - laddr) + 1; + return nread + (nul_addr - laddr) + 1; addr += r; laddr += r; nread += r; diff -Nru strace-6.1/src/unwind.c strace-6.2/src/unwind.c --- strace-6.1/src/unwind.c 2021-08-24 19:01:21.000000000 +0200 +++ strace-6.2/src/unwind.c 2023-02-26 09:00:00.000000000 +0100 @@ -1,6 +1,6 @@ /* * Copyright (c) 2013 Luca Clementi - * Copyright (c) 2013-2021 The strace developers. + * Copyright (c) 2013-2023 The strace developers. * * SPDX-License-Identifier: LGPL-2.1-or-later */ @@ -111,19 +111,19 @@ cplus_demangle(symbol_name, DMGL_AUTO | DMGL_PARAMS); #endif - tprintf(STACK_ENTRY_SYMBOL_FMT( + tprintf_string(STACK_ENTRY_SYMBOL_FMT( #ifdef USE_DEMANGLE - demangled_name ? demangled_name : + demangled_name ? demangled_name : #endif - symbol_name)); + symbol_name)); #ifdef USE_DEMANGLE free(demangled_name); #endif } else if (binary_filename) - tprintf(STACK_ENTRY_NOSYMBOL_FMT); + tprintf_string(STACK_ENTRY_NOSYMBOL_FMT); else - tprintf(STACK_ENTRY_BUG_FMT, __func__); + tprintf_string(STACK_ENTRY_BUG_FMT, __func__); line_ended(); } @@ -134,9 +134,9 @@ unsigned long true_offset) { if (true_offset) - tprintf(STACK_ENTRY_ERROR_WITH_OFFSET_FMT); + tprintf_string(STACK_ENTRY_ERROR_WITH_OFFSET_FMT); else - tprintf(STACK_ENTRY_ERROR_FMT); + tprintf_string(STACK_ENTRY_ERROR_FMT); line_ended(); } @@ -249,7 +249,7 @@ tmp = call; call = call->next; - tprints(tmp->output_line); + tprints_string(tmp->output_line); line_ended(); if (tmp->output_line != asprintf_error_str) diff -Nru strace-6.1/src/util.c strace-6.2/src/util.c --- strace-6.1/src/util.c 2022-11-27 09:00:00.000000000 +0100 +++ strace-6.2/src/util.c 2023-02-26 09:00:00.000000000 +0100 @@ -6,7 +6,7 @@ * Copyright (c) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation * Linux for s390 port by D.J. Barrow * - * Copyright (c) 1999-2022 The strace developers. + * Copyright (c) 1999-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -416,7 +416,7 @@ if (umove_or_printaddr(tcp, addr, &num)) \ return false; \ tprint_indirect_begin(); \ - tprintf(fmt, num); \ + tprintf_string(fmt, num); \ tprint_indirect_end(); \ return true; \ } @@ -443,9 +443,9 @@ if (umove_or_printaddr(tcp, addr, &pair)) \ return false; \ tprint_array_begin(); \ - tprintf(fmt, pair[0]); \ + tprintf_string(fmt, pair[0]); \ tprint_array_next(); \ - tprintf(fmt, pair[1]); \ + tprintf_string(fmt, pair[1]); \ tprint_array_end(); \ return true; \ } @@ -564,7 +564,7 @@ '\0' }; - tprints(str); + tprints_string(str); } enum sock_proto @@ -630,7 +630,7 @@ print_string_in_angle_brackets(const char *str) { tprint_associated_info_begin(); - tprints(str); + tprints_string(str); tprint_associated_info_end(); } @@ -647,33 +647,63 @@ return true; } -static bool -printdev(struct tcb *tcp, int fd, const char *path) +struct finfo * +get_finfo_for_dev(const char *path, struct finfo *finfo) { strace_stat_t st; + finfo->path = path; + finfo->type = FINFO_UNSET; + finfo->deleted = false; + if (path[0] != '/') - return false; + return finfo; if (stat_file(path, &st)) { debug_func_perror_msg("stat(\"%s\")", path); - return false; + return finfo; } switch (st.st_mode & S_IFMT) { case S_IFBLK: + finfo->type = FINFO_DEV_BLK; + break; case S_IFCHR: + finfo->type = FINFO_DEV_CHR; + break; + default: + return finfo; + } + + finfo->dev.major = major(st.st_rdev); + finfo->dev.minor = minor(st.st_rdev); + + return finfo; +} + +static bool +printdev(struct tcb *tcp, int fd, const char *path, const struct finfo *finfo) +{ + struct finfo finfo_buf; + if (!finfo) + finfo = get_finfo_for_dev(path, &finfo_buf); + + switch (finfo->type) { + case FINFO_DEV_BLK: + case FINFO_DEV_CHR: tprint_associated_info_begin(); - print_quoted_string_ex(path, strlen(path), + print_quoted_string_ex(finfo->path, strlen(finfo->path), QUOTE_OMIT_LEADING_TRAILING_QUOTES, "<>"); tprint_associated_info_begin(); - tprintf("%s %u:%u", - S_ISBLK(st.st_mode)? "block" : "char", - major(st.st_rdev), minor(st.st_rdev)); + tprintf_string("%s %u:%u", + (finfo->type == FINFO_DEV_BLK)? "block" : "char", + finfo->dev.major, finfo->dev.minor); tprint_associated_info_end(); tprint_associated_info_end(); return true; + default: + break; } return false; @@ -724,7 +754,7 @@ pid_t pid = pidfd_get_pid(pid_of_fd, fd); if (pid > 0) { tprint_associated_info_begin(); - tprints("pid:"); + tprints_string("pid:"); /* * The pid translation is not needed because * the pid is in strace's namespace. @@ -747,29 +777,31 @@ tprint_associated_info_end(); if (deleted) - tprints("(deleted)"); + tprints_string("(deleted)"); } void -printfd_pid(struct tcb *tcp, pid_t pid, int fd) +printfd_pid_with_finfo(struct tcb *tcp, pid_t pid, int fd, const struct finfo *finfo) { PRINT_VAL_D(fd); - char path[PATH_MAX + 1]; + char patha[PATH_MAX + 1]; bool deleted; if (pid > 0 && !number_set_array_is_empty(decode_fd_set, 0) - && getfdpath_pid(pid, fd, path, sizeof(path), &deleted) >= 0) { + && (finfo || (getfdpath_pid(pid, fd, patha, sizeof(patha), &deleted) >= 0))) { + const char *path = finfo? finfo->path: patha; if (is_number_in_set(DECODE_FD_SOCKET, decode_fd_set) && printsocket(tcp, fd, path)) goto printed; if (is_number_in_set(DECODE_FD_DEV, decode_fd_set) && - printdev(tcp, fd, path)) + printdev(tcp, fd, path, finfo)) goto printed; if (is_number_in_set(DECODE_FD_PIDFD, decode_fd_set) && printpidfd(pid, fd, path)) goto printed; if (is_number_in_set(DECODE_FD_PATH, decode_fd_set)) - print_quoted_string_in_angle_brackets(path, deleted); + print_quoted_string_in_angle_brackets(path, + finfo? finfo->deleted: deleted); printed: ; } @@ -1065,7 +1097,7 @@ } rc = string_quote(str, outstr, size, style, escape_chars); - tprints(outstr); + tprints_string(outstr); if (((style & (QUOTE_0_TERMINATED | QUOTE_EXPECT_TRAILING_0)) == (QUOTE_0_TERMINATED | QUOTE_EXPECT_TRAILING_0)) && rc) { @@ -1105,7 +1137,7 @@ * Print path string specified by address `addr' and length `n'. * If path length exceeds `n', append `...' to the output. * - * Returns the result of umovenstr. + * Returns the result of umovestr. */ int printpathn(struct tcb *const tcp, const kernel_ulong_t addr, unsigned int n) @@ -1152,7 +1184,7 @@ * Append `...' to the output if either the string length exceeds `max_strlen', * or QUOTE_0_TERMINATED bit is set and the string length exceeds `len'. * - * Returns the result of umovenstr if style has QUOTE_0_TERMINATED, + * Returns the result of umovestr if style has QUOTE_0_TERMINATED, * or the result of umoven otherwise. */ int @@ -1218,7 +1250,7 @@ && ((style & (QUOTE_0_TERMINATED | QUOTE_EXPECT_TRAILING_0)) || len > max_strlen); - tprints(outstr); + tprints_string(outstr); if (ellipsis) tprint_more_data_follows(); @@ -1259,7 +1291,7 @@ ret = false; } else { prefix_fun(); - tprintf("/* bytes %u..%u */ ", start_offs, total_len - 1); + tprintf_string("/* bytes %u..%u */ ", start_offs, total_len - 1); print_quoted_string(str, size, style); @@ -1317,7 +1349,8 @@ data_size -= iov_len; /* include the buffer number to make it easy to * match up the trace with the source */ - tprintf(" * %" PRI_klu " bytes in buffer %d\n", iov_len, i); + tprintf_string(" * %" PRI_klu " bytes in buffer %d\n", + iov_len, i); dumpstr(tcp, iov_iov_base(i), iov_len); } } @@ -1416,12 +1449,12 @@ * something already. */ if (i) - tprintf(" | \n", - fetch_size, - fetch_size == 1 ? "" : "s", - tcp->pid, addr + i); + tprintf_string(" | \n", + fetch_size, + fetch_size == 1 ? "" : "s", + tcp->pid, addr + i); return; } src = str; @@ -1457,8 +1490,8 @@ src++; } while (++i & DUMPSTR_BYTES_MASK); - tprintf(" | %0*" PRI_klx " %s |\n", - offs_chars, i - DUMPSTR_WIDTH_BYTES, outbuf); + tprintf_string(" | %0*" PRI_klx " %s |\n", + offs_chars, i - DUMPSTR_WIDTH_BYTES, outbuf); } } @@ -1694,10 +1727,16 @@ xlat_style); } - tprint_array_index_end(); + tprint_array_index_equal(); } - if (!print_func(tcp, elem_buf, elem_size, opaque_data)) { + bool break_needed = + !print_func(tcp, elem_buf, elem_size, opaque_data); + + if (flags & PAF_PRINT_INDICES) + tprint_array_index_end(); + + if (break_needed) { cur = end_addr; break; } @@ -1760,10 +1799,12 @@ if (current_klongsize > 4) { const unsigned int hi = (unsigned int) ((uint64_t) val >> 32); if (hi) { + tprint_shift_begin(); PRINT_VAL_X(hi); tprint_shift(); PRINT_VAL_U(32); - tprint_or(); + tprint_shift_end(); + tprint_flags_or(); } } } diff -Nru strace-6.1/src/v4l2.c strace-6.2/src/v4l2.c --- strace-6.1/src/v4l2.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/v4l2.c 2022-12-27 09:00:00.000000000 +0100 @@ -61,7 +61,7 @@ #define PRINT_FIELD_FRACT(where_, field_) \ do { \ tprints_field_name(#field_); \ - STRACE_PRINTF("%u/%u", \ + tprintf_string("%u/%u", \ (where_).field_.numerator, \ (where_).field_.denominator); \ } while (0) @@ -503,15 +503,17 @@ return; } + tprint_flags_begin(); if (flags) { - printflags(v4l2_buf_flags, flags, "V4L2_BUF_FLAG_???"); - tprint_or(); + printflags_in(v4l2_buf_flags, flags, "V4L2_BUF_FLAG_???"); + tprint_flags_or(); } printxval(v4l2_buf_flags_ts_type, ts_type, "V4L2_BUF_FLAG_TIMESTAMP_???"); - tprint_or(); + tprint_flags_or(); printxval(v4l2_buf_flags_ts_src, ts_src, "V4L2_BUF_FLAG_TSTAMP_SRC_???"); + tprint_flags_end(); } #define PRINT_FIELD_V4L2_BUFFER_FLAGS(where_, field_) \ @@ -809,13 +811,14 @@ return; } + tprint_flags_begin(); if (next_flags) { uint32_t flags = cid & v4l2_control_query_flags->flags_mask; if (flags) { - printflags(v4l2_control_query_flags, flags, - "V4L2_CTRL_FLAG_NEXT_???"); - tprint_or(); + printflags_in(v4l2_control_query_flags, flags, + "V4L2_CTRL_FLAG_NEXT_???"); + tprint_flags_or(); cid &= ~flags; } } @@ -824,6 +827,7 @@ if (id_name) { print_xlat_ex(cid, id_name, XLAT_STYLE_DEFAULT); + tprint_flags_end(); return; } @@ -832,6 +836,7 @@ if (!class_str || (cid - class_id) >= 0x10000) { print_xlat_ex(cid, "V4L2_CID_???", PXF_DEFAULT_STR); + tprint_flags_end(); return; } @@ -843,6 +848,7 @@ xsprintf(tmp_str, "%s+%#" PRIx64, class_str, cid - class_id); print_xlat_ex(cid, tmp_str, XLAT_STYLE_DEFAULT); + tprint_flags_end(); } #define PRINT_FIELD_V4L2_CID(where_, field_, next_) \ diff -Nru strace-6.1/src/wait.c strace-6.2/src/wait.c --- strace-6.1/src/wait.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/src/wait.c 2022-12-20 09:00:00.000000000 +0100 @@ -32,31 +32,33 @@ * are no wait status constructors it will have to do. */ tprint_indirect_begin(); + tprint_flags_begin(); if (WIFSTOPPED(status)) { int sig = WSTOPSIG(status); - tprintf("{WIFSTOPPED(s) && WSTOPSIG(s) == %s%s}", - sprintsigname(sig & 0x7f), - sig & 0x80 ? " | 0x80" : ""); + tprintf_string("{WIFSTOPPED(s) && WSTOPSIG(s) == %s%s}", + sprintsigname(sig & 0x7f), + sig & 0x80 ? " | 0x80" : ""); status &= ~W_STOPCODE(sig); } else if (WIFSIGNALED(status)) { - tprintf("{WIFSIGNALED(s) && WTERMSIG(s) == %s%s}", - sprintsigname(WTERMSIG(status)), - WCOREDUMP(status) ? " && WCOREDUMP(s)" : ""); + tprintf_string("{WIFSIGNALED(s) && WTERMSIG(s) == %s%s}", + sprintsigname(WTERMSIG(status)), + WCOREDUMP(status) ? " && WCOREDUMP(s)" : ""); status &= ~(W_EXITCODE(0, WTERMSIG(status)) | WCOREFLAG); } else if (WIFEXITED(status)) { - tprintf("{WIFEXITED(s) && WEXITSTATUS(s) == %d}", - WEXITSTATUS(status)); + tprintf_string("{WIFEXITED(s) && WEXITSTATUS(s) == %d}", + WEXITSTATUS(status)); exited = 1; status &= ~W_EXITCODE(WEXITSTATUS(status), 0); } #ifdef WIFCONTINUED else if (WIFCONTINUED(status)) { - tprints("{WIFCONTINUED(s)}"); + tprints_string("{WIFCONTINUED(s)}"); status &= ~W_CONTINUED; } #endif else { PRINT_VAL_X(status); + tprint_flags_end(); tprint_indirect_end(); return 0; } @@ -64,17 +66,20 @@ if (status) { unsigned int event = (unsigned int) status >> 16; if (event) { - tprint_or(); + tprint_flags_or(); + tprint_shift_begin(); printxval(ptrace_events, event, "PTRACE_EVENT_???"); tprint_shift(); PRINT_VAL_U(16); + tprint_shift_end(); status &= 0xffff; } if (status) { - tprint_or(); + tprint_flags_or(); PRINT_VAL_X(status); } } + tprint_flags_end(); tprint_indirect_end(); return exited; diff -Nru strace-6.1/src/xlat/bpf_map_types.h strace-6.2/src/xlat/bpf_map_types.h --- strace-6.1/src/xlat/bpf_map_types.h 2022-12-12 19:28:51.000000000 +0100 +++ strace-6.2/src/xlat/bpf_map_types.h 2023-02-26 22:20:46.000000000 +0100 @@ -227,6 +227,13 @@ #else # define BPF_MAP_TYPE_USER_RINGBUF 31 #endif +#if defined(BPF_MAP_TYPE_CGRP_STORAGE) || (defined(HAVE_DECL_BPF_MAP_TYPE_CGRP_STORAGE) && HAVE_DECL_BPF_MAP_TYPE_CGRP_STORAGE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_MAP_TYPE_CGRP_STORAGE) == (32), "BPF_MAP_TYPE_CGRP_STORAGE != 32"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_MAP_TYPE_CGRP_STORAGE 32 +#endif #undef XLAT_PREV_VAL #ifndef XLAT_MACROS_ONLY @@ -335,6 +342,9 @@ [BPF_MAP_TYPE_USER_RINGBUF] = XLAT(BPF_MAP_TYPE_USER_RINGBUF), #define XLAT_VAL_31 ((unsigned) (BPF_MAP_TYPE_USER_RINGBUF)) #define XLAT_STR_31 STRINGIFY(BPF_MAP_TYPE_USER_RINGBUF) + [BPF_MAP_TYPE_CGRP_STORAGE] = XLAT(BPF_MAP_TYPE_CGRP_STORAGE), + #define XLAT_VAL_32 ((unsigned) (BPF_MAP_TYPE_CGRP_STORAGE)) + #define XLAT_STR_32 STRINGIFY(BPF_MAP_TYPE_CGRP_STORAGE) }; static const struct xlat bpf_map_types[1] = { { @@ -438,6 +448,9 @@ # ifdef XLAT_VAL_31 | XLAT_VAL_31 # endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif , .flags_strsz = 0 # ifdef XLAT_STR_0 @@ -536,6 +549,9 @@ # ifdef XLAT_STR_31 + sizeof(XLAT_STR_31) # endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif , } }; DIAG_POP_IGNORE_TAUTOLOGICAL_CONSTANT_COMPARE @@ -604,6 +620,8 @@ # undef XLAT_VAL_30 # undef XLAT_STR_31 # undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff -Nru strace-6.1/src/xlat/bpf_map_types.in strace-6.2/src/xlat/bpf_map_types.in --- strace-6.1/src/xlat/bpf_map_types.in 2022-12-11 09:00:00.000000000 +0100 +++ strace-6.2/src/xlat/bpf_map_types.in 2023-01-06 09:00:00.000000000 +0100 @@ -31,3 +31,4 @@ BPF_MAP_TYPE_TASK_STORAGE 29 BPF_MAP_TYPE_BLOOM_FILTER 30 BPF_MAP_TYPE_USER_RINGBUF 31 +BPF_MAP_TYPE_CGRP_STORAGE 32 diff -Nru strace-6.1/src/xlat/evdev_keycode.h strace-6.2/src/xlat/evdev_keycode.h --- strace-6.1/src/xlat/evdev_keycode.h 2022-12-12 19:28:54.000000000 +0100 +++ strace-6.2/src/xlat/evdev_keycode.h 2023-02-26 22:20:50.000000000 +0100 @@ -1505,395 +1505,404 @@ [KEY_DICTATE] = XLAT(KEY_DICTATE), #define XLAT_VAL_484 ((unsigned) (KEY_DICTATE)) #define XLAT_STR_484 STRINGIFY(KEY_DICTATE) + [KEY_CAMERA_ACCESS_ENABLE] = XLAT(KEY_CAMERA_ACCESS_ENABLE), + #define XLAT_VAL_485 ((unsigned) (KEY_CAMERA_ACCESS_ENABLE)) + #define XLAT_STR_485 STRINGIFY(KEY_CAMERA_ACCESS_ENABLE) + [KEY_CAMERA_ACCESS_DISABLE] = XLAT(KEY_CAMERA_ACCESS_DISABLE), + #define XLAT_VAL_486 ((unsigned) (KEY_CAMERA_ACCESS_DISABLE)) + #define XLAT_STR_486 STRINGIFY(KEY_CAMERA_ACCESS_DISABLE) + [KEY_CAMERA_ACCESS_TOGGLE] = XLAT(KEY_CAMERA_ACCESS_TOGGLE), + #define XLAT_VAL_487 ((unsigned) (KEY_CAMERA_ACCESS_TOGGLE)) + #define XLAT_STR_487 STRINGIFY(KEY_CAMERA_ACCESS_TOGGLE) [KEY_BRIGHTNESS_MIN] = XLAT(KEY_BRIGHTNESS_MIN), - #define XLAT_VAL_485 ((unsigned) (KEY_BRIGHTNESS_MIN)) - #define XLAT_STR_485 STRINGIFY(KEY_BRIGHTNESS_MIN) + #define XLAT_VAL_488 ((unsigned) (KEY_BRIGHTNESS_MIN)) + #define XLAT_STR_488 STRINGIFY(KEY_BRIGHTNESS_MIN) [KEY_BRIGHTNESS_MAX] = XLAT(KEY_BRIGHTNESS_MAX), - #define XLAT_VAL_486 ((unsigned) (KEY_BRIGHTNESS_MAX)) - #define XLAT_STR_486 STRINGIFY(KEY_BRIGHTNESS_MAX) + #define XLAT_VAL_489 ((unsigned) (KEY_BRIGHTNESS_MAX)) + #define XLAT_STR_489 STRINGIFY(KEY_BRIGHTNESS_MAX) [KEY_KBDINPUTASSIST_PREV] = XLAT(KEY_KBDINPUTASSIST_PREV), - #define XLAT_VAL_487 ((unsigned) (KEY_KBDINPUTASSIST_PREV)) - #define XLAT_STR_487 STRINGIFY(KEY_KBDINPUTASSIST_PREV) + #define XLAT_VAL_490 ((unsigned) (KEY_KBDINPUTASSIST_PREV)) + #define XLAT_STR_490 STRINGIFY(KEY_KBDINPUTASSIST_PREV) [KEY_KBDINPUTASSIST_NEXT] = XLAT(KEY_KBDINPUTASSIST_NEXT), - #define XLAT_VAL_488 ((unsigned) (KEY_KBDINPUTASSIST_NEXT)) - #define XLAT_STR_488 STRINGIFY(KEY_KBDINPUTASSIST_NEXT) + #define XLAT_VAL_491 ((unsigned) (KEY_KBDINPUTASSIST_NEXT)) + #define XLAT_STR_491 STRINGIFY(KEY_KBDINPUTASSIST_NEXT) [KEY_KBDINPUTASSIST_PREVGROUP] = XLAT(KEY_KBDINPUTASSIST_PREVGROUP), - #define XLAT_VAL_489 ((unsigned) (KEY_KBDINPUTASSIST_PREVGROUP)) - #define XLAT_STR_489 STRINGIFY(KEY_KBDINPUTASSIST_PREVGROUP) + #define XLAT_VAL_492 ((unsigned) (KEY_KBDINPUTASSIST_PREVGROUP)) + #define XLAT_STR_492 STRINGIFY(KEY_KBDINPUTASSIST_PREVGROUP) [KEY_KBDINPUTASSIST_NEXTGROUP] = XLAT(KEY_KBDINPUTASSIST_NEXTGROUP), - #define XLAT_VAL_490 ((unsigned) (KEY_KBDINPUTASSIST_NEXTGROUP)) - #define XLAT_STR_490 STRINGIFY(KEY_KBDINPUTASSIST_NEXTGROUP) + #define XLAT_VAL_493 ((unsigned) (KEY_KBDINPUTASSIST_NEXTGROUP)) + #define XLAT_STR_493 STRINGIFY(KEY_KBDINPUTASSIST_NEXTGROUP) [KEY_KBDINPUTASSIST_ACCEPT] = XLAT(KEY_KBDINPUTASSIST_ACCEPT), - #define XLAT_VAL_491 ((unsigned) (KEY_KBDINPUTASSIST_ACCEPT)) - #define XLAT_STR_491 STRINGIFY(KEY_KBDINPUTASSIST_ACCEPT) + #define XLAT_VAL_494 ((unsigned) (KEY_KBDINPUTASSIST_ACCEPT)) + #define XLAT_STR_494 STRINGIFY(KEY_KBDINPUTASSIST_ACCEPT) [KEY_KBDINPUTASSIST_CANCEL] = XLAT(KEY_KBDINPUTASSIST_CANCEL), - #define XLAT_VAL_492 ((unsigned) (KEY_KBDINPUTASSIST_CANCEL)) - #define XLAT_STR_492 STRINGIFY(KEY_KBDINPUTASSIST_CANCEL) + #define XLAT_VAL_495 ((unsigned) (KEY_KBDINPUTASSIST_CANCEL)) + #define XLAT_STR_495 STRINGIFY(KEY_KBDINPUTASSIST_CANCEL) [KEY_RIGHT_UP] = XLAT(KEY_RIGHT_UP), - #define XLAT_VAL_493 ((unsigned) (KEY_RIGHT_UP)) - #define XLAT_STR_493 STRINGIFY(KEY_RIGHT_UP) + #define XLAT_VAL_496 ((unsigned) (KEY_RIGHT_UP)) + #define XLAT_STR_496 STRINGIFY(KEY_RIGHT_UP) [KEY_RIGHT_DOWN] = XLAT(KEY_RIGHT_DOWN), - #define XLAT_VAL_494 ((unsigned) (KEY_RIGHT_DOWN)) - #define XLAT_STR_494 STRINGIFY(KEY_RIGHT_DOWN) + #define XLAT_VAL_497 ((unsigned) (KEY_RIGHT_DOWN)) + #define XLAT_STR_497 STRINGIFY(KEY_RIGHT_DOWN) [KEY_LEFT_UP] = XLAT(KEY_LEFT_UP), - #define XLAT_VAL_495 ((unsigned) (KEY_LEFT_UP)) - #define XLAT_STR_495 STRINGIFY(KEY_LEFT_UP) + #define XLAT_VAL_498 ((unsigned) (KEY_LEFT_UP)) + #define XLAT_STR_498 STRINGIFY(KEY_LEFT_UP) [KEY_LEFT_DOWN] = XLAT(KEY_LEFT_DOWN), - #define XLAT_VAL_496 ((unsigned) (KEY_LEFT_DOWN)) - #define XLAT_STR_496 STRINGIFY(KEY_LEFT_DOWN) + #define XLAT_VAL_499 ((unsigned) (KEY_LEFT_DOWN)) + #define XLAT_STR_499 STRINGIFY(KEY_LEFT_DOWN) [KEY_ROOT_MENU] = XLAT(KEY_ROOT_MENU), - #define XLAT_VAL_497 ((unsigned) (KEY_ROOT_MENU)) - #define XLAT_STR_497 STRINGIFY(KEY_ROOT_MENU) + #define XLAT_VAL_500 ((unsigned) (KEY_ROOT_MENU)) + #define XLAT_STR_500 STRINGIFY(KEY_ROOT_MENU) [KEY_MEDIA_TOP_MENU] = XLAT(KEY_MEDIA_TOP_MENU), - #define XLAT_VAL_498 ((unsigned) (KEY_MEDIA_TOP_MENU)) - #define XLAT_STR_498 STRINGIFY(KEY_MEDIA_TOP_MENU) + #define XLAT_VAL_501 ((unsigned) (KEY_MEDIA_TOP_MENU)) + #define XLAT_STR_501 STRINGIFY(KEY_MEDIA_TOP_MENU) [KEY_NUMERIC_11] = XLAT(KEY_NUMERIC_11), - #define XLAT_VAL_499 ((unsigned) (KEY_NUMERIC_11)) - #define XLAT_STR_499 STRINGIFY(KEY_NUMERIC_11) + #define XLAT_VAL_502 ((unsigned) (KEY_NUMERIC_11)) + #define XLAT_STR_502 STRINGIFY(KEY_NUMERIC_11) [KEY_NUMERIC_12] = XLAT(KEY_NUMERIC_12), - #define XLAT_VAL_500 ((unsigned) (KEY_NUMERIC_12)) - #define XLAT_STR_500 STRINGIFY(KEY_NUMERIC_12) + #define XLAT_VAL_503 ((unsigned) (KEY_NUMERIC_12)) + #define XLAT_STR_503 STRINGIFY(KEY_NUMERIC_12) [KEY_AUDIO_DESC] = XLAT(KEY_AUDIO_DESC), - #define XLAT_VAL_501 ((unsigned) (KEY_AUDIO_DESC)) - #define XLAT_STR_501 STRINGIFY(KEY_AUDIO_DESC) + #define XLAT_VAL_504 ((unsigned) (KEY_AUDIO_DESC)) + #define XLAT_STR_504 STRINGIFY(KEY_AUDIO_DESC) [KEY_3D_MODE] = XLAT(KEY_3D_MODE), - #define XLAT_VAL_502 ((unsigned) (KEY_3D_MODE)) - #define XLAT_STR_502 STRINGIFY(KEY_3D_MODE) + #define XLAT_VAL_505 ((unsigned) (KEY_3D_MODE)) + #define XLAT_STR_505 STRINGIFY(KEY_3D_MODE) [KEY_NEXT_FAVORITE] = XLAT(KEY_NEXT_FAVORITE), - #define XLAT_VAL_503 ((unsigned) (KEY_NEXT_FAVORITE)) - #define XLAT_STR_503 STRINGIFY(KEY_NEXT_FAVORITE) + #define XLAT_VAL_506 ((unsigned) (KEY_NEXT_FAVORITE)) + #define XLAT_STR_506 STRINGIFY(KEY_NEXT_FAVORITE) [KEY_STOP_RECORD] = XLAT(KEY_STOP_RECORD), - #define XLAT_VAL_504 ((unsigned) (KEY_STOP_RECORD)) - #define XLAT_STR_504 STRINGIFY(KEY_STOP_RECORD) + #define XLAT_VAL_507 ((unsigned) (KEY_STOP_RECORD)) + #define XLAT_STR_507 STRINGIFY(KEY_STOP_RECORD) [KEY_PAUSE_RECORD] = XLAT(KEY_PAUSE_RECORD), - #define XLAT_VAL_505 ((unsigned) (KEY_PAUSE_RECORD)) - #define XLAT_STR_505 STRINGIFY(KEY_PAUSE_RECORD) + #define XLAT_VAL_508 ((unsigned) (KEY_PAUSE_RECORD)) + #define XLAT_STR_508 STRINGIFY(KEY_PAUSE_RECORD) [KEY_VOD] = XLAT(KEY_VOD), - #define XLAT_VAL_506 ((unsigned) (KEY_VOD)) - #define XLAT_STR_506 STRINGIFY(KEY_VOD) + #define XLAT_VAL_509 ((unsigned) (KEY_VOD)) + #define XLAT_STR_509 STRINGIFY(KEY_VOD) [KEY_UNMUTE] = XLAT(KEY_UNMUTE), - #define XLAT_VAL_507 ((unsigned) (KEY_UNMUTE)) - #define XLAT_STR_507 STRINGIFY(KEY_UNMUTE) + #define XLAT_VAL_510 ((unsigned) (KEY_UNMUTE)) + #define XLAT_STR_510 STRINGIFY(KEY_UNMUTE) [KEY_FASTREVERSE] = XLAT(KEY_FASTREVERSE), - #define XLAT_VAL_508 ((unsigned) (KEY_FASTREVERSE)) - #define XLAT_STR_508 STRINGIFY(KEY_FASTREVERSE) + #define XLAT_VAL_511 ((unsigned) (KEY_FASTREVERSE)) + #define XLAT_STR_511 STRINGIFY(KEY_FASTREVERSE) [KEY_SLOWREVERSE] = XLAT(KEY_SLOWREVERSE), - #define XLAT_VAL_509 ((unsigned) (KEY_SLOWREVERSE)) - #define XLAT_STR_509 STRINGIFY(KEY_SLOWREVERSE) + #define XLAT_VAL_512 ((unsigned) (KEY_SLOWREVERSE)) + #define XLAT_STR_512 STRINGIFY(KEY_SLOWREVERSE) [KEY_DATA] = XLAT(KEY_DATA), - #define XLAT_VAL_510 ((unsigned) (KEY_DATA)) - #define XLAT_STR_510 STRINGIFY(KEY_DATA) + #define XLAT_VAL_513 ((unsigned) (KEY_DATA)) + #define XLAT_STR_513 STRINGIFY(KEY_DATA) [KEY_ONSCREEN_KEYBOARD] = XLAT(KEY_ONSCREEN_KEYBOARD), - #define XLAT_VAL_511 ((unsigned) (KEY_ONSCREEN_KEYBOARD)) - #define XLAT_STR_511 STRINGIFY(KEY_ONSCREEN_KEYBOARD) + #define XLAT_VAL_514 ((unsigned) (KEY_ONSCREEN_KEYBOARD)) + #define XLAT_STR_514 STRINGIFY(KEY_ONSCREEN_KEYBOARD) [KEY_PRIVACY_SCREEN_TOGGLE] = XLAT(KEY_PRIVACY_SCREEN_TOGGLE), - #define XLAT_VAL_512 ((unsigned) (KEY_PRIVACY_SCREEN_TOGGLE)) - #define XLAT_STR_512 STRINGIFY(KEY_PRIVACY_SCREEN_TOGGLE) + #define XLAT_VAL_515 ((unsigned) (KEY_PRIVACY_SCREEN_TOGGLE)) + #define XLAT_STR_515 STRINGIFY(KEY_PRIVACY_SCREEN_TOGGLE) [KEY_SELECTIVE_SCREENSHOT] = XLAT(KEY_SELECTIVE_SCREENSHOT), - #define XLAT_VAL_513 ((unsigned) (KEY_SELECTIVE_SCREENSHOT)) - #define XLAT_STR_513 STRINGIFY(KEY_SELECTIVE_SCREENSHOT) + #define XLAT_VAL_516 ((unsigned) (KEY_SELECTIVE_SCREENSHOT)) + #define XLAT_STR_516 STRINGIFY(KEY_SELECTIVE_SCREENSHOT) [KEY_NEXT_ELEMENT] = XLAT(KEY_NEXT_ELEMENT), - #define XLAT_VAL_514 ((unsigned) (KEY_NEXT_ELEMENT)) - #define XLAT_STR_514 STRINGIFY(KEY_NEXT_ELEMENT) + #define XLAT_VAL_517 ((unsigned) (KEY_NEXT_ELEMENT)) + #define XLAT_STR_517 STRINGIFY(KEY_NEXT_ELEMENT) [KEY_PREVIOUS_ELEMENT] = XLAT(KEY_PREVIOUS_ELEMENT), - #define XLAT_VAL_515 ((unsigned) (KEY_PREVIOUS_ELEMENT)) - #define XLAT_STR_515 STRINGIFY(KEY_PREVIOUS_ELEMENT) + #define XLAT_VAL_518 ((unsigned) (KEY_PREVIOUS_ELEMENT)) + #define XLAT_STR_518 STRINGIFY(KEY_PREVIOUS_ELEMENT) [KEY_AUTOPILOT_ENGAGE_TOGGLE] = XLAT(KEY_AUTOPILOT_ENGAGE_TOGGLE), - #define XLAT_VAL_516 ((unsigned) (KEY_AUTOPILOT_ENGAGE_TOGGLE)) - #define XLAT_STR_516 STRINGIFY(KEY_AUTOPILOT_ENGAGE_TOGGLE) + #define XLAT_VAL_519 ((unsigned) (KEY_AUTOPILOT_ENGAGE_TOGGLE)) + #define XLAT_STR_519 STRINGIFY(KEY_AUTOPILOT_ENGAGE_TOGGLE) [KEY_MARK_WAYPOINT] = XLAT(KEY_MARK_WAYPOINT), - #define XLAT_VAL_517 ((unsigned) (KEY_MARK_WAYPOINT)) - #define XLAT_STR_517 STRINGIFY(KEY_MARK_WAYPOINT) + #define XLAT_VAL_520 ((unsigned) (KEY_MARK_WAYPOINT)) + #define XLAT_STR_520 STRINGIFY(KEY_MARK_WAYPOINT) [KEY_SOS] = XLAT(KEY_SOS), - #define XLAT_VAL_518 ((unsigned) (KEY_SOS)) - #define XLAT_STR_518 STRINGIFY(KEY_SOS) + #define XLAT_VAL_521 ((unsigned) (KEY_SOS)) + #define XLAT_STR_521 STRINGIFY(KEY_SOS) [KEY_NAV_CHART] = XLAT(KEY_NAV_CHART), - #define XLAT_VAL_519 ((unsigned) (KEY_NAV_CHART)) - #define XLAT_STR_519 STRINGIFY(KEY_NAV_CHART) + #define XLAT_VAL_522 ((unsigned) (KEY_NAV_CHART)) + #define XLAT_STR_522 STRINGIFY(KEY_NAV_CHART) [KEY_FISHING_CHART] = XLAT(KEY_FISHING_CHART), - #define XLAT_VAL_520 ((unsigned) (KEY_FISHING_CHART)) - #define XLAT_STR_520 STRINGIFY(KEY_FISHING_CHART) + #define XLAT_VAL_523 ((unsigned) (KEY_FISHING_CHART)) + #define XLAT_STR_523 STRINGIFY(KEY_FISHING_CHART) [KEY_SINGLE_RANGE_RADAR] = XLAT(KEY_SINGLE_RANGE_RADAR), - #define XLAT_VAL_521 ((unsigned) (KEY_SINGLE_RANGE_RADAR)) - #define XLAT_STR_521 STRINGIFY(KEY_SINGLE_RANGE_RADAR) + #define XLAT_VAL_524 ((unsigned) (KEY_SINGLE_RANGE_RADAR)) + #define XLAT_STR_524 STRINGIFY(KEY_SINGLE_RANGE_RADAR) [KEY_DUAL_RANGE_RADAR] = XLAT(KEY_DUAL_RANGE_RADAR), - #define XLAT_VAL_522 ((unsigned) (KEY_DUAL_RANGE_RADAR)) - #define XLAT_STR_522 STRINGIFY(KEY_DUAL_RANGE_RADAR) + #define XLAT_VAL_525 ((unsigned) (KEY_DUAL_RANGE_RADAR)) + #define XLAT_STR_525 STRINGIFY(KEY_DUAL_RANGE_RADAR) [KEY_RADAR_OVERLAY] = XLAT(KEY_RADAR_OVERLAY), - #define XLAT_VAL_523 ((unsigned) (KEY_RADAR_OVERLAY)) - #define XLAT_STR_523 STRINGIFY(KEY_RADAR_OVERLAY) + #define XLAT_VAL_526 ((unsigned) (KEY_RADAR_OVERLAY)) + #define XLAT_STR_526 STRINGIFY(KEY_RADAR_OVERLAY) [KEY_TRADITIONAL_SONAR] = XLAT(KEY_TRADITIONAL_SONAR), - #define XLAT_VAL_524 ((unsigned) (KEY_TRADITIONAL_SONAR)) - #define XLAT_STR_524 STRINGIFY(KEY_TRADITIONAL_SONAR) + #define XLAT_VAL_527 ((unsigned) (KEY_TRADITIONAL_SONAR)) + #define XLAT_STR_527 STRINGIFY(KEY_TRADITIONAL_SONAR) [KEY_CLEARVU_SONAR] = XLAT(KEY_CLEARVU_SONAR), - #define XLAT_VAL_525 ((unsigned) (KEY_CLEARVU_SONAR)) - #define XLAT_STR_525 STRINGIFY(KEY_CLEARVU_SONAR) + #define XLAT_VAL_528 ((unsigned) (KEY_CLEARVU_SONAR)) + #define XLAT_STR_528 STRINGIFY(KEY_CLEARVU_SONAR) [KEY_SIDEVU_SONAR] = XLAT(KEY_SIDEVU_SONAR), - #define XLAT_VAL_526 ((unsigned) (KEY_SIDEVU_SONAR)) - #define XLAT_STR_526 STRINGIFY(KEY_SIDEVU_SONAR) + #define XLAT_VAL_529 ((unsigned) (KEY_SIDEVU_SONAR)) + #define XLAT_STR_529 STRINGIFY(KEY_SIDEVU_SONAR) [KEY_NAV_INFO] = XLAT(KEY_NAV_INFO), - #define XLAT_VAL_527 ((unsigned) (KEY_NAV_INFO)) - #define XLAT_STR_527 STRINGIFY(KEY_NAV_INFO) + #define XLAT_VAL_530 ((unsigned) (KEY_NAV_INFO)) + #define XLAT_STR_530 STRINGIFY(KEY_NAV_INFO) [KEY_BRIGHTNESS_MENU] = XLAT(KEY_BRIGHTNESS_MENU), - #define XLAT_VAL_528 ((unsigned) (KEY_BRIGHTNESS_MENU)) - #define XLAT_STR_528 STRINGIFY(KEY_BRIGHTNESS_MENU) + #define XLAT_VAL_531 ((unsigned) (KEY_BRIGHTNESS_MENU)) + #define XLAT_STR_531 STRINGIFY(KEY_BRIGHTNESS_MENU) [KEY_MACRO1] = XLAT(KEY_MACRO1), - #define XLAT_VAL_529 ((unsigned) (KEY_MACRO1)) - #define XLAT_STR_529 STRINGIFY(KEY_MACRO1) + #define XLAT_VAL_532 ((unsigned) (KEY_MACRO1)) + #define XLAT_STR_532 STRINGIFY(KEY_MACRO1) [KEY_MACRO2] = XLAT(KEY_MACRO2), - #define XLAT_VAL_530 ((unsigned) (KEY_MACRO2)) - #define XLAT_STR_530 STRINGIFY(KEY_MACRO2) + #define XLAT_VAL_533 ((unsigned) (KEY_MACRO2)) + #define XLAT_STR_533 STRINGIFY(KEY_MACRO2) [KEY_MACRO3] = XLAT(KEY_MACRO3), - #define XLAT_VAL_531 ((unsigned) (KEY_MACRO3)) - #define XLAT_STR_531 STRINGIFY(KEY_MACRO3) + #define XLAT_VAL_534 ((unsigned) (KEY_MACRO3)) + #define XLAT_STR_534 STRINGIFY(KEY_MACRO3) [KEY_MACRO4] = XLAT(KEY_MACRO4), - #define XLAT_VAL_532 ((unsigned) (KEY_MACRO4)) - #define XLAT_STR_532 STRINGIFY(KEY_MACRO4) + #define XLAT_VAL_535 ((unsigned) (KEY_MACRO4)) + #define XLAT_STR_535 STRINGIFY(KEY_MACRO4) [KEY_MACRO5] = XLAT(KEY_MACRO5), - #define XLAT_VAL_533 ((unsigned) (KEY_MACRO5)) - #define XLAT_STR_533 STRINGIFY(KEY_MACRO5) + #define XLAT_VAL_536 ((unsigned) (KEY_MACRO5)) + #define XLAT_STR_536 STRINGIFY(KEY_MACRO5) [KEY_MACRO6] = XLAT(KEY_MACRO6), - #define XLAT_VAL_534 ((unsigned) (KEY_MACRO6)) - #define XLAT_STR_534 STRINGIFY(KEY_MACRO6) + #define XLAT_VAL_537 ((unsigned) (KEY_MACRO6)) + #define XLAT_STR_537 STRINGIFY(KEY_MACRO6) [KEY_MACRO7] = XLAT(KEY_MACRO7), - #define XLAT_VAL_535 ((unsigned) (KEY_MACRO7)) - #define XLAT_STR_535 STRINGIFY(KEY_MACRO7) + #define XLAT_VAL_538 ((unsigned) (KEY_MACRO7)) + #define XLAT_STR_538 STRINGIFY(KEY_MACRO7) [KEY_MACRO8] = XLAT(KEY_MACRO8), - #define XLAT_VAL_536 ((unsigned) (KEY_MACRO8)) - #define XLAT_STR_536 STRINGIFY(KEY_MACRO8) + #define XLAT_VAL_539 ((unsigned) (KEY_MACRO8)) + #define XLAT_STR_539 STRINGIFY(KEY_MACRO8) [KEY_MACRO9] = XLAT(KEY_MACRO9), - #define XLAT_VAL_537 ((unsigned) (KEY_MACRO9)) - #define XLAT_STR_537 STRINGIFY(KEY_MACRO9) + #define XLAT_VAL_540 ((unsigned) (KEY_MACRO9)) + #define XLAT_STR_540 STRINGIFY(KEY_MACRO9) [KEY_MACRO10] = XLAT(KEY_MACRO10), - #define XLAT_VAL_538 ((unsigned) (KEY_MACRO10)) - #define XLAT_STR_538 STRINGIFY(KEY_MACRO10) + #define XLAT_VAL_541 ((unsigned) (KEY_MACRO10)) + #define XLAT_STR_541 STRINGIFY(KEY_MACRO10) [KEY_MACRO11] = XLAT(KEY_MACRO11), - #define XLAT_VAL_539 ((unsigned) (KEY_MACRO11)) - #define XLAT_STR_539 STRINGIFY(KEY_MACRO11) + #define XLAT_VAL_542 ((unsigned) (KEY_MACRO11)) + #define XLAT_STR_542 STRINGIFY(KEY_MACRO11) [KEY_MACRO12] = XLAT(KEY_MACRO12), - #define XLAT_VAL_540 ((unsigned) (KEY_MACRO12)) - #define XLAT_STR_540 STRINGIFY(KEY_MACRO12) + #define XLAT_VAL_543 ((unsigned) (KEY_MACRO12)) + #define XLAT_STR_543 STRINGIFY(KEY_MACRO12) [KEY_MACRO13] = XLAT(KEY_MACRO13), - #define XLAT_VAL_541 ((unsigned) (KEY_MACRO13)) - #define XLAT_STR_541 STRINGIFY(KEY_MACRO13) + #define XLAT_VAL_544 ((unsigned) (KEY_MACRO13)) + #define XLAT_STR_544 STRINGIFY(KEY_MACRO13) [KEY_MACRO14] = XLAT(KEY_MACRO14), - #define XLAT_VAL_542 ((unsigned) (KEY_MACRO14)) - #define XLAT_STR_542 STRINGIFY(KEY_MACRO14) + #define XLAT_VAL_545 ((unsigned) (KEY_MACRO14)) + #define XLAT_STR_545 STRINGIFY(KEY_MACRO14) [KEY_MACRO15] = XLAT(KEY_MACRO15), - #define XLAT_VAL_543 ((unsigned) (KEY_MACRO15)) - #define XLAT_STR_543 STRINGIFY(KEY_MACRO15) + #define XLAT_VAL_546 ((unsigned) (KEY_MACRO15)) + #define XLAT_STR_546 STRINGIFY(KEY_MACRO15) [KEY_MACRO16] = XLAT(KEY_MACRO16), - #define XLAT_VAL_544 ((unsigned) (KEY_MACRO16)) - #define XLAT_STR_544 STRINGIFY(KEY_MACRO16) + #define XLAT_VAL_547 ((unsigned) (KEY_MACRO16)) + #define XLAT_STR_547 STRINGIFY(KEY_MACRO16) [KEY_MACRO17] = XLAT(KEY_MACRO17), - #define XLAT_VAL_545 ((unsigned) (KEY_MACRO17)) - #define XLAT_STR_545 STRINGIFY(KEY_MACRO17) + #define XLAT_VAL_548 ((unsigned) (KEY_MACRO17)) + #define XLAT_STR_548 STRINGIFY(KEY_MACRO17) [KEY_MACRO18] = XLAT(KEY_MACRO18), - #define XLAT_VAL_546 ((unsigned) (KEY_MACRO18)) - #define XLAT_STR_546 STRINGIFY(KEY_MACRO18) + #define XLAT_VAL_549 ((unsigned) (KEY_MACRO18)) + #define XLAT_STR_549 STRINGIFY(KEY_MACRO18) [KEY_MACRO19] = XLAT(KEY_MACRO19), - #define XLAT_VAL_547 ((unsigned) (KEY_MACRO19)) - #define XLAT_STR_547 STRINGIFY(KEY_MACRO19) + #define XLAT_VAL_550 ((unsigned) (KEY_MACRO19)) + #define XLAT_STR_550 STRINGIFY(KEY_MACRO19) [KEY_MACRO20] = XLAT(KEY_MACRO20), - #define XLAT_VAL_548 ((unsigned) (KEY_MACRO20)) - #define XLAT_STR_548 STRINGIFY(KEY_MACRO20) + #define XLAT_VAL_551 ((unsigned) (KEY_MACRO20)) + #define XLAT_STR_551 STRINGIFY(KEY_MACRO20) [KEY_MACRO21] = XLAT(KEY_MACRO21), - #define XLAT_VAL_549 ((unsigned) (KEY_MACRO21)) - #define XLAT_STR_549 STRINGIFY(KEY_MACRO21) + #define XLAT_VAL_552 ((unsigned) (KEY_MACRO21)) + #define XLAT_STR_552 STRINGIFY(KEY_MACRO21) [KEY_MACRO22] = XLAT(KEY_MACRO22), - #define XLAT_VAL_550 ((unsigned) (KEY_MACRO22)) - #define XLAT_STR_550 STRINGIFY(KEY_MACRO22) + #define XLAT_VAL_553 ((unsigned) (KEY_MACRO22)) + #define XLAT_STR_553 STRINGIFY(KEY_MACRO22) [KEY_MACRO23] = XLAT(KEY_MACRO23), - #define XLAT_VAL_551 ((unsigned) (KEY_MACRO23)) - #define XLAT_STR_551 STRINGIFY(KEY_MACRO23) + #define XLAT_VAL_554 ((unsigned) (KEY_MACRO23)) + #define XLAT_STR_554 STRINGIFY(KEY_MACRO23) [KEY_MACRO24] = XLAT(KEY_MACRO24), - #define XLAT_VAL_552 ((unsigned) (KEY_MACRO24)) - #define XLAT_STR_552 STRINGIFY(KEY_MACRO24) + #define XLAT_VAL_555 ((unsigned) (KEY_MACRO24)) + #define XLAT_STR_555 STRINGIFY(KEY_MACRO24) [KEY_MACRO25] = XLAT(KEY_MACRO25), - #define XLAT_VAL_553 ((unsigned) (KEY_MACRO25)) - #define XLAT_STR_553 STRINGIFY(KEY_MACRO25) + #define XLAT_VAL_556 ((unsigned) (KEY_MACRO25)) + #define XLAT_STR_556 STRINGIFY(KEY_MACRO25) [KEY_MACRO26] = XLAT(KEY_MACRO26), - #define XLAT_VAL_554 ((unsigned) (KEY_MACRO26)) - #define XLAT_STR_554 STRINGIFY(KEY_MACRO26) + #define XLAT_VAL_557 ((unsigned) (KEY_MACRO26)) + #define XLAT_STR_557 STRINGIFY(KEY_MACRO26) [KEY_MACRO27] = XLAT(KEY_MACRO27), - #define XLAT_VAL_555 ((unsigned) (KEY_MACRO27)) - #define XLAT_STR_555 STRINGIFY(KEY_MACRO27) + #define XLAT_VAL_558 ((unsigned) (KEY_MACRO27)) + #define XLAT_STR_558 STRINGIFY(KEY_MACRO27) [KEY_MACRO28] = XLAT(KEY_MACRO28), - #define XLAT_VAL_556 ((unsigned) (KEY_MACRO28)) - #define XLAT_STR_556 STRINGIFY(KEY_MACRO28) + #define XLAT_VAL_559 ((unsigned) (KEY_MACRO28)) + #define XLAT_STR_559 STRINGIFY(KEY_MACRO28) [KEY_MACRO29] = XLAT(KEY_MACRO29), - #define XLAT_VAL_557 ((unsigned) (KEY_MACRO29)) - #define XLAT_STR_557 STRINGIFY(KEY_MACRO29) + #define XLAT_VAL_560 ((unsigned) (KEY_MACRO29)) + #define XLAT_STR_560 STRINGIFY(KEY_MACRO29) [KEY_MACRO30] = XLAT(KEY_MACRO30), - #define XLAT_VAL_558 ((unsigned) (KEY_MACRO30)) - #define XLAT_STR_558 STRINGIFY(KEY_MACRO30) + #define XLAT_VAL_561 ((unsigned) (KEY_MACRO30)) + #define XLAT_STR_561 STRINGIFY(KEY_MACRO30) [KEY_MACRO_RECORD_START] = XLAT(KEY_MACRO_RECORD_START), - #define XLAT_VAL_559 ((unsigned) (KEY_MACRO_RECORD_START)) - #define XLAT_STR_559 STRINGIFY(KEY_MACRO_RECORD_START) + #define XLAT_VAL_562 ((unsigned) (KEY_MACRO_RECORD_START)) + #define XLAT_STR_562 STRINGIFY(KEY_MACRO_RECORD_START) [KEY_MACRO_RECORD_STOP] = XLAT(KEY_MACRO_RECORD_STOP), - #define XLAT_VAL_560 ((unsigned) (KEY_MACRO_RECORD_STOP)) - #define XLAT_STR_560 STRINGIFY(KEY_MACRO_RECORD_STOP) + #define XLAT_VAL_563 ((unsigned) (KEY_MACRO_RECORD_STOP)) + #define XLAT_STR_563 STRINGIFY(KEY_MACRO_RECORD_STOP) [KEY_MACRO_PRESET_CYCLE] = XLAT(KEY_MACRO_PRESET_CYCLE), - #define XLAT_VAL_561 ((unsigned) (KEY_MACRO_PRESET_CYCLE)) - #define XLAT_STR_561 STRINGIFY(KEY_MACRO_PRESET_CYCLE) + #define XLAT_VAL_564 ((unsigned) (KEY_MACRO_PRESET_CYCLE)) + #define XLAT_STR_564 STRINGIFY(KEY_MACRO_PRESET_CYCLE) [KEY_MACRO_PRESET1] = XLAT(KEY_MACRO_PRESET1), - #define XLAT_VAL_562 ((unsigned) (KEY_MACRO_PRESET1)) - #define XLAT_STR_562 STRINGIFY(KEY_MACRO_PRESET1) + #define XLAT_VAL_565 ((unsigned) (KEY_MACRO_PRESET1)) + #define XLAT_STR_565 STRINGIFY(KEY_MACRO_PRESET1) [KEY_MACRO_PRESET2] = XLAT(KEY_MACRO_PRESET2), - #define XLAT_VAL_563 ((unsigned) (KEY_MACRO_PRESET2)) - #define XLAT_STR_563 STRINGIFY(KEY_MACRO_PRESET2) + #define XLAT_VAL_566 ((unsigned) (KEY_MACRO_PRESET2)) + #define XLAT_STR_566 STRINGIFY(KEY_MACRO_PRESET2) [KEY_MACRO_PRESET3] = XLAT(KEY_MACRO_PRESET3), - #define XLAT_VAL_564 ((unsigned) (KEY_MACRO_PRESET3)) - #define XLAT_STR_564 STRINGIFY(KEY_MACRO_PRESET3) + #define XLAT_VAL_567 ((unsigned) (KEY_MACRO_PRESET3)) + #define XLAT_STR_567 STRINGIFY(KEY_MACRO_PRESET3) [KEY_KBD_LCD_MENU1] = XLAT(KEY_KBD_LCD_MENU1), - #define XLAT_VAL_565 ((unsigned) (KEY_KBD_LCD_MENU1)) - #define XLAT_STR_565 STRINGIFY(KEY_KBD_LCD_MENU1) + #define XLAT_VAL_568 ((unsigned) (KEY_KBD_LCD_MENU1)) + #define XLAT_STR_568 STRINGIFY(KEY_KBD_LCD_MENU1) [KEY_KBD_LCD_MENU2] = XLAT(KEY_KBD_LCD_MENU2), - #define XLAT_VAL_566 ((unsigned) (KEY_KBD_LCD_MENU2)) - #define XLAT_STR_566 STRINGIFY(KEY_KBD_LCD_MENU2) + #define XLAT_VAL_569 ((unsigned) (KEY_KBD_LCD_MENU2)) + #define XLAT_STR_569 STRINGIFY(KEY_KBD_LCD_MENU2) [KEY_KBD_LCD_MENU3] = XLAT(KEY_KBD_LCD_MENU3), - #define XLAT_VAL_567 ((unsigned) (KEY_KBD_LCD_MENU3)) - #define XLAT_STR_567 STRINGIFY(KEY_KBD_LCD_MENU3) + #define XLAT_VAL_570 ((unsigned) (KEY_KBD_LCD_MENU3)) + #define XLAT_STR_570 STRINGIFY(KEY_KBD_LCD_MENU3) [KEY_KBD_LCD_MENU4] = XLAT(KEY_KBD_LCD_MENU4), - #define XLAT_VAL_568 ((unsigned) (KEY_KBD_LCD_MENU4)) - #define XLAT_STR_568 STRINGIFY(KEY_KBD_LCD_MENU4) + #define XLAT_VAL_571 ((unsigned) (KEY_KBD_LCD_MENU4)) + #define XLAT_STR_571 STRINGIFY(KEY_KBD_LCD_MENU4) [KEY_KBD_LCD_MENU5] = XLAT(KEY_KBD_LCD_MENU5), - #define XLAT_VAL_569 ((unsigned) (KEY_KBD_LCD_MENU5)) - #define XLAT_STR_569 STRINGIFY(KEY_KBD_LCD_MENU5) + #define XLAT_VAL_572 ((unsigned) (KEY_KBD_LCD_MENU5)) + #define XLAT_STR_572 STRINGIFY(KEY_KBD_LCD_MENU5) [BTN_TRIGGER_HAPPY1] = XLAT(BTN_TRIGGER_HAPPY1), - #define XLAT_VAL_570 ((unsigned) (BTN_TRIGGER_HAPPY1)) - #define XLAT_STR_570 STRINGIFY(BTN_TRIGGER_HAPPY1) + #define XLAT_VAL_573 ((unsigned) (BTN_TRIGGER_HAPPY1)) + #define XLAT_STR_573 STRINGIFY(BTN_TRIGGER_HAPPY1) [BTN_TRIGGER_HAPPY2] = XLAT(BTN_TRIGGER_HAPPY2), - #define XLAT_VAL_571 ((unsigned) (BTN_TRIGGER_HAPPY2)) - #define XLAT_STR_571 STRINGIFY(BTN_TRIGGER_HAPPY2) + #define XLAT_VAL_574 ((unsigned) (BTN_TRIGGER_HAPPY2)) + #define XLAT_STR_574 STRINGIFY(BTN_TRIGGER_HAPPY2) [BTN_TRIGGER_HAPPY3] = XLAT(BTN_TRIGGER_HAPPY3), - #define XLAT_VAL_572 ((unsigned) (BTN_TRIGGER_HAPPY3)) - #define XLAT_STR_572 STRINGIFY(BTN_TRIGGER_HAPPY3) + #define XLAT_VAL_575 ((unsigned) (BTN_TRIGGER_HAPPY3)) + #define XLAT_STR_575 STRINGIFY(BTN_TRIGGER_HAPPY3) [BTN_TRIGGER_HAPPY4] = XLAT(BTN_TRIGGER_HAPPY4), - #define XLAT_VAL_573 ((unsigned) (BTN_TRIGGER_HAPPY4)) - #define XLAT_STR_573 STRINGIFY(BTN_TRIGGER_HAPPY4) + #define XLAT_VAL_576 ((unsigned) (BTN_TRIGGER_HAPPY4)) + #define XLAT_STR_576 STRINGIFY(BTN_TRIGGER_HAPPY4) [BTN_TRIGGER_HAPPY5] = XLAT(BTN_TRIGGER_HAPPY5), - #define XLAT_VAL_574 ((unsigned) (BTN_TRIGGER_HAPPY5)) - #define XLAT_STR_574 STRINGIFY(BTN_TRIGGER_HAPPY5) + #define XLAT_VAL_577 ((unsigned) (BTN_TRIGGER_HAPPY5)) + #define XLAT_STR_577 STRINGIFY(BTN_TRIGGER_HAPPY5) [BTN_TRIGGER_HAPPY6] = XLAT(BTN_TRIGGER_HAPPY6), - #define XLAT_VAL_575 ((unsigned) (BTN_TRIGGER_HAPPY6)) - #define XLAT_STR_575 STRINGIFY(BTN_TRIGGER_HAPPY6) + #define XLAT_VAL_578 ((unsigned) (BTN_TRIGGER_HAPPY6)) + #define XLAT_STR_578 STRINGIFY(BTN_TRIGGER_HAPPY6) [BTN_TRIGGER_HAPPY7] = XLAT(BTN_TRIGGER_HAPPY7), - #define XLAT_VAL_576 ((unsigned) (BTN_TRIGGER_HAPPY7)) - #define XLAT_STR_576 STRINGIFY(BTN_TRIGGER_HAPPY7) + #define XLAT_VAL_579 ((unsigned) (BTN_TRIGGER_HAPPY7)) + #define XLAT_STR_579 STRINGIFY(BTN_TRIGGER_HAPPY7) [BTN_TRIGGER_HAPPY8] = XLAT(BTN_TRIGGER_HAPPY8), - #define XLAT_VAL_577 ((unsigned) (BTN_TRIGGER_HAPPY8)) - #define XLAT_STR_577 STRINGIFY(BTN_TRIGGER_HAPPY8) + #define XLAT_VAL_580 ((unsigned) (BTN_TRIGGER_HAPPY8)) + #define XLAT_STR_580 STRINGIFY(BTN_TRIGGER_HAPPY8) [BTN_TRIGGER_HAPPY9] = XLAT(BTN_TRIGGER_HAPPY9), - #define XLAT_VAL_578 ((unsigned) (BTN_TRIGGER_HAPPY9)) - #define XLAT_STR_578 STRINGIFY(BTN_TRIGGER_HAPPY9) + #define XLAT_VAL_581 ((unsigned) (BTN_TRIGGER_HAPPY9)) + #define XLAT_STR_581 STRINGIFY(BTN_TRIGGER_HAPPY9) [BTN_TRIGGER_HAPPY10] = XLAT(BTN_TRIGGER_HAPPY10), - #define XLAT_VAL_579 ((unsigned) (BTN_TRIGGER_HAPPY10)) - #define XLAT_STR_579 STRINGIFY(BTN_TRIGGER_HAPPY10) + #define XLAT_VAL_582 ((unsigned) (BTN_TRIGGER_HAPPY10)) + #define XLAT_STR_582 STRINGIFY(BTN_TRIGGER_HAPPY10) [BTN_TRIGGER_HAPPY11] = XLAT(BTN_TRIGGER_HAPPY11), - #define XLAT_VAL_580 ((unsigned) (BTN_TRIGGER_HAPPY11)) - #define XLAT_STR_580 STRINGIFY(BTN_TRIGGER_HAPPY11) + #define XLAT_VAL_583 ((unsigned) (BTN_TRIGGER_HAPPY11)) + #define XLAT_STR_583 STRINGIFY(BTN_TRIGGER_HAPPY11) [BTN_TRIGGER_HAPPY12] = XLAT(BTN_TRIGGER_HAPPY12), - #define XLAT_VAL_581 ((unsigned) (BTN_TRIGGER_HAPPY12)) - #define XLAT_STR_581 STRINGIFY(BTN_TRIGGER_HAPPY12) + #define XLAT_VAL_584 ((unsigned) (BTN_TRIGGER_HAPPY12)) + #define XLAT_STR_584 STRINGIFY(BTN_TRIGGER_HAPPY12) [BTN_TRIGGER_HAPPY13] = XLAT(BTN_TRIGGER_HAPPY13), - #define XLAT_VAL_582 ((unsigned) (BTN_TRIGGER_HAPPY13)) - #define XLAT_STR_582 STRINGIFY(BTN_TRIGGER_HAPPY13) + #define XLAT_VAL_585 ((unsigned) (BTN_TRIGGER_HAPPY13)) + #define XLAT_STR_585 STRINGIFY(BTN_TRIGGER_HAPPY13) [BTN_TRIGGER_HAPPY14] = XLAT(BTN_TRIGGER_HAPPY14), - #define XLAT_VAL_583 ((unsigned) (BTN_TRIGGER_HAPPY14)) - #define XLAT_STR_583 STRINGIFY(BTN_TRIGGER_HAPPY14) + #define XLAT_VAL_586 ((unsigned) (BTN_TRIGGER_HAPPY14)) + #define XLAT_STR_586 STRINGIFY(BTN_TRIGGER_HAPPY14) [BTN_TRIGGER_HAPPY15] = XLAT(BTN_TRIGGER_HAPPY15), - #define XLAT_VAL_584 ((unsigned) (BTN_TRIGGER_HAPPY15)) - #define XLAT_STR_584 STRINGIFY(BTN_TRIGGER_HAPPY15) + #define XLAT_VAL_587 ((unsigned) (BTN_TRIGGER_HAPPY15)) + #define XLAT_STR_587 STRINGIFY(BTN_TRIGGER_HAPPY15) [BTN_TRIGGER_HAPPY16] = XLAT(BTN_TRIGGER_HAPPY16), - #define XLAT_VAL_585 ((unsigned) (BTN_TRIGGER_HAPPY16)) - #define XLAT_STR_585 STRINGIFY(BTN_TRIGGER_HAPPY16) + #define XLAT_VAL_588 ((unsigned) (BTN_TRIGGER_HAPPY16)) + #define XLAT_STR_588 STRINGIFY(BTN_TRIGGER_HAPPY16) [BTN_TRIGGER_HAPPY17] = XLAT(BTN_TRIGGER_HAPPY17), - #define XLAT_VAL_586 ((unsigned) (BTN_TRIGGER_HAPPY17)) - #define XLAT_STR_586 STRINGIFY(BTN_TRIGGER_HAPPY17) + #define XLAT_VAL_589 ((unsigned) (BTN_TRIGGER_HAPPY17)) + #define XLAT_STR_589 STRINGIFY(BTN_TRIGGER_HAPPY17) [BTN_TRIGGER_HAPPY18] = XLAT(BTN_TRIGGER_HAPPY18), - #define XLAT_VAL_587 ((unsigned) (BTN_TRIGGER_HAPPY18)) - #define XLAT_STR_587 STRINGIFY(BTN_TRIGGER_HAPPY18) + #define XLAT_VAL_590 ((unsigned) (BTN_TRIGGER_HAPPY18)) + #define XLAT_STR_590 STRINGIFY(BTN_TRIGGER_HAPPY18) [BTN_TRIGGER_HAPPY19] = XLAT(BTN_TRIGGER_HAPPY19), - #define XLAT_VAL_588 ((unsigned) (BTN_TRIGGER_HAPPY19)) - #define XLAT_STR_588 STRINGIFY(BTN_TRIGGER_HAPPY19) + #define XLAT_VAL_591 ((unsigned) (BTN_TRIGGER_HAPPY19)) + #define XLAT_STR_591 STRINGIFY(BTN_TRIGGER_HAPPY19) [BTN_TRIGGER_HAPPY20] = XLAT(BTN_TRIGGER_HAPPY20), - #define XLAT_VAL_589 ((unsigned) (BTN_TRIGGER_HAPPY20)) - #define XLAT_STR_589 STRINGIFY(BTN_TRIGGER_HAPPY20) + #define XLAT_VAL_592 ((unsigned) (BTN_TRIGGER_HAPPY20)) + #define XLAT_STR_592 STRINGIFY(BTN_TRIGGER_HAPPY20) [BTN_TRIGGER_HAPPY21] = XLAT(BTN_TRIGGER_HAPPY21), - #define XLAT_VAL_590 ((unsigned) (BTN_TRIGGER_HAPPY21)) - #define XLAT_STR_590 STRINGIFY(BTN_TRIGGER_HAPPY21) + #define XLAT_VAL_593 ((unsigned) (BTN_TRIGGER_HAPPY21)) + #define XLAT_STR_593 STRINGIFY(BTN_TRIGGER_HAPPY21) [BTN_TRIGGER_HAPPY22] = XLAT(BTN_TRIGGER_HAPPY22), - #define XLAT_VAL_591 ((unsigned) (BTN_TRIGGER_HAPPY22)) - #define XLAT_STR_591 STRINGIFY(BTN_TRIGGER_HAPPY22) + #define XLAT_VAL_594 ((unsigned) (BTN_TRIGGER_HAPPY22)) + #define XLAT_STR_594 STRINGIFY(BTN_TRIGGER_HAPPY22) [BTN_TRIGGER_HAPPY23] = XLAT(BTN_TRIGGER_HAPPY23), - #define XLAT_VAL_592 ((unsigned) (BTN_TRIGGER_HAPPY23)) - #define XLAT_STR_592 STRINGIFY(BTN_TRIGGER_HAPPY23) + #define XLAT_VAL_595 ((unsigned) (BTN_TRIGGER_HAPPY23)) + #define XLAT_STR_595 STRINGIFY(BTN_TRIGGER_HAPPY23) [BTN_TRIGGER_HAPPY24] = XLAT(BTN_TRIGGER_HAPPY24), - #define XLAT_VAL_593 ((unsigned) (BTN_TRIGGER_HAPPY24)) - #define XLAT_STR_593 STRINGIFY(BTN_TRIGGER_HAPPY24) + #define XLAT_VAL_596 ((unsigned) (BTN_TRIGGER_HAPPY24)) + #define XLAT_STR_596 STRINGIFY(BTN_TRIGGER_HAPPY24) [BTN_TRIGGER_HAPPY25] = XLAT(BTN_TRIGGER_HAPPY25), - #define XLAT_VAL_594 ((unsigned) (BTN_TRIGGER_HAPPY25)) - #define XLAT_STR_594 STRINGIFY(BTN_TRIGGER_HAPPY25) + #define XLAT_VAL_597 ((unsigned) (BTN_TRIGGER_HAPPY25)) + #define XLAT_STR_597 STRINGIFY(BTN_TRIGGER_HAPPY25) [BTN_TRIGGER_HAPPY26] = XLAT(BTN_TRIGGER_HAPPY26), - #define XLAT_VAL_595 ((unsigned) (BTN_TRIGGER_HAPPY26)) - #define XLAT_STR_595 STRINGIFY(BTN_TRIGGER_HAPPY26) + #define XLAT_VAL_598 ((unsigned) (BTN_TRIGGER_HAPPY26)) + #define XLAT_STR_598 STRINGIFY(BTN_TRIGGER_HAPPY26) [BTN_TRIGGER_HAPPY27] = XLAT(BTN_TRIGGER_HAPPY27), - #define XLAT_VAL_596 ((unsigned) (BTN_TRIGGER_HAPPY27)) - #define XLAT_STR_596 STRINGIFY(BTN_TRIGGER_HAPPY27) + #define XLAT_VAL_599 ((unsigned) (BTN_TRIGGER_HAPPY27)) + #define XLAT_STR_599 STRINGIFY(BTN_TRIGGER_HAPPY27) [BTN_TRIGGER_HAPPY28] = XLAT(BTN_TRIGGER_HAPPY28), - #define XLAT_VAL_597 ((unsigned) (BTN_TRIGGER_HAPPY28)) - #define XLAT_STR_597 STRINGIFY(BTN_TRIGGER_HAPPY28) + #define XLAT_VAL_600 ((unsigned) (BTN_TRIGGER_HAPPY28)) + #define XLAT_STR_600 STRINGIFY(BTN_TRIGGER_HAPPY28) [BTN_TRIGGER_HAPPY29] = XLAT(BTN_TRIGGER_HAPPY29), - #define XLAT_VAL_598 ((unsigned) (BTN_TRIGGER_HAPPY29)) - #define XLAT_STR_598 STRINGIFY(BTN_TRIGGER_HAPPY29) + #define XLAT_VAL_601 ((unsigned) (BTN_TRIGGER_HAPPY29)) + #define XLAT_STR_601 STRINGIFY(BTN_TRIGGER_HAPPY29) [BTN_TRIGGER_HAPPY30] = XLAT(BTN_TRIGGER_HAPPY30), - #define XLAT_VAL_599 ((unsigned) (BTN_TRIGGER_HAPPY30)) - #define XLAT_STR_599 STRINGIFY(BTN_TRIGGER_HAPPY30) + #define XLAT_VAL_602 ((unsigned) (BTN_TRIGGER_HAPPY30)) + #define XLAT_STR_602 STRINGIFY(BTN_TRIGGER_HAPPY30) [BTN_TRIGGER_HAPPY31] = XLAT(BTN_TRIGGER_HAPPY31), - #define XLAT_VAL_600 ((unsigned) (BTN_TRIGGER_HAPPY31)) - #define XLAT_STR_600 STRINGIFY(BTN_TRIGGER_HAPPY31) + #define XLAT_VAL_603 ((unsigned) (BTN_TRIGGER_HAPPY31)) + #define XLAT_STR_603 STRINGIFY(BTN_TRIGGER_HAPPY31) [BTN_TRIGGER_HAPPY32] = XLAT(BTN_TRIGGER_HAPPY32), - #define XLAT_VAL_601 ((unsigned) (BTN_TRIGGER_HAPPY32)) - #define XLAT_STR_601 STRINGIFY(BTN_TRIGGER_HAPPY32) + #define XLAT_VAL_604 ((unsigned) (BTN_TRIGGER_HAPPY32)) + #define XLAT_STR_604 STRINGIFY(BTN_TRIGGER_HAPPY32) [BTN_TRIGGER_HAPPY33] = XLAT(BTN_TRIGGER_HAPPY33), - #define XLAT_VAL_602 ((unsigned) (BTN_TRIGGER_HAPPY33)) - #define XLAT_STR_602 STRINGIFY(BTN_TRIGGER_HAPPY33) + #define XLAT_VAL_605 ((unsigned) (BTN_TRIGGER_HAPPY33)) + #define XLAT_STR_605 STRINGIFY(BTN_TRIGGER_HAPPY33) [BTN_TRIGGER_HAPPY34] = XLAT(BTN_TRIGGER_HAPPY34), - #define XLAT_VAL_603 ((unsigned) (BTN_TRIGGER_HAPPY34)) - #define XLAT_STR_603 STRINGIFY(BTN_TRIGGER_HAPPY34) + #define XLAT_VAL_606 ((unsigned) (BTN_TRIGGER_HAPPY34)) + #define XLAT_STR_606 STRINGIFY(BTN_TRIGGER_HAPPY34) [BTN_TRIGGER_HAPPY35] = XLAT(BTN_TRIGGER_HAPPY35), - #define XLAT_VAL_604 ((unsigned) (BTN_TRIGGER_HAPPY35)) - #define XLAT_STR_604 STRINGIFY(BTN_TRIGGER_HAPPY35) + #define XLAT_VAL_607 ((unsigned) (BTN_TRIGGER_HAPPY35)) + #define XLAT_STR_607 STRINGIFY(BTN_TRIGGER_HAPPY35) [BTN_TRIGGER_HAPPY36] = XLAT(BTN_TRIGGER_HAPPY36), - #define XLAT_VAL_605 ((unsigned) (BTN_TRIGGER_HAPPY36)) - #define XLAT_STR_605 STRINGIFY(BTN_TRIGGER_HAPPY36) + #define XLAT_VAL_608 ((unsigned) (BTN_TRIGGER_HAPPY36)) + #define XLAT_STR_608 STRINGIFY(BTN_TRIGGER_HAPPY36) [BTN_TRIGGER_HAPPY37] = XLAT(BTN_TRIGGER_HAPPY37), - #define XLAT_VAL_606 ((unsigned) (BTN_TRIGGER_HAPPY37)) - #define XLAT_STR_606 STRINGIFY(BTN_TRIGGER_HAPPY37) + #define XLAT_VAL_609 ((unsigned) (BTN_TRIGGER_HAPPY37)) + #define XLAT_STR_609 STRINGIFY(BTN_TRIGGER_HAPPY37) [BTN_TRIGGER_HAPPY38] = XLAT(BTN_TRIGGER_HAPPY38), - #define XLAT_VAL_607 ((unsigned) (BTN_TRIGGER_HAPPY38)) - #define XLAT_STR_607 STRINGIFY(BTN_TRIGGER_HAPPY38) + #define XLAT_VAL_610 ((unsigned) (BTN_TRIGGER_HAPPY38)) + #define XLAT_STR_610 STRINGIFY(BTN_TRIGGER_HAPPY38) [BTN_TRIGGER_HAPPY39] = XLAT(BTN_TRIGGER_HAPPY39), - #define XLAT_VAL_608 ((unsigned) (BTN_TRIGGER_HAPPY39)) - #define XLAT_STR_608 STRINGIFY(BTN_TRIGGER_HAPPY39) + #define XLAT_VAL_611 ((unsigned) (BTN_TRIGGER_HAPPY39)) + #define XLAT_STR_611 STRINGIFY(BTN_TRIGGER_HAPPY39) [BTN_TRIGGER_HAPPY40] = XLAT(BTN_TRIGGER_HAPPY40), - #define XLAT_VAL_609 ((unsigned) (BTN_TRIGGER_HAPPY40)) - #define XLAT_STR_609 STRINGIFY(BTN_TRIGGER_HAPPY40) + #define XLAT_VAL_612 ((unsigned) (BTN_TRIGGER_HAPPY40)) + #define XLAT_STR_612 STRINGIFY(BTN_TRIGGER_HAPPY40) }; static const struct xlat evdev_keycode[1] = { { @@ -3731,6 +3740,15 @@ # ifdef XLAT_VAL_609 | XLAT_VAL_609 # endif +# ifdef XLAT_VAL_610 + | XLAT_VAL_610 +# endif +# ifdef XLAT_VAL_611 + | XLAT_VAL_611 +# endif +# ifdef XLAT_VAL_612 + | XLAT_VAL_612 +# endif , .flags_strsz = 0 # ifdef XLAT_STR_0 @@ -5563,6 +5581,15 @@ # ifdef XLAT_STR_609 + sizeof(XLAT_STR_609) # endif +# ifdef XLAT_STR_610 + + sizeof(XLAT_STR_610) +# endif +# ifdef XLAT_STR_611 + + sizeof(XLAT_STR_611) +# endif +# ifdef XLAT_STR_612 + + sizeof(XLAT_STR_612) +# endif , } }; DIAG_POP_IGNORE_TAUTOLOGICAL_CONSTANT_COMPARE @@ -6787,6 +6814,12 @@ # undef XLAT_VAL_608 # undef XLAT_STR_609 # undef XLAT_VAL_609 +# undef XLAT_STR_610 +# undef XLAT_VAL_610 +# undef XLAT_STR_611 +# undef XLAT_VAL_611 +# undef XLAT_STR_612 +# undef XLAT_VAL_612 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff -Nru strace-6.1/src/xlat/evdev_keycode.in strace-6.2/src/xlat/evdev_keycode.in --- strace-6.1/src/xlat/evdev_keycode.in 2022-04-29 15:18:33.000000000 +0200 +++ strace-6.2/src/xlat/evdev_keycode.in 2023-01-21 09:00:00.000000000 +0100 @@ -520,6 +520,9 @@ KEY_KBD_LAYOUT_NEXT KEY_EMOJI_PICKER KEY_DICTATE +KEY_CAMERA_ACCESS_ENABLE +KEY_CAMERA_ACCESS_DISABLE +KEY_CAMERA_ACCESS_TOGGLE KEY_BRIGHTNESS_MIN KEY_BRIGHTNESS_MAX diff -Nru strace-6.1/src/xlat/kvm_cap.h strace-6.2/src/xlat/kvm_cap.h --- strace-6.1/src/xlat/kvm_cap.h 2022-12-12 19:28:53.000000000 +0100 +++ strace-6.2/src/xlat/kvm_cap.h 2023-02-26 22:20:48.000000000 +0100 @@ -1529,6 +1529,20 @@ #else # define KVM_CAP_DIRTY_LOG_RING_ACQ_REL 223 #endif +#if defined(KVM_CAP_S390_PROTECTED_ASYNC_DISABLE) || (defined(HAVE_DECL_KVM_CAP_S390_PROTECTED_ASYNC_DISABLE) && HAVE_DECL_KVM_CAP_S390_PROTECTED_ASYNC_DISABLE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KVM_CAP_S390_PROTECTED_ASYNC_DISABLE) == (224), "KVM_CAP_S390_PROTECTED_ASYNC_DISABLE != 224"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KVM_CAP_S390_PROTECTED_ASYNC_DISABLE 224 +#endif +#if defined(KVM_CAP_DIRTY_LOG_RING_WITH_BITMAP) || (defined(HAVE_DECL_KVM_CAP_DIRTY_LOG_RING_WITH_BITMAP) && HAVE_DECL_KVM_CAP_DIRTY_LOG_RING_WITH_BITMAP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KVM_CAP_DIRTY_LOG_RING_WITH_BITMAP) == (225), "KVM_CAP_DIRTY_LOG_RING_WITH_BITMAP != 225"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KVM_CAP_DIRTY_LOG_RING_WITH_BITMAP 225 +#endif #undef XLAT_PREV_VAL #ifndef XLAT_MACROS_ONLY @@ -2195,6 +2209,12 @@ [KVM_CAP_DIRTY_LOG_RING_ACQ_REL] = XLAT(KVM_CAP_DIRTY_LOG_RING_ACQ_REL), #define XLAT_VAL_217 ((unsigned) (KVM_CAP_DIRTY_LOG_RING_ACQ_REL)) #define XLAT_STR_217 STRINGIFY(KVM_CAP_DIRTY_LOG_RING_ACQ_REL) + [KVM_CAP_S390_PROTECTED_ASYNC_DISABLE] = XLAT(KVM_CAP_S390_PROTECTED_ASYNC_DISABLE), + #define XLAT_VAL_218 ((unsigned) (KVM_CAP_S390_PROTECTED_ASYNC_DISABLE)) + #define XLAT_STR_218 STRINGIFY(KVM_CAP_S390_PROTECTED_ASYNC_DISABLE) + [KVM_CAP_DIRTY_LOG_RING_WITH_BITMAP] = XLAT(KVM_CAP_DIRTY_LOG_RING_WITH_BITMAP), + #define XLAT_VAL_219 ((unsigned) (KVM_CAP_DIRTY_LOG_RING_WITH_BITMAP)) + #define XLAT_STR_219 STRINGIFY(KVM_CAP_DIRTY_LOG_RING_WITH_BITMAP) }; static const struct xlat kvm_cap[1] = { { @@ -2856,6 +2876,12 @@ # ifdef XLAT_VAL_217 | XLAT_VAL_217 # endif +# ifdef XLAT_VAL_218 + | XLAT_VAL_218 +# endif +# ifdef XLAT_VAL_219 + | XLAT_VAL_219 +# endif , .flags_strsz = 0 # ifdef XLAT_STR_0 @@ -3512,6 +3538,12 @@ # ifdef XLAT_STR_217 + sizeof(XLAT_STR_217) # endif +# ifdef XLAT_STR_218 + + sizeof(XLAT_STR_218) +# endif +# ifdef XLAT_STR_219 + + sizeof(XLAT_STR_219) +# endif , } }; DIAG_POP_IGNORE_TAUTOLOGICAL_CONSTANT_COMPARE @@ -3952,6 +3984,10 @@ # undef XLAT_VAL_216 # undef XLAT_STR_217 # undef XLAT_VAL_217 +# undef XLAT_STR_218 +# undef XLAT_VAL_218 +# undef XLAT_STR_219 +# undef XLAT_VAL_219 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff -Nru strace-6.1/src/xlat/kvm_cap.in strace-6.2/src/xlat/kvm_cap.in --- strace-6.1/src/xlat/kvm_cap.in 2022-12-11 09:00:00.000000000 +0100 +++ strace-6.2/src/xlat/kvm_cap.in 2023-02-09 09:00:00.000000000 +0100 @@ -217,3 +217,5 @@ KVM_CAP_S390_ZPCI_OP 221 KVM_CAP_S390_CPU_TOPOLOGY 222 KVM_CAP_DIRTY_LOG_RING_ACQ_REL 223 +KVM_CAP_S390_PROTECTED_ASYNC_DISABLE 224 +KVM_CAP_DIRTY_LOG_RING_WITH_BITMAP 225 diff -Nru strace-6.1/src/xlat/landlock_ruleset_access_fs.h strace-6.2/src/xlat/landlock_ruleset_access_fs.h --- strace-6.1/src/xlat/landlock_ruleset_access_fs.h 2022-12-12 19:28:51.000000000 +0100 +++ strace-6.2/src/xlat/landlock_ruleset_access_fs.h 2023-02-26 22:20:46.000000000 +0100 @@ -57,6 +57,9 @@ XLAT(LANDLOCK_ACCESS_FS_REFER), #define XLAT_VAL_13 ((unsigned) (LANDLOCK_ACCESS_FS_REFER)) #define XLAT_STR_13 STRINGIFY(LANDLOCK_ACCESS_FS_REFER) + XLAT(LANDLOCK_ACCESS_FS_TRUNCATE), + #define XLAT_VAL_14 ((unsigned) (LANDLOCK_ACCESS_FS_TRUNCATE)) + #define XLAT_STR_14 STRINGIFY(LANDLOCK_ACCESS_FS_TRUNCATE) }; static const struct xlat landlock_ruleset_access_fs[1] = { { @@ -106,6 +109,9 @@ # ifdef XLAT_VAL_13 | XLAT_VAL_13 # endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif , .flags_strsz = 0 # ifdef XLAT_STR_0 @@ -150,6 +156,9 @@ # ifdef XLAT_STR_13 + sizeof(XLAT_STR_13) # endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif , } }; DIAG_POP_IGNORE_TAUTOLOGICAL_CONSTANT_COMPARE @@ -182,6 +191,8 @@ # undef XLAT_VAL_12 # undef XLAT_STR_13 # undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff -Nru strace-6.1/src/xlat/landlock_ruleset_access_fs.in strace-6.2/src/xlat/landlock_ruleset_access_fs.in --- strace-6.1/src/xlat/landlock_ruleset_access_fs.in 2022-08-07 10:00:00.000000000 +0200 +++ strace-6.2/src/xlat/landlock_ruleset_access_fs.in 2023-02-10 09:00:00.000000000 +0100 @@ -13,3 +13,4 @@ LANDLOCK_ACCESS_FS_MAKE_BLOCK LANDLOCK_ACCESS_FS_MAKE_SYM LANDLOCK_ACCESS_FS_REFER +LANDLOCK_ACCESS_FS_TRUNCATE diff -Nru strace-6.1/src/xlat/Makemodule.am strace-6.2/src/xlat/Makemodule.am --- strace-6.1/src/xlat/Makemodule.am 2022-12-12 19:28:52.000000000 +0100 +++ strace-6.2/src/xlat/Makemodule.am 2023-02-26 22:20:47.000000000 +0100 @@ -1,5 +1,5 @@ -XLAT_INPUT_FILES = xlat/access_modes.in xlat/addrfams.in xlat/adjtimex_modes.in xlat/adjtimex_state.in xlat/adjtimex_status.in xlat/advise.in xlat/af_packet_types.in xlat/af_packet_versions.in xlat/aio_cmds.in xlat/aio_iocb_flags.in xlat/alg_sockaddr_flags.in xlat/alpha_trap_codes.in xlat/archvals.in xlat/arp_hardware_types.in xlat/at_flags.in xlat/at_statx_sync_types.in xlat/atomic_ops.in xlat/audit_arch.in xlat/ax25_protocols.in xlat/baud_options.in xlat/bdaddr_types.in xlat/blkpg_ops.in xlat/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_link_create_kprobe_multi_flags.in xlat/bpf_map_flags.in xlat/bpf_map_lookup_elem_flags.in xlat/bpf_map_types.in xlat/bpf_map_update_elem_flags.in xlat/bpf_miscop.in xlat/bpf_mode.in xlat/bpf_op_alu.in xlat/bpf_op_jmp.in xlat/bpf_prog_flags.in xlat/bpf_prog_types.in xlat/bpf_query_flags.in xlat/bpf_rval.in xlat/bpf_size.in xlat/bpf_src.in xlat/bpf_task_fd_type.in xlat/bpf_test_run_flags.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_csum_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_fs_info_flags.in xlat/btrfs_key_types.in xlat/btrfs_logical_ino_args_flags.in xlat/btrfs_qgroup_ctl_cmds.in xlat/btrfs_qgroup_inherit_flags.in xlat/btrfs_qgroup_limit_flags.in xlat/btrfs_qgroup_status_flags.in xlat/btrfs_scrub_flags.in xlat/btrfs_send_flags.in xlat/btrfs_snap_flags_v2.in xlat/btrfs_space_info_flags.in xlat/btrfs_tree_objectids.in xlat/cacheflush_flags.in xlat/cacheflush_scope.in xlat/caif_protocols.in xlat/can_protocols.in xlat/cap.in xlat/cap_mask0.in xlat/cap_mask1.in xlat/cap_version.in xlat/clockflags.in xlat/clocknames.in xlat/clone3_flags.in xlat/clone_flags.in xlat/close_range_flags.in xlat/compat_ptrace_cmds.in xlat/counter_ioctl_component_types.in xlat/counter_ioctl_event_types.in xlat/counter_ioctl_scopes.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/elf_em.in xlat/epollctls.in xlat/epollevents.in xlat/epollflags.in xlat/ethernet_protocols.in xlat/evdev_abs.in xlat/evdev_autorepeat.in xlat/evdev_ev.in xlat/evdev_ff_status.in xlat/evdev_ff_types.in xlat/evdev_keycode.in xlat/evdev_leds.in xlat/evdev_misc.in xlat/evdev_mtslots.in xlat/evdev_prop.in xlat/evdev_relative_axes.in xlat/evdev_snd.in xlat/evdev_switch.in xlat/f_owner_types.in xlat/f_seals.in xlat/faccessat_flags.in xlat/falloc_flags.in xlat/fan_classes.in xlat/fan_event_flags.in xlat/fan_init_flags.in xlat/fan_mark_flags.in xlat/fcntlcmds.in xlat/fdb_notify_flags.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/fs_ioc_flags.in xlat/fs_xflags.in xlat/fsconfig_cmds.in xlat/fsmagic.in xlat/fsmount_attr_flags.in xlat/fsmount_flags.in xlat/fsopen_flags.in xlat/fspick_flags.in xlat/futex_waiter_flags.in xlat/futexbitset.in xlat/futexops.in xlat/futexwakecmps.in xlat/futexwakeops.in xlat/get_mempolicy_flags.in xlat/getrandom_flags.in xlat/getsock_ip_options.in xlat/getsock_ipv6_options.in xlat/getsock_options.in xlat/gpio_event_flags.in xlat/gpio_handle_flags.in xlat/gpio_line_flags.in xlat/gpio_v2_line_attr_ids.in xlat/gpio_v2_line_flags.in xlat/hci_channels.in xlat/hdio_busstates.in xlat/hdio_drive_cmds.in xlat/hdio_ide_nice.in xlat/hw_breakpoint_len.in xlat/hw_breakpoint_type.in xlat/icmp_filter_flags.in xlat/ieee802154_addr_types.in xlat/ieee802154_addrs.in xlat/ieee802154_pan_ids.in xlat/if_dqblk_valid.in xlat/if_dqinfo_flags.in xlat/if_dqinfo_valid.in xlat/ifaddrflags.in xlat/iffflags.in xlat/ifstats_af_spec_mpls_attrs.in xlat/ifstats_attr_flags.in xlat/ifstats_attrs.in xlat/ifstats_offload_attrs.in xlat/ifstats_xstats_bond_3ad_attrs.in xlat/ifstats_xstats_bond_attrs.in xlat/ifstats_xstats_bridge_attrs.in xlat/ifstats_xstats_bridge_mcast_indices.in xlat/ifstats_xstats_type_attrs.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_bpf_storage_attrs.in xlat/inet_diag_bpf_storages_attrs.in xlat/inet_diag_bytecodes.in xlat/inet_diag_extended_flags.in xlat/inet_diag_req_attrs.in xlat/inet_diag_shutdown_flags.in xlat/inet_diag_ulp_info_attrs.in xlat/inet_diag_ulp_info_mptcp_attrs.in xlat/inet_diag_ulp_info_tls_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/kd_default_led_flags.in xlat/kd_font_flags.in xlat/kd_font_ops.in xlat/kd_ioctl_cmds.in xlat/kd_kbd_modes.in xlat/kd_kbd_types.in xlat/kd_key_ascii_keys.in xlat/kd_key_brl_keys.in xlat/kd_key_cur_keys.in xlat/kd_key_dead_keys.in xlat/kd_key_fn_key_vals.in xlat/kd_key_fn_keys.in xlat/kd_key_lock_keys.in xlat/kd_key_pad_keys.in xlat/kd_key_shift_keys.in xlat/kd_key_slock_keys.in xlat/kd_key_spec_keys.in xlat/kd_key_tables.in xlat/kd_key_types.in xlat/kd_keymap_flags.in xlat/kd_led_flags.in xlat/kd_meta_vals.in xlat/kd_modes.in xlat/kexec_arch_values.in xlat/kexec_file_load_flags.in xlat/kexec_load_flags.in xlat/key_perms.in xlat/key_reqkeys.in xlat/key_spec.in xlat/keyctl_caps0.in xlat/keyctl_caps1.in xlat/keyctl_commands.in xlat/keyctl_move_flags.in xlat/keyctl_pkey_ops.in xlat/kvm_cap.in xlat/kvm_cpuid_flags.in xlat/kvm_exit_reason.in xlat/kvm_mem_flags.in xlat/landlock_create_ruleset_flags.in xlat/landlock_rule_types.in xlat/landlock_ruleset_access_fs.in xlat/lirc_features.in xlat/lirc_modes.in xlat/lockfcmds.in xlat/loop_crypt_type_options.in xlat/loop_flags_options.in xlat/lwtunnel_encap_types.in xlat/madvise_cmds.in xlat/mbind_flags.in xlat/mctl_sync.in xlat/mctp_addrs.in xlat/mctp_nets.in xlat/mdb_flags.in xlat/mdb_states.in xlat/membarrier_cmds.in xlat/membarrier_flags.in xlat/memfd_create_flags.in xlat/memfd_secret_flags.in xlat/mlock_flags.in xlat/mlockall_flags.in xlat/mmap_flags.in xlat/mmap_prot.in xlat/modem_flags.in xlat/modetypes.in xlat/module_init_flags.in xlat/mount_attr_attr.in xlat/mount_attr_propagation.in xlat/mount_flags.in xlat/mount_setattr_flags.in xlat/move_mount_flags.in xlat/move_pages_flags.in xlat/mpol_mode_flags.in xlat/mpol_modes.in xlat/mptcp_subflow_flags.in xlat/mq_attr_flags.in xlat/mremap_flags.in xlat/msg_flags.in xlat/msgctl_flags.in xlat/mtd_file_mode_options.in xlat/mtd_flags_options.in xlat/mtd_mode_options.in xlat/mtd_nandecc_options.in xlat/mtd_otp_options.in xlat/mtd_type_options.in xlat/multicast_router_types.in xlat/name_to_handle_at_flags.in xlat/nbd_ioctl_cmds.in xlat/nbd_ioctl_flags.in xlat/neighbor_cache_entry_ext_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_hook_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/nfc_saps.in xlat/nfc_sockaddr_protocols.in xlat/nl_audit_types.in xlat/nl_bridge_vlan_flags.in xlat/nl_crypto_types.in xlat/nl_netfilter_msg_types.in xlat/nl_netfilter_subsys_ids.in xlat/nl_route_types.in xlat/nl_selinux_types.in xlat/nl_sock_diag_types.in xlat/nl_xfrm_types.in xlat/nlmsgerr_attrs.in xlat/notifyflags.in xlat/nt_descriptor_types.in xlat/numa_node.in xlat/open_access_modes.in xlat/open_mode_flags.in xlat/open_resolve_flags.in xlat/open_tree_flags.in xlat/packet_diag_attrs.in xlat/packet_diag_info_flags.in xlat/packet_diag_show.in xlat/packet_mreq_type.in xlat/perf_attr_size.in xlat/perf_branch_sample_type.in xlat/perf_event_open_flags.in xlat/perf_event_read_format.in xlat/perf_event_sample_format.in xlat/perf_hw_cache_id.in xlat/perf_hw_cache_op_id.in xlat/perf_hw_cache_op_result_id.in xlat/perf_hw_id.in xlat/perf_ioctl_cmds.in xlat/perf_ioctl_flags.in xlat/perf_sw_ids.in xlat/perf_type_id.in xlat/personality_flags.in xlat/personality_types.in xlat/phonet_protocols.in xlat/pidfd_open_flags.in xlat/pkey_access.in xlat/pollflags.in xlat/pr_cap_ambient.in xlat/pr_dumpable.in xlat/pr_fp_mode.in xlat/pr_mce_kill.in xlat/pr_mce_kill_policy.in xlat/pr_pac_enabled_keys.in xlat/pr_pac_keys.in xlat/pr_sched_core_cmds.in xlat/pr_sched_core_pidtypes.in xlat/pr_set_mm.in xlat/pr_set_vma.in xlat/pr_sme_vl_flags.in xlat/pr_spec_cmds.in xlat/pr_spec_get_store_bypass_flags.in xlat/pr_spec_set_store_bypass_flags.in xlat/pr_sud_cmds.in xlat/pr_sve_vl_flags.in xlat/pr_tagged_addr_enable.in xlat/pr_tagged_addr_mte_tcf.in xlat/pr_tsc.in xlat/pr_unalign_flags.in xlat/prctl_options.in xlat/priorities.in xlat/ptp_extts_flags.in xlat/ptp_perout_flags.in xlat/ptp_pin_funcs.in xlat/ptrace_cmds.in xlat/ptrace_events.in xlat/ptrace_peeksiginfo_flags.in xlat/ptrace_setoptions_flags.in xlat/ptrace_syscall_info_op.in xlat/qipcrtr_nodes.in xlat/qipcrtr_ports.in xlat/quota_formats.in xlat/quotacmds.in xlat/quotatypes.in xlat/random_ioctl_cmds.in xlat/rename_flags.in xlat/resource_flags.in xlat/resources.in xlat/riscv_flush_icache_flags.in xlat/route_nexthop_flags.in xlat/routing_flags.in xlat/routing_protocols.in xlat/routing_scopes.in xlat/routing_table_ids.in xlat/routing_types.in xlat/rtc_backup_switch_modes.in xlat/rtc_feature_bits.in xlat/rtc_features.in xlat/rtc_ioctl_cmds.in xlat/rtc_params.in xlat/rtc_vl_flags.in xlat/rtnl_addr_attrs.in xlat/rtnl_addrlabel_attrs.in xlat/rtnl_dcb_attrs.in xlat/rtnl_family.in xlat/rtnl_ifla_af_spec_bridge_attrs.in xlat/rtnl_ifla_af_spec_bridge_vlan_tunnel_info_attrs.in xlat/rtnl_ifla_af_spec_inet6_attrs.in xlat/rtnl_ifla_af_spec_inet_attrs.in xlat/rtnl_ifla_af_spec_mctp_attrs.in xlat/rtnl_ifla_br_boolopt_flags.in xlat/rtnl_ifla_br_boolopts.in xlat/rtnl_ifla_br_mcast_querier_attrs.in xlat/rtnl_ifla_bridge_flags.in xlat/rtnl_ifla_bridge_modes.in xlat/rtnl_ifla_brport_attrs.in xlat/rtnl_ifla_events.in xlat/rtnl_ifla_ext_filter_flags.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_proto_down_reason_attrs.in xlat/rtnl_ifla_vf_info_attrs.in xlat/rtnl_ifla_vf_link_states.in xlat/rtnl_ifla_vf_port_attrs.in xlat/rtnl_ifla_vf_stats_attrs.in xlat/rtnl_ifla_vf_vlan_list_attrs.in xlat/rtnl_ifla_vfinfo_list_attrs.in xlat/rtnl_ifla_xdp_attached_mode.in xlat/rtnl_ifla_xdp_attrs.in xlat/rtnl_ip6mra_creport_attr.in xlat/rtnl_ip6mra_msg_types.in xlat/rtnl_ipmra_creport_attr.in xlat/rtnl_ipmra_msg_types.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_neigh_fdb_ext_attrs.in xlat/rtnl_neightbl_attrs.in xlat/rtnl_neightbl_parms_attrs.in xlat/rtnl_netconf_attrs.in xlat/rtnl_nexthop_attrs.in xlat/rtnl_nexthop_grp_types.in xlat/rtnl_nha_res_bucket_attrs.in xlat/rtnl_nha_res_group_attrs.in xlat/rtnl_nsid_attrs.in xlat/rtnl_route_attrs.in xlat/rtnl_rta_metrics_attrs.in xlat/rtnl_rule_attrs.in xlat/rtnl_tc_action_attrs.in xlat/rtnl_tc_attrs.in xlat/rtnl_tca_act_flags.in xlat/rtnl_tca_act_hw_stats.in xlat/rtnl_tca_stab_attrs.in xlat/rtnl_tca_stats_attrs.in xlat/rwf_flags.in xlat/rxrpc_services.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_ioctl_addfd_flags.in xlat/seccomp_ioctl_resp_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/sigtrap_perf_flags.in xlat/skf_ad.in xlat/skf_off.in xlat/smc_decl_codes.in xlat/smc_diag_attrs.in xlat/smc_diag_extended_flags.in xlat/smc_diag_mode.in xlat/smc_link_group_roles.in xlat/smc_protocols.in xlat/smc_states.in xlat/snmp_icmp6_stats.in xlat/snmp_ip_stats.in xlat/sock_alg_options.in xlat/sock_ax25_options.in xlat/sock_bluetooth_options.in xlat/sock_caif_options.in xlat/sock_can_raw_options.in xlat/sock_dccp_options.in xlat/sock_ip_options.in xlat/sock_ipv6_options.in xlat/sock_ipx_options.in xlat/sock_irda_options.in xlat/sock_iucv_options.in xlat/sock_kcm_options.in xlat/sock_llc_options.in xlat/sock_netlink_options.in xlat/sock_nfcllcp_options.in xlat/sock_options.in xlat/sock_packet_options.in xlat/sock_pnp_options.in xlat/sock_pppol2tp_options.in xlat/sock_raw_options.in xlat/sock_rds_options.in xlat/sock_rxrpc_options.in xlat/sock_sctp_options.in xlat/sock_shutdown_flags.in xlat/sock_tcp_options.in xlat/sock_tipc_options.in xlat/sock_tls_options.in xlat/sock_type_flags.in xlat/sock_udp_options.in xlat/sock_vsock_options.in xlat/sock_xdp_options.in xlat/socketcalls.in xlat/socketlayers.in xlat/sockopt_txrehash_vals.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/syslog_action_type.in xlat/syslog_console_levels.in xlat/sysmips_operations.in xlat/tcflsh_options.in xlat/tcp_state_flags.in xlat/tcp_states.in xlat/tcxonc_options.in xlat/tee_ioctl_gen_caps.in xlat/tee_ioctl_impl_ids.in xlat/tee_ioctl_login_types.in xlat/tee_ioctl_max_arg_size.in xlat/tee_ioctl_optee_caps.in xlat/tee_ioctl_origins.in xlat/tee_ioctl_param_attr_types.in xlat/tee_ioctl_shm_flags.in xlat/term_cflags.in xlat/term_cflags_csize.in xlat/term_iflags.in xlat/term_lflags.in xlat/term_line_discs.in xlat/term_oflags.in xlat/term_oflags_bsdly.in xlat/term_oflags_crdly.in xlat/term_oflags_ffdly.in xlat/term_oflags_nldly.in xlat/term_oflags_tabdly.in xlat/term_oflags_vtdly.in xlat/termio_cc.in xlat/termios_cc.in xlat/timerfdflags.in xlat/tls_info_ciphers.in xlat/tls_info_configs.in xlat/tls_info_versions.in xlat/tun_device_types.in xlat/ubi_data_types.in xlat/ubi_volume_flags.in xlat/ubi_volume_props.in xlat/ubi_volume_types.in xlat/uffd_api_features.in xlat/uffd_api_flags.in xlat/uffd_copy_flags.in xlat/uffd_flags.in xlat/uffd_register_ioctl_flags.in xlat/uffd_register_mode_flags.in xlat/uffd_zeropage_flags.in xlat/umount_flags.in xlat/unix_diag_attrs.in xlat/unix_diag_show.in xlat/unshare_flags.in xlat/uring_enter_flags.in xlat/uring_files_update_fds.in xlat/uring_iowq_acct.in xlat/uring_op_flags.in xlat/uring_ops.in xlat/uring_register_opcodes.in xlat/uring_register_rsrc_flags.in xlat/uring_restriction_opcodes.in xlat/uring_setup_features.in xlat/uring_setup_flags.in xlat/uring_sqe_flags.in xlat/usagewho.in xlat/v4l2_buf_flags.in xlat/v4l2_buf_flags_ts_src.in xlat/v4l2_buf_flags_ts_type.in xlat/v4l2_buf_types.in xlat/v4l2_capture_modes.in xlat/v4l2_colorspaces.in xlat/v4l2_control_classes.in xlat/v4l2_control_flags.in xlat/v4l2_control_id_bases.in xlat/v4l2_control_ids.in xlat/v4l2_control_query_flags.in xlat/v4l2_control_types.in xlat/v4l2_device_capabilities_flags.in xlat/v4l2_fields.in xlat/v4l2_format_description_flags.in xlat/v4l2_frameinterval_types.in xlat/v4l2_framesize_types.in xlat/v4l2_input_types.in xlat/v4l2_memories.in xlat/v4l2_meta_fmts.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/vsock_cids.in xlat/vsock_flags.in xlat/vsock_ports.in xlat/wait4_options.in xlat/waitid_types.in xlat/watchdog_ioctl_cmds.in xlat/whence_codes.in xlat/x86_xfeature_bits.in xlat/x86_xfeatures.in xlat/xattrflags.in xlat/xdp_flags.in xlat/xdp_sockaddr_flags.in xlat/xfs_dqblk_flags.in xlat/xfs_quota_flags.in -XLAT_HEADER_FILES = xlat/access_modes.h xlat/addrfams.h xlat/adjtimex_modes.h xlat/adjtimex_state.h xlat/adjtimex_status.h xlat/advise.h xlat/af_packet_types.h xlat/af_packet_versions.h xlat/aio_cmds.h xlat/aio_iocb_flags.h xlat/alg_sockaddr_flags.h xlat/alpha_trap_codes.h xlat/archvals.h xlat/arp_hardware_types.h xlat/at_flags.h xlat/at_statx_sync_types.h xlat/atomic_ops.h xlat/audit_arch.h xlat/ax25_protocols.h xlat/baud_options.h xlat/bdaddr_types.h xlat/blkpg_ops.h xlat/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_link_create_kprobe_multi_flags.h xlat/bpf_map_flags.h xlat/bpf_map_lookup_elem_flags.h xlat/bpf_map_types.h xlat/bpf_map_update_elem_flags.h xlat/bpf_miscop.h xlat/bpf_mode.h xlat/bpf_op_alu.h xlat/bpf_op_jmp.h xlat/bpf_prog_flags.h xlat/bpf_prog_types.h xlat/bpf_query_flags.h xlat/bpf_rval.h xlat/bpf_size.h xlat/bpf_src.h xlat/bpf_task_fd_type.h xlat/bpf_test_run_flags.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_csum_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_fs_info_flags.h xlat/btrfs_key_types.h xlat/btrfs_logical_ino_args_flags.h xlat/btrfs_qgroup_ctl_cmds.h xlat/btrfs_qgroup_inherit_flags.h xlat/btrfs_qgroup_limit_flags.h xlat/btrfs_qgroup_status_flags.h xlat/btrfs_scrub_flags.h xlat/btrfs_send_flags.h xlat/btrfs_snap_flags_v2.h xlat/btrfs_space_info_flags.h xlat/btrfs_tree_objectids.h xlat/cacheflush_flags.h xlat/cacheflush_scope.h xlat/caif_protocols.h xlat/can_protocols.h xlat/cap.h xlat/cap_mask0.h xlat/cap_mask1.h xlat/cap_version.h xlat/clockflags.h xlat/clocknames.h xlat/clone3_flags.h xlat/clone_flags.h xlat/close_range_flags.h xlat/compat_ptrace_cmds.h xlat/counter_ioctl_component_types.h xlat/counter_ioctl_event_types.h xlat/counter_ioctl_scopes.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/elf_em.h xlat/epollctls.h xlat/epollevents.h xlat/epollflags.h xlat/ethernet_protocols.h xlat/evdev_abs.h xlat/evdev_autorepeat.h xlat/evdev_ev.h xlat/evdev_ff_status.h xlat/evdev_ff_types.h xlat/evdev_keycode.h xlat/evdev_leds.h xlat/evdev_misc.h xlat/evdev_mtslots.h xlat/evdev_prop.h xlat/evdev_relative_axes.h xlat/evdev_snd.h xlat/evdev_switch.h xlat/f_owner_types.h xlat/f_seals.h xlat/faccessat_flags.h xlat/falloc_flags.h xlat/fan_classes.h xlat/fan_event_flags.h xlat/fan_init_flags.h xlat/fan_mark_flags.h xlat/fcntlcmds.h xlat/fdb_notify_flags.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/fs_ioc_flags.h xlat/fs_xflags.h xlat/fsconfig_cmds.h xlat/fsmagic.h xlat/fsmount_attr_flags.h xlat/fsmount_flags.h xlat/fsopen_flags.h xlat/fspick_flags.h xlat/futex_waiter_flags.h xlat/futexbitset.h xlat/futexops.h xlat/futexwakecmps.h xlat/futexwakeops.h xlat/get_mempolicy_flags.h xlat/getrandom_flags.h xlat/getsock_ip_options.h xlat/getsock_ipv6_options.h xlat/getsock_options.h xlat/gpio_event_flags.h xlat/gpio_handle_flags.h xlat/gpio_line_flags.h xlat/gpio_v2_line_attr_ids.h xlat/gpio_v2_line_flags.h xlat/hci_channels.h xlat/hdio_busstates.h xlat/hdio_drive_cmds.h xlat/hdio_ide_nice.h xlat/hw_breakpoint_len.h xlat/hw_breakpoint_type.h xlat/icmp_filter_flags.h xlat/ieee802154_addr_types.h xlat/ieee802154_addrs.h xlat/ieee802154_pan_ids.h xlat/if_dqblk_valid.h xlat/if_dqinfo_flags.h xlat/if_dqinfo_valid.h xlat/ifaddrflags.h xlat/iffflags.h xlat/ifstats_af_spec_mpls_attrs.h xlat/ifstats_attr_flags.h xlat/ifstats_attrs.h xlat/ifstats_offload_attrs.h xlat/ifstats_xstats_bond_3ad_attrs.h xlat/ifstats_xstats_bond_attrs.h xlat/ifstats_xstats_bridge_attrs.h xlat/ifstats_xstats_bridge_mcast_indices.h xlat/ifstats_xstats_type_attrs.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_bpf_storage_attrs.h xlat/inet_diag_bpf_storages_attrs.h xlat/inet_diag_bytecodes.h xlat/inet_diag_extended_flags.h xlat/inet_diag_req_attrs.h xlat/inet_diag_shutdown_flags.h xlat/inet_diag_ulp_info_attrs.h xlat/inet_diag_ulp_info_mptcp_attrs.h xlat/inet_diag_ulp_info_tls_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/kd_default_led_flags.h xlat/kd_font_flags.h xlat/kd_font_ops.h xlat/kd_ioctl_cmds.h xlat/kd_kbd_modes.h xlat/kd_kbd_types.h xlat/kd_key_ascii_keys.h xlat/kd_key_brl_keys.h xlat/kd_key_cur_keys.h xlat/kd_key_dead_keys.h xlat/kd_key_fn_key_vals.h xlat/kd_key_fn_keys.h xlat/kd_key_lock_keys.h xlat/kd_key_pad_keys.h xlat/kd_key_shift_keys.h xlat/kd_key_slock_keys.h xlat/kd_key_spec_keys.h xlat/kd_key_tables.h xlat/kd_key_types.h xlat/kd_keymap_flags.h xlat/kd_led_flags.h xlat/kd_meta_vals.h xlat/kd_modes.h xlat/kexec_arch_values.h xlat/kexec_file_load_flags.h xlat/kexec_load_flags.h xlat/key_perms.h xlat/key_reqkeys.h xlat/key_spec.h xlat/keyctl_caps0.h xlat/keyctl_caps1.h xlat/keyctl_commands.h xlat/keyctl_move_flags.h xlat/keyctl_pkey_ops.h xlat/kvm_cap.h xlat/kvm_cpuid_flags.h xlat/kvm_exit_reason.h xlat/kvm_mem_flags.h xlat/landlock_create_ruleset_flags.h xlat/landlock_rule_types.h xlat/landlock_ruleset_access_fs.h xlat/lirc_features.h xlat/lirc_modes.h xlat/lockfcmds.h xlat/loop_crypt_type_options.h xlat/loop_flags_options.h xlat/lwtunnel_encap_types.h xlat/madvise_cmds.h xlat/mbind_flags.h xlat/mctl_sync.h xlat/mctp_addrs.h xlat/mctp_nets.h xlat/mdb_flags.h xlat/mdb_states.h xlat/membarrier_cmds.h xlat/membarrier_flags.h xlat/memfd_create_flags.h xlat/memfd_secret_flags.h xlat/mlock_flags.h xlat/mlockall_flags.h xlat/mmap_flags.h xlat/mmap_prot.h xlat/modem_flags.h xlat/modetypes.h xlat/module_init_flags.h xlat/mount_attr_attr.h xlat/mount_attr_propagation.h xlat/mount_flags.h xlat/mount_setattr_flags.h xlat/move_mount_flags.h xlat/move_pages_flags.h xlat/mpol_mode_flags.h xlat/mpol_modes.h xlat/mptcp_subflow_flags.h xlat/mq_attr_flags.h xlat/mremap_flags.h xlat/msg_flags.h xlat/msgctl_flags.h xlat/mtd_file_mode_options.h xlat/mtd_flags_options.h xlat/mtd_mode_options.h xlat/mtd_nandecc_options.h xlat/mtd_otp_options.h xlat/mtd_type_options.h xlat/multicast_router_types.h xlat/name_to_handle_at_flags.h xlat/nbd_ioctl_cmds.h xlat/nbd_ioctl_flags.h xlat/neighbor_cache_entry_ext_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_hook_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/nfc_saps.h xlat/nfc_sockaddr_protocols.h xlat/nl_audit_types.h xlat/nl_bridge_vlan_flags.h xlat/nl_crypto_types.h xlat/nl_netfilter_msg_types.h xlat/nl_netfilter_subsys_ids.h xlat/nl_route_types.h xlat/nl_selinux_types.h xlat/nl_sock_diag_types.h xlat/nl_xfrm_types.h xlat/nlmsgerr_attrs.h xlat/notifyflags.h xlat/nt_descriptor_types.h xlat/numa_node.h xlat/open_access_modes.h xlat/open_mode_flags.h xlat/open_resolve_flags.h xlat/open_tree_flags.h xlat/packet_diag_attrs.h xlat/packet_diag_info_flags.h xlat/packet_diag_show.h xlat/packet_mreq_type.h xlat/perf_attr_size.h xlat/perf_branch_sample_type.h xlat/perf_event_open_flags.h xlat/perf_event_read_format.h xlat/perf_event_sample_format.h xlat/perf_hw_cache_id.h xlat/perf_hw_cache_op_id.h xlat/perf_hw_cache_op_result_id.h xlat/perf_hw_id.h xlat/perf_ioctl_cmds.h xlat/perf_ioctl_flags.h xlat/perf_sw_ids.h xlat/perf_type_id.h xlat/personality_flags.h xlat/personality_types.h xlat/phonet_protocols.h xlat/pidfd_open_flags.h xlat/pkey_access.h xlat/pollflags.h xlat/pr_cap_ambient.h xlat/pr_dumpable.h xlat/pr_fp_mode.h xlat/pr_mce_kill.h xlat/pr_mce_kill_policy.h xlat/pr_pac_enabled_keys.h xlat/pr_pac_keys.h xlat/pr_sched_core_cmds.h xlat/pr_sched_core_pidtypes.h xlat/pr_set_mm.h xlat/pr_set_vma.h xlat/pr_sme_vl_flags.h xlat/pr_spec_cmds.h xlat/pr_spec_get_store_bypass_flags.h xlat/pr_spec_set_store_bypass_flags.h xlat/pr_sud_cmds.h xlat/pr_sve_vl_flags.h xlat/pr_tagged_addr_enable.h xlat/pr_tagged_addr_mte_tcf.h xlat/pr_tsc.h xlat/pr_unalign_flags.h xlat/prctl_options.h xlat/priorities.h xlat/ptp_extts_flags.h xlat/ptp_perout_flags.h xlat/ptp_pin_funcs.h xlat/ptrace_cmds.h xlat/ptrace_events.h xlat/ptrace_peeksiginfo_flags.h xlat/ptrace_setoptions_flags.h xlat/ptrace_syscall_info_op.h xlat/qipcrtr_nodes.h xlat/qipcrtr_ports.h xlat/quota_formats.h xlat/quotacmds.h xlat/quotatypes.h xlat/random_ioctl_cmds.h xlat/rename_flags.h xlat/resource_flags.h xlat/resources.h xlat/riscv_flush_icache_flags.h xlat/route_nexthop_flags.h xlat/routing_flags.h xlat/routing_protocols.h xlat/routing_scopes.h xlat/routing_table_ids.h xlat/routing_types.h xlat/rtc_backup_switch_modes.h xlat/rtc_feature_bits.h xlat/rtc_features.h xlat/rtc_ioctl_cmds.h xlat/rtc_params.h xlat/rtc_vl_flags.h xlat/rtnl_addr_attrs.h xlat/rtnl_addrlabel_attrs.h xlat/rtnl_dcb_attrs.h xlat/rtnl_family.h xlat/rtnl_ifla_af_spec_bridge_attrs.h xlat/rtnl_ifla_af_spec_bridge_vlan_tunnel_info_attrs.h xlat/rtnl_ifla_af_spec_inet6_attrs.h xlat/rtnl_ifla_af_spec_inet_attrs.h xlat/rtnl_ifla_af_spec_mctp_attrs.h xlat/rtnl_ifla_br_boolopt_flags.h xlat/rtnl_ifla_br_boolopts.h xlat/rtnl_ifla_br_mcast_querier_attrs.h xlat/rtnl_ifla_bridge_flags.h xlat/rtnl_ifla_bridge_modes.h xlat/rtnl_ifla_brport_attrs.h xlat/rtnl_ifla_events.h xlat/rtnl_ifla_ext_filter_flags.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_proto_down_reason_attrs.h xlat/rtnl_ifla_vf_info_attrs.h xlat/rtnl_ifla_vf_link_states.h xlat/rtnl_ifla_vf_port_attrs.h xlat/rtnl_ifla_vf_stats_attrs.h xlat/rtnl_ifla_vf_vlan_list_attrs.h xlat/rtnl_ifla_vfinfo_list_attrs.h xlat/rtnl_ifla_xdp_attached_mode.h xlat/rtnl_ifla_xdp_attrs.h xlat/rtnl_ip6mra_creport_attr.h xlat/rtnl_ip6mra_msg_types.h xlat/rtnl_ipmra_creport_attr.h xlat/rtnl_ipmra_msg_types.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_neigh_fdb_ext_attrs.h xlat/rtnl_neightbl_attrs.h xlat/rtnl_neightbl_parms_attrs.h xlat/rtnl_netconf_attrs.h xlat/rtnl_nexthop_attrs.h xlat/rtnl_nexthop_grp_types.h xlat/rtnl_nha_res_bucket_attrs.h xlat/rtnl_nha_res_group_attrs.h xlat/rtnl_nsid_attrs.h xlat/rtnl_route_attrs.h xlat/rtnl_rta_metrics_attrs.h xlat/rtnl_rule_attrs.h xlat/rtnl_tc_action_attrs.h xlat/rtnl_tc_attrs.h xlat/rtnl_tca_act_flags.h xlat/rtnl_tca_act_hw_stats.h xlat/rtnl_tca_stab_attrs.h xlat/rtnl_tca_stats_attrs.h xlat/rwf_flags.h xlat/rxrpc_services.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_ioctl_addfd_flags.h xlat/seccomp_ioctl_resp_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/sigtrap_perf_flags.h xlat/skf_ad.h xlat/skf_off.h xlat/smc_decl_codes.h xlat/smc_diag_attrs.h xlat/smc_diag_extended_flags.h xlat/smc_diag_mode.h xlat/smc_link_group_roles.h xlat/smc_protocols.h xlat/smc_states.h xlat/snmp_icmp6_stats.h xlat/snmp_ip_stats.h xlat/sock_alg_options.h xlat/sock_ax25_options.h xlat/sock_bluetooth_options.h xlat/sock_caif_options.h xlat/sock_can_raw_options.h xlat/sock_dccp_options.h xlat/sock_ip_options.h xlat/sock_ipv6_options.h xlat/sock_ipx_options.h xlat/sock_irda_options.h xlat/sock_iucv_options.h xlat/sock_kcm_options.h xlat/sock_llc_options.h xlat/sock_netlink_options.h xlat/sock_nfcllcp_options.h xlat/sock_options.h xlat/sock_packet_options.h xlat/sock_pnp_options.h xlat/sock_pppol2tp_options.h xlat/sock_raw_options.h xlat/sock_rds_options.h xlat/sock_rxrpc_options.h xlat/sock_sctp_options.h xlat/sock_shutdown_flags.h xlat/sock_tcp_options.h xlat/sock_tipc_options.h xlat/sock_tls_options.h xlat/sock_type_flags.h xlat/sock_udp_options.h xlat/sock_vsock_options.h xlat/sock_xdp_options.h xlat/socketcalls.h xlat/socketlayers.h xlat/sockopt_txrehash_vals.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/syslog_action_type.h xlat/syslog_console_levels.h xlat/sysmips_operations.h xlat/tcflsh_options.h xlat/tcp_state_flags.h xlat/tcp_states.h xlat/tcxonc_options.h xlat/tee_ioctl_gen_caps.h xlat/tee_ioctl_impl_ids.h xlat/tee_ioctl_login_types.h xlat/tee_ioctl_max_arg_size.h xlat/tee_ioctl_optee_caps.h xlat/tee_ioctl_origins.h xlat/tee_ioctl_param_attr_types.h xlat/tee_ioctl_shm_flags.h xlat/term_cflags.h xlat/term_cflags_csize.h xlat/term_iflags.h xlat/term_lflags.h xlat/term_line_discs.h xlat/term_oflags.h xlat/term_oflags_bsdly.h xlat/term_oflags_crdly.h xlat/term_oflags_ffdly.h xlat/term_oflags_nldly.h xlat/term_oflags_tabdly.h xlat/term_oflags_vtdly.h xlat/termio_cc.h xlat/termios_cc.h xlat/timerfdflags.h xlat/tls_info_ciphers.h xlat/tls_info_configs.h xlat/tls_info_versions.h xlat/tun_device_types.h xlat/ubi_data_types.h xlat/ubi_volume_flags.h xlat/ubi_volume_props.h xlat/ubi_volume_types.h xlat/uffd_api_features.h xlat/uffd_api_flags.h xlat/uffd_copy_flags.h xlat/uffd_flags.h xlat/uffd_register_ioctl_flags.h xlat/uffd_register_mode_flags.h xlat/uffd_zeropage_flags.h xlat/umount_flags.h xlat/unix_diag_attrs.h xlat/unix_diag_show.h xlat/unshare_flags.h xlat/uring_enter_flags.h xlat/uring_files_update_fds.h xlat/uring_iowq_acct.h xlat/uring_op_flags.h xlat/uring_ops.h xlat/uring_register_opcodes.h xlat/uring_register_rsrc_flags.h xlat/uring_restriction_opcodes.h xlat/uring_setup_features.h xlat/uring_setup_flags.h xlat/uring_sqe_flags.h xlat/usagewho.h xlat/v4l2_buf_flags.h xlat/v4l2_buf_flags_ts_src.h xlat/v4l2_buf_flags_ts_type.h xlat/v4l2_buf_types.h xlat/v4l2_capture_modes.h xlat/v4l2_colorspaces.h xlat/v4l2_control_classes.h xlat/v4l2_control_flags.h xlat/v4l2_control_id_bases.h xlat/v4l2_control_ids.h xlat/v4l2_control_query_flags.h xlat/v4l2_control_types.h xlat/v4l2_device_capabilities_flags.h xlat/v4l2_fields.h xlat/v4l2_format_description_flags.h xlat/v4l2_frameinterval_types.h xlat/v4l2_framesize_types.h xlat/v4l2_input_types.h xlat/v4l2_memories.h xlat/v4l2_meta_fmts.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/vsock_cids.h xlat/vsock_flags.h xlat/vsock_ports.h xlat/wait4_options.h xlat/waitid_types.h xlat/watchdog_ioctl_cmds.h xlat/whence_codes.h xlat/x86_xfeature_bits.h xlat/x86_xfeatures.h xlat/xattrflags.h xlat/xdp_flags.h xlat/xdp_sockaddr_flags.h xlat/xfs_dqblk_flags.h xlat/xfs_quota_flags.h +XLAT_INPUT_FILES = xlat/access_modes.in xlat/addrfams.in xlat/adjtimex_modes.in xlat/adjtimex_state.in xlat/adjtimex_status.in xlat/advise.in xlat/af_packet_types.in xlat/af_packet_versions.in xlat/aio_cmds.in xlat/aio_iocb_flags.in xlat/alg_sockaddr_flags.in xlat/alpha_trap_codes.in xlat/archvals.in xlat/arp_hardware_types.in xlat/at_flags.in xlat/at_statx_sync_types.in xlat/atomic_ops.in xlat/audit_arch.in xlat/ax25_protocols.in xlat/baud_options.in xlat/bdaddr_types.in xlat/blkpg_ops.in xlat/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_link_create_kprobe_multi_flags.in xlat/bpf_map_flags.in xlat/bpf_map_lookup_elem_flags.in xlat/bpf_map_types.in xlat/bpf_map_update_elem_flags.in xlat/bpf_miscop.in xlat/bpf_mode.in xlat/bpf_op_alu.in xlat/bpf_op_jmp.in xlat/bpf_prog_flags.in xlat/bpf_prog_types.in xlat/bpf_query_flags.in xlat/bpf_rval.in xlat/bpf_size.in xlat/bpf_src.in xlat/bpf_task_fd_type.in xlat/bpf_test_run_flags.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_csum_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_fs_info_flags.in xlat/btrfs_key_types.in xlat/btrfs_logical_ino_args_flags.in xlat/btrfs_qgroup_ctl_cmds.in xlat/btrfs_qgroup_inherit_flags.in xlat/btrfs_qgroup_limit_flags.in xlat/btrfs_qgroup_status_flags.in xlat/btrfs_scrub_flags.in xlat/btrfs_send_flags.in xlat/btrfs_snap_flags_v2.in xlat/btrfs_space_info_flags.in xlat/btrfs_tree_objectids.in xlat/cacheflush_flags.in xlat/cacheflush_scope.in xlat/caif_protocols.in xlat/can_protocols.in xlat/cap.in xlat/cap_mask0.in xlat/cap_mask1.in xlat/cap_version.in xlat/clockflags.in xlat/clocknames.in xlat/clone3_flags.in xlat/clone_flags.in xlat/close_range_flags.in xlat/compat_ptrace_cmds.in xlat/counter_ioctl_component_types.in xlat/counter_ioctl_event_types.in xlat/counter_ioctl_scopes.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/elf_em.in xlat/epollctls.in xlat/epollevents.in xlat/epollflags.in xlat/ethernet_protocols.in xlat/evdev_abs.in xlat/evdev_autorepeat.in xlat/evdev_ev.in xlat/evdev_ff_status.in xlat/evdev_ff_types.in xlat/evdev_keycode.in xlat/evdev_leds.in xlat/evdev_misc.in xlat/evdev_mtslots.in xlat/evdev_prop.in xlat/evdev_relative_axes.in xlat/evdev_snd.in xlat/evdev_switch.in xlat/f_owner_types.in xlat/f_seals.in xlat/faccessat_flags.in xlat/falloc_flags.in xlat/fan_classes.in xlat/fan_event_flags.in xlat/fan_init_flags.in xlat/fan_mark_flags.in xlat/fcntlcmds.in xlat/fdb_notify_flags.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/fs_ioc_flags.in xlat/fs_xflags.in xlat/fsconfig_cmds.in xlat/fsmagic.in xlat/fsmount_attr_flags.in xlat/fsmount_flags.in xlat/fsopen_flags.in xlat/fspick_flags.in xlat/futex_waiter_flags.in xlat/futexbitset.in xlat/futexops.in xlat/futexwakecmps.in xlat/futexwakeops.in xlat/get_mempolicy_flags.in xlat/getrandom_flags.in xlat/getsock_ip_options.in xlat/getsock_ipv6_options.in xlat/getsock_options.in xlat/gpio_event_flags.in xlat/gpio_handle_flags.in xlat/gpio_line_flags.in xlat/gpio_v2_line_attr_ids.in xlat/gpio_v2_line_flags.in xlat/hci_channels.in xlat/hdio_busstates.in xlat/hdio_drive_cmds.in xlat/hdio_ide_nice.in xlat/hw_breakpoint_len.in xlat/hw_breakpoint_type.in xlat/icmp_filter_flags.in xlat/ieee802154_addr_types.in xlat/ieee802154_addrs.in xlat/ieee802154_pan_ids.in xlat/if_dqblk_valid.in xlat/if_dqinfo_flags.in xlat/if_dqinfo_valid.in xlat/ifaddrflags.in xlat/iffflags.in xlat/ifstats_af_spec_mpls_attrs.in xlat/ifstats_attr_flags.in xlat/ifstats_attrs.in xlat/ifstats_offload_attrs.in xlat/ifstats_xstats_bond_3ad_attrs.in xlat/ifstats_xstats_bond_attrs.in xlat/ifstats_xstats_bridge_attrs.in xlat/ifstats_xstats_bridge_mcast_indices.in xlat/ifstats_xstats_type_attrs.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_bpf_storage_attrs.in xlat/inet_diag_bpf_storages_attrs.in xlat/inet_diag_bytecodes.in xlat/inet_diag_extended_flags.in xlat/inet_diag_req_attrs.in xlat/inet_diag_shutdown_flags.in xlat/inet_diag_ulp_info_attrs.in xlat/inet_diag_ulp_info_mptcp_attrs.in xlat/inet_diag_ulp_info_tls_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/kd_default_led_flags.in xlat/kd_font_flags.in xlat/kd_font_ops.in xlat/kd_ioctl_cmds.in xlat/kd_kbd_modes.in xlat/kd_kbd_types.in xlat/kd_key_ascii_keys.in xlat/kd_key_brl_keys.in xlat/kd_key_cur_keys.in xlat/kd_key_dead_keys.in xlat/kd_key_fn_key_vals.in xlat/kd_key_fn_keys.in xlat/kd_key_lock_keys.in xlat/kd_key_pad_keys.in xlat/kd_key_shift_keys.in xlat/kd_key_slock_keys.in xlat/kd_key_spec_keys.in xlat/kd_key_tables.in xlat/kd_key_types.in xlat/kd_keymap_flags.in xlat/kd_led_flags.in xlat/kd_meta_vals.in xlat/kd_modes.in xlat/kexec_arch_values.in xlat/kexec_file_load_flags.in xlat/kexec_load_flags.in xlat/key_perms.in xlat/key_reqkeys.in xlat/key_spec.in xlat/keyctl_caps0.in xlat/keyctl_caps1.in xlat/keyctl_commands.in xlat/keyctl_move_flags.in xlat/keyctl_pkey_ops.in xlat/kvm_cap.in xlat/kvm_cpuid_flags.in xlat/kvm_exit_reason.in xlat/kvm_mem_flags.in xlat/landlock_create_ruleset_flags.in xlat/landlock_rule_types.in xlat/landlock_ruleset_access_fs.in xlat/lirc_features.in xlat/lirc_modes.in xlat/lockfcmds.in xlat/loop_crypt_type_options.in xlat/loop_flags_options.in xlat/lwtunnel_encap_types.in xlat/madvise_cmds.in xlat/mbind_flags.in xlat/mctl_sync.in xlat/mctp_addrs.in xlat/mctp_nets.in xlat/mdb_flags.in xlat/mdb_states.in xlat/membarrier_cmds.in xlat/membarrier_flags.in xlat/memfd_create_flags.in xlat/memfd_secret_flags.in xlat/mlock_flags.in xlat/mlockall_flags.in xlat/mmap_flags.in xlat/mmap_prot.in xlat/modem_flags.in xlat/modetypes.in xlat/module_init_flags.in xlat/mount_attr_attr.in xlat/mount_attr_propagation.in xlat/mount_flags.in xlat/mount_setattr_flags.in xlat/move_mount_flags.in xlat/move_pages_flags.in xlat/mpol_mode_flags.in xlat/mpol_modes.in xlat/mptcp_subflow_flags.in xlat/mq_attr_flags.in xlat/mremap_flags.in xlat/msg_flags.in xlat/msgctl_flags.in xlat/mtd_file_mode_options.in xlat/mtd_flags_options.in xlat/mtd_mode_options.in xlat/mtd_nandecc_options.in xlat/mtd_otp_options.in xlat/mtd_type_options.in xlat/multicast_router_types.in xlat/name_to_handle_at_flags.in xlat/nbd_ioctl_cmds.in xlat/nbd_ioctl_flags.in xlat/neighbor_cache_entry_ext_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_hook_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/nfc_saps.in xlat/nfc_sockaddr_protocols.in xlat/nl_audit_types.in xlat/nl_bridge_vlan_flags.in xlat/nl_crypto_types.in xlat/nl_netfilter_msg_types.in xlat/nl_netfilter_subsys_ids.in xlat/nl_route_types.in xlat/nl_selinux_types.in xlat/nl_sock_diag_types.in xlat/nl_xfrm_types.in xlat/nlmsgerr_attrs.in xlat/notifyflags.in xlat/nt_descriptor_types.in xlat/numa_node.in xlat/open_access_modes.in xlat/open_mode_flags.in xlat/open_resolve_flags.in xlat/open_tree_flags.in xlat/packet_diag_attrs.in xlat/packet_diag_info_flags.in xlat/packet_diag_show.in xlat/packet_mreq_type.in xlat/perf_attr_size.in xlat/perf_branch_sample_type.in xlat/perf_event_open_flags.in xlat/perf_event_read_format.in xlat/perf_event_sample_format.in xlat/perf_hw_cache_id.in xlat/perf_hw_cache_op_id.in xlat/perf_hw_cache_op_result_id.in xlat/perf_hw_id.in xlat/perf_ioctl_cmds.in xlat/perf_ioctl_flags.in xlat/perf_sw_ids.in xlat/perf_type_id.in xlat/personality_flags.in xlat/personality_types.in xlat/phonet_protocols.in xlat/pidfd_open_flags.in xlat/pkey_access.in xlat/pollflags.in xlat/pr_cap_ambient.in xlat/pr_dumpable.in xlat/pr_fp_mode.in xlat/pr_mce_kill.in xlat/pr_mce_kill_policy.in xlat/pr_pac_enabled_keys.in xlat/pr_pac_keys.in xlat/pr_sched_core_cmds.in xlat/pr_sched_core_pidtypes.in xlat/pr_set_mm.in xlat/pr_set_vma.in xlat/pr_sme_vl_flags.in xlat/pr_spec_cmds.in xlat/pr_spec_get_store_bypass_flags.in xlat/pr_spec_set_store_bypass_flags.in xlat/pr_sud_cmds.in xlat/pr_sve_vl_flags.in xlat/pr_tagged_addr_enable.in xlat/pr_tagged_addr_mte_tcf.in xlat/pr_tsc.in xlat/pr_unalign_flags.in xlat/prctl_options.in xlat/priorities.in xlat/ptp_extts_flags.in xlat/ptp_perout_flags.in xlat/ptp_pin_funcs.in xlat/ptrace_cmds.in xlat/ptrace_events.in xlat/ptrace_peeksiginfo_flags.in xlat/ptrace_setoptions_flags.in xlat/ptrace_syscall_info_op.in xlat/qipcrtr_nodes.in xlat/qipcrtr_ports.in xlat/quota_formats.in xlat/quotacmds.in xlat/quotatypes.in xlat/random_ioctl_cmds.in xlat/rename_flags.in xlat/resource_flags.in xlat/resources.in xlat/riscv_flush_icache_flags.in xlat/route_nexthop_flags.in xlat/routing_flags.in xlat/routing_protocols.in xlat/routing_scopes.in xlat/routing_table_ids.in xlat/routing_types.in xlat/rtc_backup_switch_modes.in xlat/rtc_feature_bits.in xlat/rtc_features.in xlat/rtc_ioctl_cmds.in xlat/rtc_params.in xlat/rtc_vl_flags.in xlat/rtnl_addr_attrs.in xlat/rtnl_addrlabel_attrs.in xlat/rtnl_dcb_attrs.in xlat/rtnl_family.in xlat/rtnl_ifla_af_spec_bridge_attrs.in xlat/rtnl_ifla_af_spec_bridge_vlan_tunnel_info_attrs.in xlat/rtnl_ifla_af_spec_inet6_attrs.in xlat/rtnl_ifla_af_spec_inet_attrs.in xlat/rtnl_ifla_af_spec_mctp_attrs.in xlat/rtnl_ifla_br_boolopt_flags.in xlat/rtnl_ifla_br_boolopts.in xlat/rtnl_ifla_br_mcast_querier_attrs.in xlat/rtnl_ifla_bridge_flags.in xlat/rtnl_ifla_bridge_modes.in xlat/rtnl_ifla_brport_attrs.in xlat/rtnl_ifla_events.in xlat/rtnl_ifla_ext_filter_flags.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_proto_down_reason_attrs.in xlat/rtnl_ifla_vf_info_attrs.in xlat/rtnl_ifla_vf_link_states.in xlat/rtnl_ifla_vf_port_attrs.in xlat/rtnl_ifla_vf_stats_attrs.in xlat/rtnl_ifla_vf_vlan_list_attrs.in xlat/rtnl_ifla_vfinfo_list_attrs.in xlat/rtnl_ifla_xdp_attached_mode.in xlat/rtnl_ifla_xdp_attrs.in xlat/rtnl_ip6mra_creport_attr.in xlat/rtnl_ip6mra_msg_types.in xlat/rtnl_ipmra_creport_attr.in xlat/rtnl_ipmra_msg_types.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_neigh_fdb_ext_attrs.in xlat/rtnl_neightbl_attrs.in xlat/rtnl_neightbl_parms_attrs.in xlat/rtnl_netconf_attrs.in xlat/rtnl_nexthop_attrs.in xlat/rtnl_nexthop_grp_types.in xlat/rtnl_nha_res_bucket_attrs.in xlat/rtnl_nha_res_group_attrs.in xlat/rtnl_nsid_attrs.in xlat/rtnl_route_attrs.in xlat/rtnl_rta_metrics_attrs.in xlat/rtnl_rule_attrs.in xlat/rtnl_tc_action_attrs.in xlat/rtnl_tc_attrs.in xlat/rtnl_tca_act_flags.in xlat/rtnl_tca_act_hw_stats.in xlat/rtnl_tca_stab_attrs.in xlat/rtnl_tca_stats_attrs.in xlat/rwf_flags.in xlat/rxrpc_services.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_ioctl_addfd_flags.in xlat/seccomp_ioctl_resp_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/sigtrap_perf_flags.in xlat/skf_ad.in xlat/skf_off.in xlat/smc_decl_codes.in xlat/smc_diag_attrs.in xlat/smc_diag_extended_flags.in xlat/smc_diag_mode.in xlat/smc_link_group_roles.in xlat/smc_protocols.in xlat/smc_states.in xlat/snmp_icmp6_stats.in xlat/snmp_ip_stats.in xlat/sock_alg_options.in xlat/sock_ax25_options.in xlat/sock_bluetooth_options.in xlat/sock_caif_options.in xlat/sock_can_raw_options.in xlat/sock_dccp_options.in xlat/sock_ip_options.in xlat/sock_ipv6_options.in xlat/sock_ipx_options.in xlat/sock_irda_options.in xlat/sock_iucv_options.in xlat/sock_kcm_options.in xlat/sock_llc_options.in xlat/sock_netlink_options.in xlat/sock_nfcllcp_options.in xlat/sock_options.in xlat/sock_packet_options.in xlat/sock_pnp_options.in xlat/sock_pppol2tp_options.in xlat/sock_raw_options.in xlat/sock_rds_options.in xlat/sock_rxrpc_options.in xlat/sock_sctp_options.in xlat/sock_shutdown_flags.in xlat/sock_tcp_options.in xlat/sock_tipc_options.in xlat/sock_tls_options.in xlat/sock_type_flags.in xlat/sock_udp_options.in xlat/sock_vsock_options.in xlat/sock_xdp_options.in xlat/socketcalls.in xlat/socketlayers.in xlat/sockopt_txrehash_vals.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/syslog_action_type.in xlat/syslog_console_levels.in xlat/sysmips_operations.in xlat/tcflsh_options.in xlat/tcp_state_flags.in xlat/tcp_states.in xlat/tcxonc_options.in xlat/tee_ioctl_gen_caps.in xlat/tee_ioctl_impl_ids.in xlat/tee_ioctl_login_types.in xlat/tee_ioctl_max_arg_size.in xlat/tee_ioctl_optee_caps.in xlat/tee_ioctl_origins.in xlat/tee_ioctl_param_attr_types.in xlat/tee_ioctl_shm_flags.in xlat/term_cflags.in xlat/term_cflags_csize.in xlat/term_cmds_overlapping.in xlat/term_iflags.in xlat/term_lflags.in xlat/term_line_discs.in xlat/term_oflags.in xlat/term_oflags_bsdly.in xlat/term_oflags_crdly.in xlat/term_oflags_ffdly.in xlat/term_oflags_nldly.in xlat/term_oflags_tabdly.in xlat/term_oflags_vtdly.in xlat/termio_cc.in xlat/termios_cc.in xlat/timerfdflags.in xlat/tls_info_ciphers.in xlat/tls_info_configs.in xlat/tls_info_versions.in xlat/tun_device_types.in xlat/ubi_data_types.in xlat/ubi_volume_flags.in xlat/ubi_volume_props.in xlat/ubi_volume_types.in xlat/uffd_api_features.in xlat/uffd_api_flags.in xlat/uffd_copy_flags.in xlat/uffd_flags.in xlat/uffd_register_ioctl_flags.in xlat/uffd_register_mode_flags.in xlat/uffd_zeropage_flags.in xlat/umount_flags.in xlat/unix_diag_attrs.in xlat/unix_diag_show.in xlat/unshare_flags.in xlat/uring_enter_flags.in xlat/uring_files_update_fds.in xlat/uring_iowq_acct.in xlat/uring_op_flags.in xlat/uring_ops.in xlat/uring_register_opcodes.in xlat/uring_register_rsrc_flags.in xlat/uring_restriction_opcodes.in xlat/uring_setup_features.in xlat/uring_setup_flags.in xlat/uring_sqe_flags.in xlat/usagewho.in xlat/v4l2_buf_flags.in xlat/v4l2_buf_flags_ts_src.in xlat/v4l2_buf_flags_ts_type.in xlat/v4l2_buf_types.in xlat/v4l2_capture_modes.in xlat/v4l2_colorspaces.in xlat/v4l2_control_classes.in xlat/v4l2_control_flags.in xlat/v4l2_control_id_bases.in xlat/v4l2_control_ids.in xlat/v4l2_control_query_flags.in xlat/v4l2_control_types.in xlat/v4l2_device_capabilities_flags.in xlat/v4l2_fields.in xlat/v4l2_format_description_flags.in xlat/v4l2_frameinterval_types.in xlat/v4l2_framesize_types.in xlat/v4l2_input_types.in xlat/v4l2_memories.in xlat/v4l2_meta_fmts.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/vsock_cids.in xlat/vsock_flags.in xlat/vsock_ports.in xlat/wait4_options.in xlat/waitid_types.in xlat/watchdog_ioctl_cmds.in xlat/whence_codes.in xlat/x86_xfeature_bits.in xlat/x86_xfeatures.in xlat/xattrflags.in xlat/xdp_flags.in xlat/xdp_sockaddr_flags.in xlat/xfs_dqblk_flags.in xlat/xfs_quota_flags.in +XLAT_HEADER_FILES = xlat/access_modes.h xlat/addrfams.h xlat/adjtimex_modes.h xlat/adjtimex_state.h xlat/adjtimex_status.h xlat/advise.h xlat/af_packet_types.h xlat/af_packet_versions.h xlat/aio_cmds.h xlat/aio_iocb_flags.h xlat/alg_sockaddr_flags.h xlat/alpha_trap_codes.h xlat/archvals.h xlat/arp_hardware_types.h xlat/at_flags.h xlat/at_statx_sync_types.h xlat/atomic_ops.h xlat/audit_arch.h xlat/ax25_protocols.h xlat/baud_options.h xlat/bdaddr_types.h xlat/blkpg_ops.h xlat/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_link_create_kprobe_multi_flags.h xlat/bpf_map_flags.h xlat/bpf_map_lookup_elem_flags.h xlat/bpf_map_types.h xlat/bpf_map_update_elem_flags.h xlat/bpf_miscop.h xlat/bpf_mode.h xlat/bpf_op_alu.h xlat/bpf_op_jmp.h xlat/bpf_prog_flags.h xlat/bpf_prog_types.h xlat/bpf_query_flags.h xlat/bpf_rval.h xlat/bpf_size.h xlat/bpf_src.h xlat/bpf_task_fd_type.h xlat/bpf_test_run_flags.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_csum_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_fs_info_flags.h xlat/btrfs_key_types.h xlat/btrfs_logical_ino_args_flags.h xlat/btrfs_qgroup_ctl_cmds.h xlat/btrfs_qgroup_inherit_flags.h xlat/btrfs_qgroup_limit_flags.h xlat/btrfs_qgroup_status_flags.h xlat/btrfs_scrub_flags.h xlat/btrfs_send_flags.h xlat/btrfs_snap_flags_v2.h xlat/btrfs_space_info_flags.h xlat/btrfs_tree_objectids.h xlat/cacheflush_flags.h xlat/cacheflush_scope.h xlat/caif_protocols.h xlat/can_protocols.h xlat/cap.h xlat/cap_mask0.h xlat/cap_mask1.h xlat/cap_version.h xlat/clockflags.h xlat/clocknames.h xlat/clone3_flags.h xlat/clone_flags.h xlat/close_range_flags.h xlat/compat_ptrace_cmds.h xlat/counter_ioctl_component_types.h xlat/counter_ioctl_event_types.h xlat/counter_ioctl_scopes.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/elf_em.h xlat/epollctls.h xlat/epollevents.h xlat/epollflags.h xlat/ethernet_protocols.h xlat/evdev_abs.h xlat/evdev_autorepeat.h xlat/evdev_ev.h xlat/evdev_ff_status.h xlat/evdev_ff_types.h xlat/evdev_keycode.h xlat/evdev_leds.h xlat/evdev_misc.h xlat/evdev_mtslots.h xlat/evdev_prop.h xlat/evdev_relative_axes.h xlat/evdev_snd.h xlat/evdev_switch.h xlat/f_owner_types.h xlat/f_seals.h xlat/faccessat_flags.h xlat/falloc_flags.h xlat/fan_classes.h xlat/fan_event_flags.h xlat/fan_init_flags.h xlat/fan_mark_flags.h xlat/fcntlcmds.h xlat/fdb_notify_flags.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/fs_ioc_flags.h xlat/fs_xflags.h xlat/fsconfig_cmds.h xlat/fsmagic.h xlat/fsmount_attr_flags.h xlat/fsmount_flags.h xlat/fsopen_flags.h xlat/fspick_flags.h xlat/futex_waiter_flags.h xlat/futexbitset.h xlat/futexops.h xlat/futexwakecmps.h xlat/futexwakeops.h xlat/get_mempolicy_flags.h xlat/getrandom_flags.h xlat/getsock_ip_options.h xlat/getsock_ipv6_options.h xlat/getsock_options.h xlat/gpio_event_flags.h xlat/gpio_handle_flags.h xlat/gpio_line_flags.h xlat/gpio_v2_line_attr_ids.h xlat/gpio_v2_line_flags.h xlat/hci_channels.h xlat/hdio_busstates.h xlat/hdio_drive_cmds.h xlat/hdio_ide_nice.h xlat/hw_breakpoint_len.h xlat/hw_breakpoint_type.h xlat/icmp_filter_flags.h xlat/ieee802154_addr_types.h xlat/ieee802154_addrs.h xlat/ieee802154_pan_ids.h xlat/if_dqblk_valid.h xlat/if_dqinfo_flags.h xlat/if_dqinfo_valid.h xlat/ifaddrflags.h xlat/iffflags.h xlat/ifstats_af_spec_mpls_attrs.h xlat/ifstats_attr_flags.h xlat/ifstats_attrs.h xlat/ifstats_offload_attrs.h xlat/ifstats_xstats_bond_3ad_attrs.h xlat/ifstats_xstats_bond_attrs.h xlat/ifstats_xstats_bridge_attrs.h xlat/ifstats_xstats_bridge_mcast_indices.h xlat/ifstats_xstats_type_attrs.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_bpf_storage_attrs.h xlat/inet_diag_bpf_storages_attrs.h xlat/inet_diag_bytecodes.h xlat/inet_diag_extended_flags.h xlat/inet_diag_req_attrs.h xlat/inet_diag_shutdown_flags.h xlat/inet_diag_ulp_info_attrs.h xlat/inet_diag_ulp_info_mptcp_attrs.h xlat/inet_diag_ulp_info_tls_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/kd_default_led_flags.h xlat/kd_font_flags.h xlat/kd_font_ops.h xlat/kd_ioctl_cmds.h xlat/kd_kbd_modes.h xlat/kd_kbd_types.h xlat/kd_key_ascii_keys.h xlat/kd_key_brl_keys.h xlat/kd_key_cur_keys.h xlat/kd_key_dead_keys.h xlat/kd_key_fn_key_vals.h xlat/kd_key_fn_keys.h xlat/kd_key_lock_keys.h xlat/kd_key_pad_keys.h xlat/kd_key_shift_keys.h xlat/kd_key_slock_keys.h xlat/kd_key_spec_keys.h xlat/kd_key_tables.h xlat/kd_key_types.h xlat/kd_keymap_flags.h xlat/kd_led_flags.h xlat/kd_meta_vals.h xlat/kd_modes.h xlat/kexec_arch_values.h xlat/kexec_file_load_flags.h xlat/kexec_load_flags.h xlat/key_perms.h xlat/key_reqkeys.h xlat/key_spec.h xlat/keyctl_caps0.h xlat/keyctl_caps1.h xlat/keyctl_commands.h xlat/keyctl_move_flags.h xlat/keyctl_pkey_ops.h xlat/kvm_cap.h xlat/kvm_cpuid_flags.h xlat/kvm_exit_reason.h xlat/kvm_mem_flags.h xlat/landlock_create_ruleset_flags.h xlat/landlock_rule_types.h xlat/landlock_ruleset_access_fs.h xlat/lirc_features.h xlat/lirc_modes.h xlat/lockfcmds.h xlat/loop_crypt_type_options.h xlat/loop_flags_options.h xlat/lwtunnel_encap_types.h xlat/madvise_cmds.h xlat/mbind_flags.h xlat/mctl_sync.h xlat/mctp_addrs.h xlat/mctp_nets.h xlat/mdb_flags.h xlat/mdb_states.h xlat/membarrier_cmds.h xlat/membarrier_flags.h xlat/memfd_create_flags.h xlat/memfd_secret_flags.h xlat/mlock_flags.h xlat/mlockall_flags.h xlat/mmap_flags.h xlat/mmap_prot.h xlat/modem_flags.h xlat/modetypes.h xlat/module_init_flags.h xlat/mount_attr_attr.h xlat/mount_attr_propagation.h xlat/mount_flags.h xlat/mount_setattr_flags.h xlat/move_mount_flags.h xlat/move_pages_flags.h xlat/mpol_mode_flags.h xlat/mpol_modes.h xlat/mptcp_subflow_flags.h xlat/mq_attr_flags.h xlat/mremap_flags.h xlat/msg_flags.h xlat/msgctl_flags.h xlat/mtd_file_mode_options.h xlat/mtd_flags_options.h xlat/mtd_mode_options.h xlat/mtd_nandecc_options.h xlat/mtd_otp_options.h xlat/mtd_type_options.h xlat/multicast_router_types.h xlat/name_to_handle_at_flags.h xlat/nbd_ioctl_cmds.h xlat/nbd_ioctl_flags.h xlat/neighbor_cache_entry_ext_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_hook_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/nfc_saps.h xlat/nfc_sockaddr_protocols.h xlat/nl_audit_types.h xlat/nl_bridge_vlan_flags.h xlat/nl_crypto_types.h xlat/nl_netfilter_msg_types.h xlat/nl_netfilter_subsys_ids.h xlat/nl_route_types.h xlat/nl_selinux_types.h xlat/nl_sock_diag_types.h xlat/nl_xfrm_types.h xlat/nlmsgerr_attrs.h xlat/notifyflags.h xlat/nt_descriptor_types.h xlat/numa_node.h xlat/open_access_modes.h xlat/open_mode_flags.h xlat/open_resolve_flags.h xlat/open_tree_flags.h xlat/packet_diag_attrs.h xlat/packet_diag_info_flags.h xlat/packet_diag_show.h xlat/packet_mreq_type.h xlat/perf_attr_size.h xlat/perf_branch_sample_type.h xlat/perf_event_open_flags.h xlat/perf_event_read_format.h xlat/perf_event_sample_format.h xlat/perf_hw_cache_id.h xlat/perf_hw_cache_op_id.h xlat/perf_hw_cache_op_result_id.h xlat/perf_hw_id.h xlat/perf_ioctl_cmds.h xlat/perf_ioctl_flags.h xlat/perf_sw_ids.h xlat/perf_type_id.h xlat/personality_flags.h xlat/personality_types.h xlat/phonet_protocols.h xlat/pidfd_open_flags.h xlat/pkey_access.h xlat/pollflags.h xlat/pr_cap_ambient.h xlat/pr_dumpable.h xlat/pr_fp_mode.h xlat/pr_mce_kill.h xlat/pr_mce_kill_policy.h xlat/pr_pac_enabled_keys.h xlat/pr_pac_keys.h xlat/pr_sched_core_cmds.h xlat/pr_sched_core_pidtypes.h xlat/pr_set_mm.h xlat/pr_set_vma.h xlat/pr_sme_vl_flags.h xlat/pr_spec_cmds.h xlat/pr_spec_get_store_bypass_flags.h xlat/pr_spec_set_store_bypass_flags.h xlat/pr_sud_cmds.h xlat/pr_sve_vl_flags.h xlat/pr_tagged_addr_enable.h xlat/pr_tagged_addr_mte_tcf.h xlat/pr_tsc.h xlat/pr_unalign_flags.h xlat/prctl_options.h xlat/priorities.h xlat/ptp_extts_flags.h xlat/ptp_perout_flags.h xlat/ptp_pin_funcs.h xlat/ptrace_cmds.h xlat/ptrace_events.h xlat/ptrace_peeksiginfo_flags.h xlat/ptrace_setoptions_flags.h xlat/ptrace_syscall_info_op.h xlat/qipcrtr_nodes.h xlat/qipcrtr_ports.h xlat/quota_formats.h xlat/quotacmds.h xlat/quotatypes.h xlat/random_ioctl_cmds.h xlat/rename_flags.h xlat/resource_flags.h xlat/resources.h xlat/riscv_flush_icache_flags.h xlat/route_nexthop_flags.h xlat/routing_flags.h xlat/routing_protocols.h xlat/routing_scopes.h xlat/routing_table_ids.h xlat/routing_types.h xlat/rtc_backup_switch_modes.h xlat/rtc_feature_bits.h xlat/rtc_features.h xlat/rtc_ioctl_cmds.h xlat/rtc_params.h xlat/rtc_vl_flags.h xlat/rtnl_addr_attrs.h xlat/rtnl_addrlabel_attrs.h xlat/rtnl_dcb_attrs.h xlat/rtnl_family.h xlat/rtnl_ifla_af_spec_bridge_attrs.h xlat/rtnl_ifla_af_spec_bridge_vlan_tunnel_info_attrs.h xlat/rtnl_ifla_af_spec_inet6_attrs.h xlat/rtnl_ifla_af_spec_inet_attrs.h xlat/rtnl_ifla_af_spec_mctp_attrs.h xlat/rtnl_ifla_br_boolopt_flags.h xlat/rtnl_ifla_br_boolopts.h xlat/rtnl_ifla_br_mcast_querier_attrs.h xlat/rtnl_ifla_bridge_flags.h xlat/rtnl_ifla_bridge_modes.h xlat/rtnl_ifla_brport_attrs.h xlat/rtnl_ifla_events.h xlat/rtnl_ifla_ext_filter_flags.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_proto_down_reason_attrs.h xlat/rtnl_ifla_vf_info_attrs.h xlat/rtnl_ifla_vf_link_states.h xlat/rtnl_ifla_vf_port_attrs.h xlat/rtnl_ifla_vf_stats_attrs.h xlat/rtnl_ifla_vf_vlan_list_attrs.h xlat/rtnl_ifla_vfinfo_list_attrs.h xlat/rtnl_ifla_xdp_attached_mode.h xlat/rtnl_ifla_xdp_attrs.h xlat/rtnl_ip6mra_creport_attr.h xlat/rtnl_ip6mra_msg_types.h xlat/rtnl_ipmra_creport_attr.h xlat/rtnl_ipmra_msg_types.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_neigh_fdb_ext_attrs.h xlat/rtnl_neightbl_attrs.h xlat/rtnl_neightbl_parms_attrs.h xlat/rtnl_netconf_attrs.h xlat/rtnl_nexthop_attrs.h xlat/rtnl_nexthop_grp_types.h xlat/rtnl_nha_res_bucket_attrs.h xlat/rtnl_nha_res_group_attrs.h xlat/rtnl_nsid_attrs.h xlat/rtnl_route_attrs.h xlat/rtnl_rta_metrics_attrs.h xlat/rtnl_rule_attrs.h xlat/rtnl_tc_action_attrs.h xlat/rtnl_tc_attrs.h xlat/rtnl_tca_act_flags.h xlat/rtnl_tca_act_hw_stats.h xlat/rtnl_tca_stab_attrs.h xlat/rtnl_tca_stats_attrs.h xlat/rwf_flags.h xlat/rxrpc_services.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_ioctl_addfd_flags.h xlat/seccomp_ioctl_resp_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/sigtrap_perf_flags.h xlat/skf_ad.h xlat/skf_off.h xlat/smc_decl_codes.h xlat/smc_diag_attrs.h xlat/smc_diag_extended_flags.h xlat/smc_diag_mode.h xlat/smc_link_group_roles.h xlat/smc_protocols.h xlat/smc_states.h xlat/snmp_icmp6_stats.h xlat/snmp_ip_stats.h xlat/sock_alg_options.h xlat/sock_ax25_options.h xlat/sock_bluetooth_options.h xlat/sock_caif_options.h xlat/sock_can_raw_options.h xlat/sock_dccp_options.h xlat/sock_ip_options.h xlat/sock_ipv6_options.h xlat/sock_ipx_options.h xlat/sock_irda_options.h xlat/sock_iucv_options.h xlat/sock_kcm_options.h xlat/sock_llc_options.h xlat/sock_netlink_options.h xlat/sock_nfcllcp_options.h xlat/sock_options.h xlat/sock_packet_options.h xlat/sock_pnp_options.h xlat/sock_pppol2tp_options.h xlat/sock_raw_options.h xlat/sock_rds_options.h xlat/sock_rxrpc_options.h xlat/sock_sctp_options.h xlat/sock_shutdown_flags.h xlat/sock_tcp_options.h xlat/sock_tipc_options.h xlat/sock_tls_options.h xlat/sock_type_flags.h xlat/sock_udp_options.h xlat/sock_vsock_options.h xlat/sock_xdp_options.h xlat/socketcalls.h xlat/socketlayers.h xlat/sockopt_txrehash_vals.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/syslog_action_type.h xlat/syslog_console_levels.h xlat/sysmips_operations.h xlat/tcflsh_options.h xlat/tcp_state_flags.h xlat/tcp_states.h xlat/tcxonc_options.h xlat/tee_ioctl_gen_caps.h xlat/tee_ioctl_impl_ids.h xlat/tee_ioctl_login_types.h xlat/tee_ioctl_max_arg_size.h xlat/tee_ioctl_optee_caps.h xlat/tee_ioctl_origins.h xlat/tee_ioctl_param_attr_types.h xlat/tee_ioctl_shm_flags.h xlat/term_cflags.h xlat/term_cflags_csize.h xlat/term_cmds_overlapping.h xlat/term_iflags.h xlat/term_lflags.h xlat/term_line_discs.h xlat/term_oflags.h xlat/term_oflags_bsdly.h xlat/term_oflags_crdly.h xlat/term_oflags_ffdly.h xlat/term_oflags_nldly.h xlat/term_oflags_tabdly.h xlat/term_oflags_vtdly.h xlat/termio_cc.h xlat/termios_cc.h xlat/timerfdflags.h xlat/tls_info_ciphers.h xlat/tls_info_configs.h xlat/tls_info_versions.h xlat/tun_device_types.h xlat/ubi_data_types.h xlat/ubi_volume_flags.h xlat/ubi_volume_props.h xlat/ubi_volume_types.h xlat/uffd_api_features.h xlat/uffd_api_flags.h xlat/uffd_copy_flags.h xlat/uffd_flags.h xlat/uffd_register_ioctl_flags.h xlat/uffd_register_mode_flags.h xlat/uffd_zeropage_flags.h xlat/umount_flags.h xlat/unix_diag_attrs.h xlat/unix_diag_show.h xlat/unshare_flags.h xlat/uring_enter_flags.h xlat/uring_files_update_fds.h xlat/uring_iowq_acct.h xlat/uring_op_flags.h xlat/uring_ops.h xlat/uring_register_opcodes.h xlat/uring_register_rsrc_flags.h xlat/uring_restriction_opcodes.h xlat/uring_setup_features.h xlat/uring_setup_flags.h xlat/uring_sqe_flags.h xlat/usagewho.h xlat/v4l2_buf_flags.h xlat/v4l2_buf_flags_ts_src.h xlat/v4l2_buf_flags_ts_type.h xlat/v4l2_buf_types.h xlat/v4l2_capture_modes.h xlat/v4l2_colorspaces.h xlat/v4l2_control_classes.h xlat/v4l2_control_flags.h xlat/v4l2_control_id_bases.h xlat/v4l2_control_ids.h xlat/v4l2_control_query_flags.h xlat/v4l2_control_types.h xlat/v4l2_device_capabilities_flags.h xlat/v4l2_fields.h xlat/v4l2_format_description_flags.h xlat/v4l2_frameinterval_types.h xlat/v4l2_framesize_types.h xlat/v4l2_input_types.h xlat/v4l2_memories.h xlat/v4l2_meta_fmts.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/vsock_cids.h xlat/vsock_flags.h xlat/vsock_ports.h xlat/wait4_options.h xlat/waitid_types.h xlat/watchdog_ioctl_cmds.h xlat/whence_codes.h xlat/x86_xfeature_bits.h xlat/x86_xfeatures.h xlat/xattrflags.h xlat/xdp_flags.h xlat/xdp_sockaddr_flags.h xlat/xfs_dqblk_flags.h xlat/xfs_quota_flags.h $(top_srcdir)/src/xlat/access_modes.h: $(top_srcdir)/src/xlat/access_modes.in $(top_srcdir)/src/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/src/xlat/gen.sh $< $@ $(top_srcdir)/src/xlat/addrfams.h: $(top_srcdir)/src/xlat/addrfams.in $(top_srcdir)/src/xlat/gen.sh @@ -1226,6 +1226,8 @@ $(AM_V_GEN)$(top_srcdir)/src/xlat/gen.sh $< $@ $(top_srcdir)/src/xlat/term_cflags_csize.h: $(top_srcdir)/src/xlat/term_cflags_csize.in $(top_srcdir)/src/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/src/xlat/gen.sh $< $@ +$(top_srcdir)/src/xlat/term_cmds_overlapping.h: $(top_srcdir)/src/xlat/term_cmds_overlapping.in $(top_srcdir)/src/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/src/xlat/gen.sh $< $@ $(top_srcdir)/src/xlat/term_iflags.h: $(top_srcdir)/src/xlat/term_iflags.in $(top_srcdir)/src/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/src/xlat/gen.sh $< $@ $(top_srcdir)/src/xlat/term_lflags.h: $(top_srcdir)/src/xlat/term_lflags.in $(top_srcdir)/src/xlat/gen.sh diff -Nru strace-6.1/src/xlat/membarrier_cmds.h strace-6.2/src/xlat/membarrier_cmds.h --- strace-6.1/src/xlat/membarrier_cmds.h 2022-12-12 19:28:51.000000000 +0100 +++ strace-6.2/src/xlat/membarrier_cmds.h 2023-02-26 22:20:46.000000000 +0100 @@ -73,6 +73,13 @@ #else # define MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ (1 << 8) #endif +#if defined(MEMBARRIER_CMD_GET_REGISTRATIONS) || (defined(HAVE_DECL_MEMBARRIER_CMD_GET_REGISTRATIONS) && HAVE_DECL_MEMBARRIER_CMD_GET_REGISTRATIONS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MEMBARRIER_CMD_GET_REGISTRATIONS) == ((1 << 9)), "MEMBARRIER_CMD_GET_REGISTRATIONS != (1 << 9)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MEMBARRIER_CMD_GET_REGISTRATIONS (1 << 9) +#endif #undef XLAT_PREV_VAL #ifndef XLAT_MACROS_ONLY @@ -115,6 +122,9 @@ XLAT(MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ), #define XLAT_VAL_9 ((unsigned) (MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ)) #define XLAT_STR_9 STRINGIFY(MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ) + XLAT(MEMBARRIER_CMD_GET_REGISTRATIONS), + #define XLAT_VAL_10 ((unsigned) (MEMBARRIER_CMD_GET_REGISTRATIONS)) + #define XLAT_STR_10 STRINGIFY(MEMBARRIER_CMD_GET_REGISTRATIONS) }; static const struct xlat membarrier_cmds[1] = { { @@ -152,6 +162,9 @@ # ifdef XLAT_VAL_9 | XLAT_VAL_9 # endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif , .flags_strsz = 0 # ifdef XLAT_STR_0 @@ -184,6 +197,9 @@ # ifdef XLAT_STR_9 + sizeof(XLAT_STR_9) # endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif , } }; DIAG_POP_IGNORE_TAUTOLOGICAL_CONSTANT_COMPARE @@ -208,6 +224,8 @@ # undef XLAT_VAL_8 # undef XLAT_STR_9 # undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff -Nru strace-6.1/src/xlat/membarrier_cmds.in strace-6.2/src/xlat/membarrier_cmds.in --- strace-6.1/src/xlat/membarrier_cmds.in 2021-02-03 09:00:00.000000000 +0100 +++ strace-6.2/src/xlat/membarrier_cmds.in 2023-01-30 14:54:29.000000000 +0100 @@ -8,3 +8,4 @@ MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE (1 << 6) MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ (1 << 7) MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ (1 << 8) +MEMBARRIER_CMD_GET_REGISTRATIONS (1 << 9) diff -Nru strace-6.1/src/xlat/neighbor_cache_entry_ext_flags.h strace-6.2/src/xlat/neighbor_cache_entry_ext_flags.h --- strace-6.1/src/xlat/neighbor_cache_entry_ext_flags.h 2022-12-12 19:28:51.000000000 +0100 +++ strace-6.2/src/xlat/neighbor_cache_entry_ext_flags.h 2023-02-26 22:20:46.000000000 +0100 @@ -10,6 +10,13 @@ #else # define NTF_EXT_MANAGED (1 << 0) #endif +#if defined(NTF_EXT_LOCKED) || (defined(HAVE_DECL_NTF_EXT_LOCKED) && HAVE_DECL_NTF_EXT_LOCKED) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((NTF_EXT_LOCKED) == ((1 << 1)), "NTF_EXT_LOCKED != (1 << 1)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define NTF_EXT_LOCKED (1 << 1) +#endif #undef XLAT_PREV_VAL #ifndef XLAT_MACROS_ONLY @@ -25,6 +32,9 @@ XLAT(NTF_EXT_MANAGED), #define XLAT_VAL_0 ((unsigned) (NTF_EXT_MANAGED)) #define XLAT_STR_0 STRINGIFY(NTF_EXT_MANAGED) + XLAT(NTF_EXT_LOCKED), + #define XLAT_VAL_1 ((unsigned) (NTF_EXT_LOCKED)) + #define XLAT_STR_1 STRINGIFY(NTF_EXT_LOCKED) }; static const struct xlat neighbor_cache_entry_ext_flags[1] = { { @@ -35,17 +45,25 @@ # ifdef XLAT_VAL_0 | XLAT_VAL_0 # endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif , .flags_strsz = 0 # ifdef XLAT_STR_0 + sizeof(XLAT_STR_0) # endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif , } }; DIAG_POP_IGNORE_TAUTOLOGICAL_CONSTANT_COMPARE # undef XLAT_STR_0 # undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff -Nru strace-6.1/src/xlat/neighbor_cache_entry_ext_flags.in strace-6.2/src/xlat/neighbor_cache_entry_ext_flags.in --- strace-6.1/src/xlat/neighbor_cache_entry_ext_flags.in 2022-07-31 23:03:01.000000000 +0200 +++ strace-6.2/src/xlat/neighbor_cache_entry_ext_flags.in 2023-02-11 09:00:00.000000000 +0100 @@ -1 +1,2 @@ NTF_EXT_MANAGED (1 << 0) +NTF_EXT_LOCKED (1 << 1) diff -Nru strace-6.1/src/xlat/nf_nftables_msg_types.h strace-6.2/src/xlat/nf_nftables_msg_types.h --- strace-6.1/src/xlat/nf_nftables_msg_types.h 2022-12-12 19:28:51.000000000 +0100 +++ strace-6.2/src/xlat/nf_nftables_msg_types.h 2023-02-26 22:20:47.000000000 +0100 @@ -90,6 +90,9 @@ [NFT_MSG_DELFLOWTABLE] = XLAT(NFT_MSG_DELFLOWTABLE), #define XLAT_VAL_24 ((unsigned) (NFT_MSG_DELFLOWTABLE)) #define XLAT_STR_24 STRINGIFY(NFT_MSG_DELFLOWTABLE) + [NFT_MSG_GETRULE_RESET] = XLAT(NFT_MSG_GETRULE_RESET), + #define XLAT_VAL_25 ((unsigned) (NFT_MSG_GETRULE_RESET)) + #define XLAT_STR_25 STRINGIFY(NFT_MSG_GETRULE_RESET) }; static const struct xlat nf_nftables_msg_types[1] = { { @@ -172,6 +175,9 @@ # ifdef XLAT_VAL_24 | XLAT_VAL_24 # endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif , .flags_strsz = 0 # ifdef XLAT_STR_0 @@ -249,6 +255,9 @@ # ifdef XLAT_STR_24 + sizeof(XLAT_STR_24) # endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif , } }; DIAG_POP_IGNORE_TAUTOLOGICAL_CONSTANT_COMPARE @@ -303,6 +312,8 @@ # undef XLAT_VAL_23 # undef XLAT_STR_24 # undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff -Nru strace-6.1/src/xlat/nf_nftables_msg_types.in strace-6.2/src/xlat/nf_nftables_msg_types.in --- strace-6.1/src/xlat/nf_nftables_msg_types.in 2021-04-05 10:00:00.000000000 +0200 +++ strace-6.2/src/xlat/nf_nftables_msg_types.in 2023-02-12 09:00:00.000000000 +0100 @@ -25,3 +25,4 @@ NFT_MSG_NEWFLOWTABLE NFT_MSG_GETFLOWTABLE NFT_MSG_DELFLOWTABLE +NFT_MSG_GETRULE_RESET diff -Nru strace-6.1/src/xlat/rtnl_ifla_brport_attrs.h strace-6.2/src/xlat/rtnl_ifla_brport_attrs.h --- strace-6.1/src/xlat/rtnl_ifla_brport_attrs.h 2022-12-12 19:28:52.000000000 +0100 +++ strace-6.2/src/xlat/rtnl_ifla_brport_attrs.h 2023-02-26 22:20:47.000000000 +0100 @@ -135,6 +135,9 @@ [IFLA_BRPORT_LOCKED] = XLAT(IFLA_BRPORT_LOCKED), #define XLAT_VAL_39 ((unsigned) (IFLA_BRPORT_LOCKED)) #define XLAT_STR_39 STRINGIFY(IFLA_BRPORT_LOCKED) + [IFLA_BRPORT_MAB] = XLAT(IFLA_BRPORT_MAB), + #define XLAT_VAL_40 ((unsigned) (IFLA_BRPORT_MAB)) + #define XLAT_STR_40 STRINGIFY(IFLA_BRPORT_MAB) }; static const struct xlat rtnl_ifla_brport_attrs[1] = { { @@ -262,6 +265,9 @@ # ifdef XLAT_VAL_39 | XLAT_VAL_39 # endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif , .flags_strsz = 0 # ifdef XLAT_STR_0 @@ -384,6 +390,9 @@ # ifdef XLAT_STR_39 + sizeof(XLAT_STR_39) # endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif , } }; DIAG_POP_IGNORE_TAUTOLOGICAL_CONSTANT_COMPARE @@ -468,6 +477,8 @@ # undef XLAT_VAL_38 # undef XLAT_STR_39 # undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff -Nru strace-6.1/src/xlat/rtnl_ifla_brport_attrs.in strace-6.2/src/xlat/rtnl_ifla_brport_attrs.in --- strace-6.1/src/xlat/rtnl_ifla_brport_attrs.in 2022-04-28 10:00:00.000000000 +0200 +++ strace-6.2/src/xlat/rtnl_ifla_brport_attrs.in 2023-01-20 09:00:00.000000000 +0100 @@ -40,3 +40,4 @@ IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT IFLA_BRPORT_MCAST_EHT_HOSTS_CNT IFLA_BRPORT_LOCKED +IFLA_BRPORT_MAB diff -Nru strace-6.1/src/xlat/rtnl_link_attrs.h strace-6.2/src/xlat/rtnl_link_attrs.h --- strace-6.1/src/xlat/rtnl_link_attrs.h 2022-12-12 19:28:52.000000000 +0100 +++ strace-6.2/src/xlat/rtnl_link_attrs.h 2023-02-26 22:20:47.000000000 +0100 @@ -201,6 +201,9 @@ [IFLA_ALLMULTI] = XLAT(IFLA_ALLMULTI), #define XLAT_VAL_61 ((unsigned) (IFLA_ALLMULTI)) #define XLAT_STR_61 STRINGIFY(IFLA_ALLMULTI) + [IFLA_DEVLINK_PORT] = XLAT(IFLA_DEVLINK_PORT), + #define XLAT_VAL_62 ((unsigned) (IFLA_DEVLINK_PORT)) + #define XLAT_STR_62 STRINGIFY(IFLA_DEVLINK_PORT) }; static const struct xlat rtnl_link_attrs[1] = { { @@ -394,6 +397,9 @@ # ifdef XLAT_VAL_61 | XLAT_VAL_61 # endif +# ifdef XLAT_VAL_62 + | XLAT_VAL_62 +# endif , .flags_strsz = 0 # ifdef XLAT_STR_0 @@ -582,6 +588,9 @@ # ifdef XLAT_STR_61 + sizeof(XLAT_STR_61) # endif +# ifdef XLAT_STR_62 + + sizeof(XLAT_STR_62) +# endif , } }; DIAG_POP_IGNORE_TAUTOLOGICAL_CONSTANT_COMPARE @@ -710,6 +719,8 @@ # undef XLAT_VAL_60 # undef XLAT_STR_61 # undef XLAT_VAL_61 +# undef XLAT_STR_62 +# undef XLAT_VAL_62 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff -Nru strace-6.1/src/xlat/rtnl_link_attrs.in strace-6.2/src/xlat/rtnl_link_attrs.in --- strace-6.1/src/xlat/rtnl_link_attrs.in 2022-12-11 09:00:00.000000000 +0100 +++ strace-6.2/src/xlat/rtnl_link_attrs.in 2023-01-20 09:00:00.000000000 +0100 @@ -62,3 +62,4 @@ IFLA_TSO_MAX_SIZE IFLA_TSO_MAX_SEGS IFLA_ALLMULTI +IFLA_DEVLINK_PORT diff -Nru strace-6.1/src/xlat/sock_alg_options.h strace-6.2/src/xlat/sock_alg_options.h --- strace-6.1/src/xlat/sock_alg_options.h 2022-12-12 19:28:51.000000000 +0100 +++ strace-6.2/src/xlat/sock_alg_options.h 2023-02-26 22:20:47.000000000 +0100 @@ -45,6 +45,13 @@ #else # define ALG_SET_DRBG_ENTROPY 6 #endif +#if defined(ALG_SET_KEY_BY_KEY_SERIAL) || (defined(HAVE_DECL_ALG_SET_KEY_BY_KEY_SERIAL) && HAVE_DECL_ALG_SET_KEY_BY_KEY_SERIAL) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ALG_SET_KEY_BY_KEY_SERIAL) == (7), "ALG_SET_KEY_BY_KEY_SERIAL != 7"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ALG_SET_KEY_BY_KEY_SERIAL 7 +#endif #undef XLAT_PREV_VAL #ifndef XLAT_MACROS_ONLY @@ -75,6 +82,9 @@ [ALG_SET_DRBG_ENTROPY] = XLAT(ALG_SET_DRBG_ENTROPY), #define XLAT_VAL_5 ((unsigned) (ALG_SET_DRBG_ENTROPY)) #define XLAT_STR_5 STRINGIFY(ALG_SET_DRBG_ENTROPY) + [ALG_SET_KEY_BY_KEY_SERIAL] = XLAT(ALG_SET_KEY_BY_KEY_SERIAL), + #define XLAT_VAL_6 ((unsigned) (ALG_SET_KEY_BY_KEY_SERIAL)) + #define XLAT_STR_6 STRINGIFY(ALG_SET_KEY_BY_KEY_SERIAL) }; static const struct xlat sock_alg_options[1] = { { @@ -100,6 +110,9 @@ # ifdef XLAT_VAL_5 | XLAT_VAL_5 # endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif , .flags_strsz = 0 # ifdef XLAT_STR_0 @@ -120,6 +133,9 @@ # ifdef XLAT_STR_5 + sizeof(XLAT_STR_5) # endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif , } }; DIAG_POP_IGNORE_TAUTOLOGICAL_CONSTANT_COMPARE @@ -136,6 +152,8 @@ # undef XLAT_VAL_4 # undef XLAT_STR_5 # undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff -Nru strace-6.1/src/xlat/sock_alg_options.in strace-6.2/src/xlat/sock_alg_options.in --- strace-6.1/src/xlat/sock_alg_options.in 2021-02-03 09:00:00.000000000 +0100 +++ strace-6.2/src/xlat/sock_alg_options.in 2023-01-05 09:00:00.000000000 +0100 @@ -1,7 +1,8 @@ #value_indexed -ALG_SET_KEY 1 -ALG_SET_IV 2 -ALG_SET_OP 3 -ALG_SET_AEAD_ASSOCLEN 4 -ALG_SET_AEAD_AUTHSIZE 5 -ALG_SET_DRBG_ENTROPY 6 +ALG_SET_KEY 1 +ALG_SET_IV 2 +ALG_SET_OP 3 +ALG_SET_AEAD_ASSOCLEN 4 +ALG_SET_AEAD_AUTHSIZE 5 +ALG_SET_DRBG_ENTROPY 6 +ALG_SET_KEY_BY_KEY_SERIAL 7 diff -Nru strace-6.1/src/xlat/term_cmds_overlapping.h strace-6.2/src/xlat/term_cmds_overlapping.h --- strace-6.1/src/xlat/term_cmds_overlapping.h 1970-01-01 01:00:00.000000000 +0100 +++ strace-6.2/src/xlat/term_cmds_overlapping.h 2023-02-26 22:20:47.000000000 +0100 @@ -0,0 +1,138 @@ +/* Generated by ./src/xlat/gen.sh from ./src/xlat/term_cmds_overlapping.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#undef XLAT_PREV_VAL + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat term_cmds_overlapping in mpers mode + +# else + +DIAG_PUSH_IGNORE_TAUTOLOGICAL_CONSTANT_COMPARE +static const struct xlat_data term_cmds_overlapping_xdata[] = { + +#if defined(TCGETS) || (defined(HAVE_DECL_TCGETS) && HAVE_DECL_TCGETS) + XLAT(TCGETS), + #define XLAT_VAL_0 ((unsigned) (TCGETS)) + #define XLAT_STR_0 STRINGIFY(TCGETS) +#endif +#if defined(TCSETS) || (defined(HAVE_DECL_TCSETS) && HAVE_DECL_TCSETS) + XLAT(TCSETS), + #define XLAT_VAL_1 ((unsigned) (TCSETS)) + #define XLAT_STR_1 STRINGIFY(TCSETS) +#endif +#if defined(TCSETSW) || (defined(HAVE_DECL_TCSETSW) && HAVE_DECL_TCSETSW) + XLAT(TCSETSW), + #define XLAT_VAL_2 ((unsigned) (TCSETSW)) + #define XLAT_STR_2 STRINGIFY(TCSETSW) +#endif +#if defined(TCSETSF) || (defined(HAVE_DECL_TCSETSF) && HAVE_DECL_TCSETSF) + XLAT(TCSETSF), + #define XLAT_VAL_3 ((unsigned) (TCSETSF)) + #define XLAT_STR_3 STRINGIFY(TCSETSF) +#endif +#if defined(TCGETA) || (defined(HAVE_DECL_TCGETA) && HAVE_DECL_TCGETA) + XLAT(TCGETA), + #define XLAT_VAL_4 ((unsigned) (TCGETA)) + #define XLAT_STR_4 STRINGIFY(TCGETA) +#endif +#if defined(TCSETA) || (defined(HAVE_DECL_TCSETA) && HAVE_DECL_TCSETA) + XLAT(TCSETA), + #define XLAT_VAL_5 ((unsigned) (TCSETA)) + #define XLAT_STR_5 STRINGIFY(TCSETA) +#endif +#if defined(TCSETAW) || (defined(HAVE_DECL_TCSETAW) && HAVE_DECL_TCSETAW) + XLAT(TCSETAW), + #define XLAT_VAL_6 ((unsigned) (TCSETAW)) + #define XLAT_STR_6 STRINGIFY(TCSETAW) +#endif +#if defined(TCSETAF) || (defined(HAVE_DECL_TCSETAF) && HAVE_DECL_TCSETAF) + XLAT(TCSETAF), + #define XLAT_VAL_7 ((unsigned) (TCSETAF)) + #define XLAT_STR_7 STRINGIFY(TCSETAF) +#endif +}; +static +const struct xlat term_cmds_overlapping[1] = { { + .data = term_cmds_overlapping_xdata, + .size = ARRAY_SIZE(term_cmds_overlapping_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif + , +} }; +DIAG_POP_IGNORE_TAUTOLOGICAL_CONSTANT_COMPARE + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff -Nru strace-6.1/src/xlat/term_cmds_overlapping.in strace-6.2/src/xlat/term_cmds_overlapping.in --- strace-6.1/src/xlat/term_cmds_overlapping.in 1970-01-01 01:00:00.000000000 +0100 +++ strace-6.2/src/xlat/term_cmds_overlapping.in 2023-02-20 09:00:00.000000000 +0100 @@ -0,0 +1,9 @@ +/* 0x5401 .. 0x5408 */ +TCGETS +TCSETS +TCSETSW +TCSETSF +TCGETA +TCSETA +TCSETAW +TCSETAF diff -Nru strace-6.1/src/xlat/v4l2_control_flags.h strace-6.2/src/xlat/v4l2_control_flags.h --- strace-6.1/src/xlat/v4l2_control_flags.h 2022-12-12 19:28:52.000000000 +0100 +++ strace-6.2/src/xlat/v4l2_control_flags.h 2023-02-26 22:20:47.000000000 +0100 @@ -48,6 +48,9 @@ XLAT(V4L2_CTRL_FLAG_MODIFY_LAYOUT), #define XLAT_VAL_10 ((unsigned) (V4L2_CTRL_FLAG_MODIFY_LAYOUT)) #define XLAT_STR_10 STRINGIFY(V4L2_CTRL_FLAG_MODIFY_LAYOUT) + XLAT(V4L2_CTRL_FLAG_DYNAMIC_ARRAY), + #define XLAT_VAL_11 ((unsigned) (V4L2_CTRL_FLAG_DYNAMIC_ARRAY)) + #define XLAT_STR_11 STRINGIFY(V4L2_CTRL_FLAG_DYNAMIC_ARRAY) }; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static @@ -90,6 +93,9 @@ # ifdef XLAT_VAL_10 | XLAT_VAL_10 # endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif , .flags_strsz = 0 # ifdef XLAT_STR_0 @@ -125,6 +131,9 @@ # ifdef XLAT_STR_10 + sizeof(XLAT_STR_10) # endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif , } }; DIAG_POP_IGNORE_TAUTOLOGICAL_CONSTANT_COMPARE @@ -151,6 +160,8 @@ # undef XLAT_VAL_9 # undef XLAT_STR_10 # undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff -Nru strace-6.1/src/xlat/v4l2_control_flags.in strace-6.2/src/xlat/v4l2_control_flags.in --- strace-6.1/src/xlat/v4l2_control_flags.in 2021-02-06 09:00:00.000000000 +0100 +++ strace-6.2/src/xlat/v4l2_control_flags.in 2023-02-13 09:00:00.000000000 +0100 @@ -10,3 +10,4 @@ V4L2_CTRL_FLAG_HAS_PAYLOAD V4L2_CTRL_FLAG_EXECUTE_ON_WRITE V4L2_CTRL_FLAG_MODIFY_LAYOUT +V4L2_CTRL_FLAG_DYNAMIC_ARRAY diff -Nru strace-6.1/src/xlat/v4l2_control_id_bases.h strace-6.2/src/xlat/v4l2_control_id_bases.h --- strace-6.1/src/xlat/v4l2_control_id_bases.h 2022-12-12 19:28:52.000000000 +0100 +++ strace-6.2/src/xlat/v4l2_control_id_bases.h 2023-02-26 22:20:47.000000000 +0100 @@ -60,48 +60,57 @@ XLAT(V4L2_CID_USER_ALLEGRO_BASE), #define XLAT_VAL_14 ((unsigned) (V4L2_CID_USER_ALLEGRO_BASE)) #define XLAT_STR_14 STRINGIFY(V4L2_CID_USER_ALLEGRO_BASE) + XLAT(V4L2_CID_USER_ISL7998X_BASE), + #define XLAT_VAL_15 ((unsigned) (V4L2_CID_USER_ISL7998X_BASE)) + #define XLAT_STR_15 STRINGIFY(V4L2_CID_USER_ISL7998X_BASE) + XLAT(V4L2_CID_USER_DW100_BASE), + #define XLAT_VAL_16 ((unsigned) (V4L2_CID_USER_DW100_BASE)) + #define XLAT_STR_16 STRINGIFY(V4L2_CID_USER_DW100_BASE) + XLAT(V4L2_CID_USER_ASPEED_BASE), + #define XLAT_VAL_17 ((unsigned) (V4L2_CID_USER_ASPEED_BASE)) + #define XLAT_STR_17 STRINGIFY(V4L2_CID_USER_ASPEED_BASE) XLAT(V4L2_CID_CODEC_BASE), - #define XLAT_VAL_15 ((unsigned) (V4L2_CID_CODEC_BASE)) - #define XLAT_STR_15 STRINGIFY(V4L2_CID_CODEC_BASE) + #define XLAT_VAL_18 ((unsigned) (V4L2_CID_CODEC_BASE)) + #define XLAT_STR_18 STRINGIFY(V4L2_CID_CODEC_BASE) XLAT(V4L2_CID_MPEG_CX2341X_BASE), - #define XLAT_VAL_16 ((unsigned) (V4L2_CID_MPEG_CX2341X_BASE)) - #define XLAT_STR_16 STRINGIFY(V4L2_CID_MPEG_CX2341X_BASE) + #define XLAT_VAL_19 ((unsigned) (V4L2_CID_MPEG_CX2341X_BASE)) + #define XLAT_STR_19 STRINGIFY(V4L2_CID_MPEG_CX2341X_BASE) XLAT(V4L2_CID_MPEG_MFC51_BASE), - #define XLAT_VAL_17 ((unsigned) (V4L2_CID_MPEG_MFC51_BASE)) - #define XLAT_STR_17 STRINGIFY(V4L2_CID_MPEG_MFC51_BASE) + #define XLAT_VAL_20 ((unsigned) (V4L2_CID_MPEG_MFC51_BASE)) + #define XLAT_STR_20 STRINGIFY(V4L2_CID_MPEG_MFC51_BASE) XLAT(V4L2_CID_CAMERA_CLASS_BASE), - #define XLAT_VAL_18 ((unsigned) (V4L2_CID_CAMERA_CLASS_BASE)) - #define XLAT_STR_18 STRINGIFY(V4L2_CID_CAMERA_CLASS_BASE) + #define XLAT_VAL_21 ((unsigned) (V4L2_CID_CAMERA_CLASS_BASE)) + #define XLAT_STR_21 STRINGIFY(V4L2_CID_CAMERA_CLASS_BASE) XLAT(V4L2_CID_FM_TX_CLASS_BASE), - #define XLAT_VAL_19 ((unsigned) (V4L2_CID_FM_TX_CLASS_BASE)) - #define XLAT_STR_19 STRINGIFY(V4L2_CID_FM_TX_CLASS_BASE) + #define XLAT_VAL_22 ((unsigned) (V4L2_CID_FM_TX_CLASS_BASE)) + #define XLAT_STR_22 STRINGIFY(V4L2_CID_FM_TX_CLASS_BASE) XLAT(V4L2_CID_FLASH_CLASS_BASE), - #define XLAT_VAL_20 ((unsigned) (V4L2_CID_FLASH_CLASS_BASE)) - #define XLAT_STR_20 STRINGIFY(V4L2_CID_FLASH_CLASS_BASE) + #define XLAT_VAL_23 ((unsigned) (V4L2_CID_FLASH_CLASS_BASE)) + #define XLAT_STR_23 STRINGIFY(V4L2_CID_FLASH_CLASS_BASE) XLAT(V4L2_CID_JPEG_CLASS_BASE), - #define XLAT_VAL_21 ((unsigned) (V4L2_CID_JPEG_CLASS_BASE)) - #define XLAT_STR_21 STRINGIFY(V4L2_CID_JPEG_CLASS_BASE) + #define XLAT_VAL_24 ((unsigned) (V4L2_CID_JPEG_CLASS_BASE)) + #define XLAT_STR_24 STRINGIFY(V4L2_CID_JPEG_CLASS_BASE) XLAT(V4L2_CID_IMAGE_SOURCE_CLASS_BASE), - #define XLAT_VAL_22 ((unsigned) (V4L2_CID_IMAGE_SOURCE_CLASS_BASE)) - #define XLAT_STR_22 STRINGIFY(V4L2_CID_IMAGE_SOURCE_CLASS_BASE) + #define XLAT_VAL_25 ((unsigned) (V4L2_CID_IMAGE_SOURCE_CLASS_BASE)) + #define XLAT_STR_25 STRINGIFY(V4L2_CID_IMAGE_SOURCE_CLASS_BASE) XLAT(V4L2_CID_IMAGE_PROC_CLASS_BASE), - #define XLAT_VAL_23 ((unsigned) (V4L2_CID_IMAGE_PROC_CLASS_BASE)) - #define XLAT_STR_23 STRINGIFY(V4L2_CID_IMAGE_PROC_CLASS_BASE) + #define XLAT_VAL_26 ((unsigned) (V4L2_CID_IMAGE_PROC_CLASS_BASE)) + #define XLAT_STR_26 STRINGIFY(V4L2_CID_IMAGE_PROC_CLASS_BASE) XLAT(V4L2_CID_DV_CLASS_BASE), - #define XLAT_VAL_24 ((unsigned) (V4L2_CID_DV_CLASS_BASE)) - #define XLAT_STR_24 STRINGIFY(V4L2_CID_DV_CLASS_BASE) + #define XLAT_VAL_27 ((unsigned) (V4L2_CID_DV_CLASS_BASE)) + #define XLAT_STR_27 STRINGIFY(V4L2_CID_DV_CLASS_BASE) XLAT(V4L2_CID_FM_RX_CLASS_BASE), - #define XLAT_VAL_25 ((unsigned) (V4L2_CID_FM_RX_CLASS_BASE)) - #define XLAT_STR_25 STRINGIFY(V4L2_CID_FM_RX_CLASS_BASE) + #define XLAT_VAL_28 ((unsigned) (V4L2_CID_FM_RX_CLASS_BASE)) + #define XLAT_STR_28 STRINGIFY(V4L2_CID_FM_RX_CLASS_BASE) XLAT(V4L2_CID_RF_TUNER_CLASS_BASE), - #define XLAT_VAL_26 ((unsigned) (V4L2_CID_RF_TUNER_CLASS_BASE)) - #define XLAT_STR_26 STRINGIFY(V4L2_CID_RF_TUNER_CLASS_BASE) + #define XLAT_VAL_29 ((unsigned) (V4L2_CID_RF_TUNER_CLASS_BASE)) + #define XLAT_STR_29 STRINGIFY(V4L2_CID_RF_TUNER_CLASS_BASE) XLAT(V4L2_CID_DETECT_CLASS_BASE), - #define XLAT_VAL_27 ((unsigned) (V4L2_CID_DETECT_CLASS_BASE)) - #define XLAT_STR_27 STRINGIFY(V4L2_CID_DETECT_CLASS_BASE) + #define XLAT_VAL_30 ((unsigned) (V4L2_CID_DETECT_CLASS_BASE)) + #define XLAT_STR_30 STRINGIFY(V4L2_CID_DETECT_CLASS_BASE) XLAT(V4L2_CID_CODEC_STATELESS_BASE), - #define XLAT_VAL_28 ((unsigned) (V4L2_CID_CODEC_STATELESS_BASE)) - #define XLAT_STR_28 STRINGIFY(V4L2_CID_CODEC_STATELESS_BASE) + #define XLAT_VAL_31 ((unsigned) (V4L2_CID_CODEC_STATELESS_BASE)) + #define XLAT_STR_31 STRINGIFY(V4L2_CID_CODEC_STATELESS_BASE) }; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static @@ -198,6 +207,15 @@ # ifdef XLAT_VAL_28 | XLAT_VAL_28 # endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif , .flags_strsz = 0 # ifdef XLAT_STR_0 @@ -287,6 +305,15 @@ # ifdef XLAT_STR_28 + sizeof(XLAT_STR_28) # endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif , } }; DIAG_POP_IGNORE_TAUTOLOGICAL_CONSTANT_COMPARE @@ -349,6 +376,12 @@ # undef XLAT_VAL_27 # undef XLAT_STR_28 # undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff -Nru strace-6.1/src/xlat/v4l2_control_id_bases.in strace-6.2/src/xlat/v4l2_control_id_bases.in --- strace-6.1/src/xlat/v4l2_control_id_bases.in 2022-01-08 09:07:00.000000000 +0100 +++ strace-6.2/src/xlat/v4l2_control_id_bases.in 2023-02-13 09:00:00.000000000 +0100 @@ -14,6 +14,9 @@ V4L2_CID_USER_CODA_BASE V4L2_CID_USER_CCS_BASE V4L2_CID_USER_ALLEGRO_BASE +V4L2_CID_USER_ISL7998X_BASE +V4L2_CID_USER_DW100_BASE +V4L2_CID_USER_ASPEED_BASE V4L2_CID_CODEC_BASE V4L2_CID_MPEG_CX2341X_BASE V4L2_CID_MPEG_MFC51_BASE diff -Nru strace-6.1/src/xlat/v4l2_control_ids.h strace-6.2/src/xlat/v4l2_control_ids.h --- strace-6.1/src/xlat/v4l2_control_ids.h 2022-12-12 19:28:54.000000000 +0100 +++ strace-6.2/src/xlat/v4l2_control_ids.h 2023-02-26 22:20:50.000000000 +0100 @@ -340,6 +340,14 @@ #undef XLAT_PREV_VAL #define XLAT_PREV_VAL (V4L2_CID_COLORFX_CBCR) #if defined XLAT_PREV_VAL +static_assert((unsigned long long) (V4L2_CID_COLORFX_RGB) + > (unsigned long long) (XLAT_PREV_VAL), + "Incorrect order in #sorted xlat: V4L2_CID_COLORFX_RGB" + " is not larger than the previous value"); +#endif +#undef XLAT_PREV_VAL +#define XLAT_PREV_VAL (V4L2_CID_COLORFX_RGB) +#if defined XLAT_PREV_VAL static_assert((unsigned long long) (V4L2_CID_MPEG_STREAM_TYPE) > (unsigned long long) (XLAT_PREV_VAL), "Incorrect order in #sorted xlat: V4L2_CID_MPEG_STREAM_TYPE" @@ -3126,1014 +3134,1017 @@ XLAT(V4L2_CID_COLORFX_CBCR), #define XLAT_VAL_41 ((unsigned) (V4L2_CID_COLORFX_CBCR)) #define XLAT_STR_41 STRINGIFY(V4L2_CID_COLORFX_CBCR) + XLAT(V4L2_CID_COLORFX_RGB), + #define XLAT_VAL_42 ((unsigned) (V4L2_CID_COLORFX_RGB)) + #define XLAT_STR_42 STRINGIFY(V4L2_CID_COLORFX_RGB) XLAT(V4L2_CID_MPEG_STREAM_TYPE), - #define XLAT_VAL_42 ((unsigned) (V4L2_CID_MPEG_STREAM_TYPE)) - #define XLAT_STR_42 STRINGIFY(V4L2_CID_MPEG_STREAM_TYPE) + #define XLAT_VAL_43 ((unsigned) (V4L2_CID_MPEG_STREAM_TYPE)) + #define XLAT_STR_43 STRINGIFY(V4L2_CID_MPEG_STREAM_TYPE) XLAT(V4L2_CID_MPEG_STREAM_PID_PMT), - #define XLAT_VAL_43 ((unsigned) (V4L2_CID_MPEG_STREAM_PID_PMT)) - #define XLAT_STR_43 STRINGIFY(V4L2_CID_MPEG_STREAM_PID_PMT) + #define XLAT_VAL_44 ((unsigned) (V4L2_CID_MPEG_STREAM_PID_PMT)) + #define XLAT_STR_44 STRINGIFY(V4L2_CID_MPEG_STREAM_PID_PMT) XLAT(V4L2_CID_MPEG_STREAM_PID_AUDIO), - #define XLAT_VAL_44 ((unsigned) (V4L2_CID_MPEG_STREAM_PID_AUDIO)) - #define XLAT_STR_44 STRINGIFY(V4L2_CID_MPEG_STREAM_PID_AUDIO) + #define XLAT_VAL_45 ((unsigned) (V4L2_CID_MPEG_STREAM_PID_AUDIO)) + #define XLAT_STR_45 STRINGIFY(V4L2_CID_MPEG_STREAM_PID_AUDIO) XLAT(V4L2_CID_MPEG_STREAM_PID_VIDEO), - #define XLAT_VAL_45 ((unsigned) (V4L2_CID_MPEG_STREAM_PID_VIDEO)) - #define XLAT_STR_45 STRINGIFY(V4L2_CID_MPEG_STREAM_PID_VIDEO) + #define XLAT_VAL_46 ((unsigned) (V4L2_CID_MPEG_STREAM_PID_VIDEO)) + #define XLAT_STR_46 STRINGIFY(V4L2_CID_MPEG_STREAM_PID_VIDEO) XLAT(V4L2_CID_MPEG_STREAM_PID_PCR), - #define XLAT_VAL_46 ((unsigned) (V4L2_CID_MPEG_STREAM_PID_PCR)) - #define XLAT_STR_46 STRINGIFY(V4L2_CID_MPEG_STREAM_PID_PCR) + #define XLAT_VAL_47 ((unsigned) (V4L2_CID_MPEG_STREAM_PID_PCR)) + #define XLAT_STR_47 STRINGIFY(V4L2_CID_MPEG_STREAM_PID_PCR) XLAT(V4L2_CID_MPEG_STREAM_PES_ID_AUDIO), - #define XLAT_VAL_47 ((unsigned) (V4L2_CID_MPEG_STREAM_PES_ID_AUDIO)) - #define XLAT_STR_47 STRINGIFY(V4L2_CID_MPEG_STREAM_PES_ID_AUDIO) + #define XLAT_VAL_48 ((unsigned) (V4L2_CID_MPEG_STREAM_PES_ID_AUDIO)) + #define XLAT_STR_48 STRINGIFY(V4L2_CID_MPEG_STREAM_PES_ID_AUDIO) XLAT(V4L2_CID_MPEG_STREAM_PES_ID_VIDEO), - #define XLAT_VAL_48 ((unsigned) (V4L2_CID_MPEG_STREAM_PES_ID_VIDEO)) - #define XLAT_STR_48 STRINGIFY(V4L2_CID_MPEG_STREAM_PES_ID_VIDEO) + #define XLAT_VAL_49 ((unsigned) (V4L2_CID_MPEG_STREAM_PES_ID_VIDEO)) + #define XLAT_STR_49 STRINGIFY(V4L2_CID_MPEG_STREAM_PES_ID_VIDEO) XLAT(V4L2_CID_MPEG_STREAM_VBI_FMT), - #define XLAT_VAL_49 ((unsigned) (V4L2_CID_MPEG_STREAM_VBI_FMT)) - #define XLAT_STR_49 STRINGIFY(V4L2_CID_MPEG_STREAM_VBI_FMT) + #define XLAT_VAL_50 ((unsigned) (V4L2_CID_MPEG_STREAM_VBI_FMT)) + #define XLAT_STR_50 STRINGIFY(V4L2_CID_MPEG_STREAM_VBI_FMT) XLAT(V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ), - #define XLAT_VAL_50 ((unsigned) (V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ)) - #define XLAT_STR_50 STRINGIFY(V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ) + #define XLAT_VAL_51 ((unsigned) (V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ)) + #define XLAT_STR_51 STRINGIFY(V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ) XLAT(V4L2_CID_MPEG_AUDIO_ENCODING), - #define XLAT_VAL_51 ((unsigned) (V4L2_CID_MPEG_AUDIO_ENCODING)) - #define XLAT_STR_51 STRINGIFY(V4L2_CID_MPEG_AUDIO_ENCODING) + #define XLAT_VAL_52 ((unsigned) (V4L2_CID_MPEG_AUDIO_ENCODING)) + #define XLAT_STR_52 STRINGIFY(V4L2_CID_MPEG_AUDIO_ENCODING) XLAT(V4L2_CID_MPEG_AUDIO_L1_BITRATE), - #define XLAT_VAL_52 ((unsigned) (V4L2_CID_MPEG_AUDIO_L1_BITRATE)) - #define XLAT_STR_52 STRINGIFY(V4L2_CID_MPEG_AUDIO_L1_BITRATE) + #define XLAT_VAL_53 ((unsigned) (V4L2_CID_MPEG_AUDIO_L1_BITRATE)) + #define XLAT_STR_53 STRINGIFY(V4L2_CID_MPEG_AUDIO_L1_BITRATE) XLAT(V4L2_CID_MPEG_AUDIO_L2_BITRATE), - #define XLAT_VAL_53 ((unsigned) (V4L2_CID_MPEG_AUDIO_L2_BITRATE)) - #define XLAT_STR_53 STRINGIFY(V4L2_CID_MPEG_AUDIO_L2_BITRATE) + #define XLAT_VAL_54 ((unsigned) (V4L2_CID_MPEG_AUDIO_L2_BITRATE)) + #define XLAT_STR_54 STRINGIFY(V4L2_CID_MPEG_AUDIO_L2_BITRATE) XLAT(V4L2_CID_MPEG_AUDIO_L3_BITRATE), - #define XLAT_VAL_54 ((unsigned) (V4L2_CID_MPEG_AUDIO_L3_BITRATE)) - #define XLAT_STR_54 STRINGIFY(V4L2_CID_MPEG_AUDIO_L3_BITRATE) + #define XLAT_VAL_55 ((unsigned) (V4L2_CID_MPEG_AUDIO_L3_BITRATE)) + #define XLAT_STR_55 STRINGIFY(V4L2_CID_MPEG_AUDIO_L3_BITRATE) XLAT(V4L2_CID_MPEG_AUDIO_MODE), - #define XLAT_VAL_55 ((unsigned) (V4L2_CID_MPEG_AUDIO_MODE)) - #define XLAT_STR_55 STRINGIFY(V4L2_CID_MPEG_AUDIO_MODE) + #define XLAT_VAL_56 ((unsigned) (V4L2_CID_MPEG_AUDIO_MODE)) + #define XLAT_STR_56 STRINGIFY(V4L2_CID_MPEG_AUDIO_MODE) XLAT(V4L2_CID_MPEG_AUDIO_MODE_EXTENSION), - #define XLAT_VAL_56 ((unsigned) (V4L2_CID_MPEG_AUDIO_MODE_EXTENSION)) - #define XLAT_STR_56 STRINGIFY(V4L2_CID_MPEG_AUDIO_MODE_EXTENSION) + #define XLAT_VAL_57 ((unsigned) (V4L2_CID_MPEG_AUDIO_MODE_EXTENSION)) + #define XLAT_STR_57 STRINGIFY(V4L2_CID_MPEG_AUDIO_MODE_EXTENSION) XLAT(V4L2_CID_MPEG_AUDIO_EMPHASIS), - #define XLAT_VAL_57 ((unsigned) (V4L2_CID_MPEG_AUDIO_EMPHASIS)) - #define XLAT_STR_57 STRINGIFY(V4L2_CID_MPEG_AUDIO_EMPHASIS) + #define XLAT_VAL_58 ((unsigned) (V4L2_CID_MPEG_AUDIO_EMPHASIS)) + #define XLAT_STR_58 STRINGIFY(V4L2_CID_MPEG_AUDIO_EMPHASIS) XLAT(V4L2_CID_MPEG_AUDIO_CRC), - #define XLAT_VAL_58 ((unsigned) (V4L2_CID_MPEG_AUDIO_CRC)) - #define XLAT_STR_58 STRINGIFY(V4L2_CID_MPEG_AUDIO_CRC) + #define XLAT_VAL_59 ((unsigned) (V4L2_CID_MPEG_AUDIO_CRC)) + #define XLAT_STR_59 STRINGIFY(V4L2_CID_MPEG_AUDIO_CRC) XLAT(V4L2_CID_MPEG_AUDIO_MUTE), - #define XLAT_VAL_59 ((unsigned) (V4L2_CID_MPEG_AUDIO_MUTE)) - #define XLAT_STR_59 STRINGIFY(V4L2_CID_MPEG_AUDIO_MUTE) + #define XLAT_VAL_60 ((unsigned) (V4L2_CID_MPEG_AUDIO_MUTE)) + #define XLAT_STR_60 STRINGIFY(V4L2_CID_MPEG_AUDIO_MUTE) XLAT(V4L2_CID_MPEG_AUDIO_AAC_BITRATE), - #define XLAT_VAL_60 ((unsigned) (V4L2_CID_MPEG_AUDIO_AAC_BITRATE)) - #define XLAT_STR_60 STRINGIFY(V4L2_CID_MPEG_AUDIO_AAC_BITRATE) + #define XLAT_VAL_61 ((unsigned) (V4L2_CID_MPEG_AUDIO_AAC_BITRATE)) + #define XLAT_STR_61 STRINGIFY(V4L2_CID_MPEG_AUDIO_AAC_BITRATE) XLAT(V4L2_CID_MPEG_AUDIO_AC3_BITRATE), - #define XLAT_VAL_61 ((unsigned) (V4L2_CID_MPEG_AUDIO_AC3_BITRATE)) - #define XLAT_STR_61 STRINGIFY(V4L2_CID_MPEG_AUDIO_AC3_BITRATE) + #define XLAT_VAL_62 ((unsigned) (V4L2_CID_MPEG_AUDIO_AC3_BITRATE)) + #define XLAT_STR_62 STRINGIFY(V4L2_CID_MPEG_AUDIO_AC3_BITRATE) XLAT(V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK), - #define XLAT_VAL_62 ((unsigned) (V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK)) - #define XLAT_STR_62 STRINGIFY(V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK) + #define XLAT_VAL_63 ((unsigned) (V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK)) + #define XLAT_STR_63 STRINGIFY(V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK) XLAT(V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK), - #define XLAT_VAL_63 ((unsigned) (V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK)) - #define XLAT_STR_63 STRINGIFY(V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK) + #define XLAT_VAL_64 ((unsigned) (V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK)) + #define XLAT_STR_64 STRINGIFY(V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK) XLAT(V4L2_CID_MPEG_VIDEO_ENCODING), - #define XLAT_VAL_64 ((unsigned) (V4L2_CID_MPEG_VIDEO_ENCODING)) - #define XLAT_STR_64 STRINGIFY(V4L2_CID_MPEG_VIDEO_ENCODING) + #define XLAT_VAL_65 ((unsigned) (V4L2_CID_MPEG_VIDEO_ENCODING)) + #define XLAT_STR_65 STRINGIFY(V4L2_CID_MPEG_VIDEO_ENCODING) XLAT(V4L2_CID_MPEG_VIDEO_ASPECT), - #define XLAT_VAL_65 ((unsigned) (V4L2_CID_MPEG_VIDEO_ASPECT)) - #define XLAT_STR_65 STRINGIFY(V4L2_CID_MPEG_VIDEO_ASPECT) + #define XLAT_VAL_66 ((unsigned) (V4L2_CID_MPEG_VIDEO_ASPECT)) + #define XLAT_STR_66 STRINGIFY(V4L2_CID_MPEG_VIDEO_ASPECT) XLAT(V4L2_CID_MPEG_VIDEO_B_FRAMES), - #define XLAT_VAL_66 ((unsigned) (V4L2_CID_MPEG_VIDEO_B_FRAMES)) - #define XLAT_STR_66 STRINGIFY(V4L2_CID_MPEG_VIDEO_B_FRAMES) + #define XLAT_VAL_67 ((unsigned) (V4L2_CID_MPEG_VIDEO_B_FRAMES)) + #define XLAT_STR_67 STRINGIFY(V4L2_CID_MPEG_VIDEO_B_FRAMES) XLAT(V4L2_CID_MPEG_VIDEO_GOP_SIZE), - #define XLAT_VAL_67 ((unsigned) (V4L2_CID_MPEG_VIDEO_GOP_SIZE)) - #define XLAT_STR_67 STRINGIFY(V4L2_CID_MPEG_VIDEO_GOP_SIZE) + #define XLAT_VAL_68 ((unsigned) (V4L2_CID_MPEG_VIDEO_GOP_SIZE)) + #define XLAT_STR_68 STRINGIFY(V4L2_CID_MPEG_VIDEO_GOP_SIZE) XLAT(V4L2_CID_MPEG_VIDEO_GOP_CLOSURE), - #define XLAT_VAL_68 ((unsigned) (V4L2_CID_MPEG_VIDEO_GOP_CLOSURE)) - #define XLAT_STR_68 STRINGIFY(V4L2_CID_MPEG_VIDEO_GOP_CLOSURE) + #define XLAT_VAL_69 ((unsigned) (V4L2_CID_MPEG_VIDEO_GOP_CLOSURE)) + #define XLAT_STR_69 STRINGIFY(V4L2_CID_MPEG_VIDEO_GOP_CLOSURE) XLAT(V4L2_CID_MPEG_VIDEO_PULLDOWN), - #define XLAT_VAL_69 ((unsigned) (V4L2_CID_MPEG_VIDEO_PULLDOWN)) - #define XLAT_STR_69 STRINGIFY(V4L2_CID_MPEG_VIDEO_PULLDOWN) + #define XLAT_VAL_70 ((unsigned) (V4L2_CID_MPEG_VIDEO_PULLDOWN)) + #define XLAT_STR_70 STRINGIFY(V4L2_CID_MPEG_VIDEO_PULLDOWN) XLAT(V4L2_CID_MPEG_VIDEO_BITRATE_MODE), - #define XLAT_VAL_70 ((unsigned) (V4L2_CID_MPEG_VIDEO_BITRATE_MODE)) - #define XLAT_STR_70 STRINGIFY(V4L2_CID_MPEG_VIDEO_BITRATE_MODE) + #define XLAT_VAL_71 ((unsigned) (V4L2_CID_MPEG_VIDEO_BITRATE_MODE)) + #define XLAT_STR_71 STRINGIFY(V4L2_CID_MPEG_VIDEO_BITRATE_MODE) XLAT(V4L2_CID_MPEG_VIDEO_BITRATE), - #define XLAT_VAL_71 ((unsigned) (V4L2_CID_MPEG_VIDEO_BITRATE)) - #define XLAT_STR_71 STRINGIFY(V4L2_CID_MPEG_VIDEO_BITRATE) + #define XLAT_VAL_72 ((unsigned) (V4L2_CID_MPEG_VIDEO_BITRATE)) + #define XLAT_STR_72 STRINGIFY(V4L2_CID_MPEG_VIDEO_BITRATE) XLAT(V4L2_CID_MPEG_VIDEO_BITRATE_PEAK), - #define XLAT_VAL_72 ((unsigned) (V4L2_CID_MPEG_VIDEO_BITRATE_PEAK)) - #define XLAT_STR_72 STRINGIFY(V4L2_CID_MPEG_VIDEO_BITRATE_PEAK) + #define XLAT_VAL_73 ((unsigned) (V4L2_CID_MPEG_VIDEO_BITRATE_PEAK)) + #define XLAT_STR_73 STRINGIFY(V4L2_CID_MPEG_VIDEO_BITRATE_PEAK) XLAT(V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION), - #define XLAT_VAL_73 ((unsigned) (V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION)) - #define XLAT_STR_73 STRINGIFY(V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION) + #define XLAT_VAL_74 ((unsigned) (V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION)) + #define XLAT_STR_74 STRINGIFY(V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION) XLAT(V4L2_CID_MPEG_VIDEO_MUTE), - #define XLAT_VAL_74 ((unsigned) (V4L2_CID_MPEG_VIDEO_MUTE)) - #define XLAT_STR_74 STRINGIFY(V4L2_CID_MPEG_VIDEO_MUTE) + #define XLAT_VAL_75 ((unsigned) (V4L2_CID_MPEG_VIDEO_MUTE)) + #define XLAT_STR_75 STRINGIFY(V4L2_CID_MPEG_VIDEO_MUTE) XLAT(V4L2_CID_MPEG_VIDEO_MUTE_YUV), - #define XLAT_VAL_75 ((unsigned) (V4L2_CID_MPEG_VIDEO_MUTE_YUV)) - #define XLAT_STR_75 STRINGIFY(V4L2_CID_MPEG_VIDEO_MUTE_YUV) + #define XLAT_VAL_76 ((unsigned) (V4L2_CID_MPEG_VIDEO_MUTE_YUV)) + #define XLAT_STR_76 STRINGIFY(V4L2_CID_MPEG_VIDEO_MUTE_YUV) XLAT(V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE), - #define XLAT_VAL_76 ((unsigned) (V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE)) - #define XLAT_STR_76 STRINGIFY(V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE) + #define XLAT_VAL_77 ((unsigned) (V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE)) + #define XLAT_STR_77 STRINGIFY(V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE) XLAT(V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER), - #define XLAT_VAL_77 ((unsigned) (V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER)) - #define XLAT_STR_77 STRINGIFY(V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER) + #define XLAT_VAL_78 ((unsigned) (V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER)) + #define XLAT_STR_78 STRINGIFY(V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER) XLAT(V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB), - #define XLAT_VAL_78 ((unsigned) (V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB)) - #define XLAT_STR_78 STRINGIFY(V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB) + #define XLAT_VAL_79 ((unsigned) (V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB)) + #define XLAT_STR_79 STRINGIFY(V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB) XLAT(V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE), - #define XLAT_VAL_79 ((unsigned) (V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE)) - #define XLAT_STR_79 STRINGIFY(V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE) + #define XLAT_VAL_80 ((unsigned) (V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE)) + #define XLAT_STR_80 STRINGIFY(V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE) XLAT(V4L2_CID_MPEG_VIDEO_HEADER_MODE), - #define XLAT_VAL_80 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEADER_MODE)) - #define XLAT_STR_80 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEADER_MODE) + #define XLAT_VAL_81 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEADER_MODE)) + #define XLAT_STR_81 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEADER_MODE) XLAT(V4L2_CID_MPEG_VIDEO_MAX_REF_PIC), - #define XLAT_VAL_81 ((unsigned) (V4L2_CID_MPEG_VIDEO_MAX_REF_PIC)) - #define XLAT_STR_81 STRINGIFY(V4L2_CID_MPEG_VIDEO_MAX_REF_PIC) + #define XLAT_VAL_82 ((unsigned) (V4L2_CID_MPEG_VIDEO_MAX_REF_PIC)) + #define XLAT_STR_82 STRINGIFY(V4L2_CID_MPEG_VIDEO_MAX_REF_PIC) XLAT(V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE), - #define XLAT_VAL_82 ((unsigned) (V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE)) - #define XLAT_STR_82 STRINGIFY(V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE) + #define XLAT_VAL_83 ((unsigned) (V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE)) + #define XLAT_STR_83 STRINGIFY(V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE) XLAT(V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES), - #define XLAT_VAL_83 ((unsigned) (V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES)) - #define XLAT_STR_83 STRINGIFY(V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES) + #define XLAT_VAL_84 ((unsigned) (V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES)) + #define XLAT_STR_84 STRINGIFY(V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES) XLAT(V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB), - #define XLAT_VAL_84 ((unsigned) (V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB)) - #define XLAT_STR_84 STRINGIFY(V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB) + #define XLAT_VAL_85 ((unsigned) (V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB)) + #define XLAT_STR_85 STRINGIFY(V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB) XLAT(V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE), - #define XLAT_VAL_85 ((unsigned) (V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE)) - #define XLAT_STR_85 STRINGIFY(V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE) + #define XLAT_VAL_86 ((unsigned) (V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE)) + #define XLAT_STR_86 STRINGIFY(V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE) XLAT(V4L2_CID_MPEG_VIDEO_VBV_SIZE), - #define XLAT_VAL_86 ((unsigned) (V4L2_CID_MPEG_VIDEO_VBV_SIZE)) - #define XLAT_STR_86 STRINGIFY(V4L2_CID_MPEG_VIDEO_VBV_SIZE) + #define XLAT_VAL_87 ((unsigned) (V4L2_CID_MPEG_VIDEO_VBV_SIZE)) + #define XLAT_STR_87 STRINGIFY(V4L2_CID_MPEG_VIDEO_VBV_SIZE) XLAT(V4L2_CID_MPEG_VIDEO_DEC_PTS), - #define XLAT_VAL_87 ((unsigned) (V4L2_CID_MPEG_VIDEO_DEC_PTS)) - #define XLAT_STR_87 STRINGIFY(V4L2_CID_MPEG_VIDEO_DEC_PTS) + #define XLAT_VAL_88 ((unsigned) (V4L2_CID_MPEG_VIDEO_DEC_PTS)) + #define XLAT_STR_88 STRINGIFY(V4L2_CID_MPEG_VIDEO_DEC_PTS) XLAT(V4L2_CID_MPEG_VIDEO_DEC_FRAME), - #define XLAT_VAL_88 ((unsigned) (V4L2_CID_MPEG_VIDEO_DEC_FRAME)) - #define XLAT_STR_88 STRINGIFY(V4L2_CID_MPEG_VIDEO_DEC_FRAME) + #define XLAT_VAL_89 ((unsigned) (V4L2_CID_MPEG_VIDEO_DEC_FRAME)) + #define XLAT_STR_89 STRINGIFY(V4L2_CID_MPEG_VIDEO_DEC_FRAME) XLAT(V4L2_CID_MPEG_VIDEO_VBV_DELAY), - #define XLAT_VAL_89 ((unsigned) (V4L2_CID_MPEG_VIDEO_VBV_DELAY)) - #define XLAT_STR_89 STRINGIFY(V4L2_CID_MPEG_VIDEO_VBV_DELAY) + #define XLAT_VAL_90 ((unsigned) (V4L2_CID_MPEG_VIDEO_VBV_DELAY)) + #define XLAT_STR_90 STRINGIFY(V4L2_CID_MPEG_VIDEO_VBV_DELAY) XLAT(V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER), - #define XLAT_VAL_90 ((unsigned) (V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER)) - #define XLAT_STR_90 STRINGIFY(V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER) + #define XLAT_VAL_91 ((unsigned) (V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER)) + #define XLAT_STR_91 STRINGIFY(V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER) XLAT(V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE), - #define XLAT_VAL_91 ((unsigned) (V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE)) - #define XLAT_STR_91 STRINGIFY(V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE) + #define XLAT_VAL_92 ((unsigned) (V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE)) + #define XLAT_STR_92 STRINGIFY(V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE) XLAT(V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE), - #define XLAT_VAL_92 ((unsigned) (V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE)) - #define XLAT_STR_92 STRINGIFY(V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE) + #define XLAT_VAL_93 ((unsigned) (V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE)) + #define XLAT_STR_93 STRINGIFY(V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE) XLAT(V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME), - #define XLAT_VAL_93 ((unsigned) (V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME)) - #define XLAT_STR_93 STRINGIFY(V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME) + #define XLAT_VAL_94 ((unsigned) (V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME)) + #define XLAT_STR_94 STRINGIFY(V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME) XLAT(V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID), - #define XLAT_VAL_94 ((unsigned) (V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID)) - #define XLAT_STR_94 STRINGIFY(V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID) + #define XLAT_VAL_95 ((unsigned) (V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID)) + #define XLAT_STR_95 STRINGIFY(V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID) XLAT(V4L2_CID_MPEG_VIDEO_AU_DELIMITER), - #define XLAT_VAL_95 ((unsigned) (V4L2_CID_MPEG_VIDEO_AU_DELIMITER)) - #define XLAT_STR_95 STRINGIFY(V4L2_CID_MPEG_VIDEO_AU_DELIMITER) + #define XLAT_VAL_96 ((unsigned) (V4L2_CID_MPEG_VIDEO_AU_DELIMITER)) + #define XLAT_STR_96 STRINGIFY(V4L2_CID_MPEG_VIDEO_AU_DELIMITER) XLAT(V4L2_CID_MPEG_VIDEO_LTR_COUNT), - #define XLAT_VAL_96 ((unsigned) (V4L2_CID_MPEG_VIDEO_LTR_COUNT)) - #define XLAT_STR_96 STRINGIFY(V4L2_CID_MPEG_VIDEO_LTR_COUNT) + #define XLAT_VAL_97 ((unsigned) (V4L2_CID_MPEG_VIDEO_LTR_COUNT)) + #define XLAT_STR_97 STRINGIFY(V4L2_CID_MPEG_VIDEO_LTR_COUNT) XLAT(V4L2_CID_MPEG_VIDEO_FRAME_LTR_INDEX), - #define XLAT_VAL_97 ((unsigned) (V4L2_CID_MPEG_VIDEO_FRAME_LTR_INDEX)) - #define XLAT_STR_97 STRINGIFY(V4L2_CID_MPEG_VIDEO_FRAME_LTR_INDEX) + #define XLAT_VAL_98 ((unsigned) (V4L2_CID_MPEG_VIDEO_FRAME_LTR_INDEX)) + #define XLAT_STR_98 STRINGIFY(V4L2_CID_MPEG_VIDEO_FRAME_LTR_INDEX) XLAT(V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES), - #define XLAT_VAL_98 ((unsigned) (V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES)) - #define XLAT_STR_98 STRINGIFY(V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES) + #define XLAT_VAL_99 ((unsigned) (V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES)) + #define XLAT_STR_99 STRINGIFY(V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES) XLAT(V4L2_CID_MPEG_VIDEO_DEC_CONCEAL_COLOR), - #define XLAT_VAL_99 ((unsigned) (V4L2_CID_MPEG_VIDEO_DEC_CONCEAL_COLOR)) - #define XLAT_STR_99 STRINGIFY(V4L2_CID_MPEG_VIDEO_DEC_CONCEAL_COLOR) + #define XLAT_VAL_100 ((unsigned) (V4L2_CID_MPEG_VIDEO_DEC_CONCEAL_COLOR)) + #define XLAT_STR_100 STRINGIFY(V4L2_CID_MPEG_VIDEO_DEC_CONCEAL_COLOR) XLAT(V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD), - #define XLAT_VAL_100 ((unsigned) (V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD)) - #define XLAT_STR_100 STRINGIFY(V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD) + #define XLAT_VAL_101 ((unsigned) (V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD)) + #define XLAT_STR_101 STRINGIFY(V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD) XLAT(V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE), - #define XLAT_VAL_101 ((unsigned) (V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE)) - #define XLAT_STR_101 STRINGIFY(V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE) + #define XLAT_VAL_102 ((unsigned) (V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE)) + #define XLAT_STR_102 STRINGIFY(V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE) XLAT(V4L2_CID_MPEG_VIDEO_MPEG2_SLICE_PARAMS), - #define XLAT_VAL_102 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG2_SLICE_PARAMS)) - #define XLAT_STR_102 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG2_SLICE_PARAMS) + #define XLAT_VAL_103 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG2_SLICE_PARAMS)) + #define XLAT_STR_103 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG2_SLICE_PARAMS) XLAT(V4L2_CID_MPEG_VIDEO_MPEG2_QUANTIZATION), - #define XLAT_VAL_103 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG2_QUANTIZATION)) - #define XLAT_STR_103 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG2_QUANTIZATION) + #define XLAT_VAL_104 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG2_QUANTIZATION)) + #define XLAT_STR_104 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG2_QUANTIZATION) XLAT(V4L2_CID_FWHT_I_FRAME_QP), - #define XLAT_VAL_104 ((unsigned) (V4L2_CID_FWHT_I_FRAME_QP)) - #define XLAT_STR_104 STRINGIFY(V4L2_CID_FWHT_I_FRAME_QP) + #define XLAT_VAL_105 ((unsigned) (V4L2_CID_FWHT_I_FRAME_QP)) + #define XLAT_STR_105 STRINGIFY(V4L2_CID_FWHT_I_FRAME_QP) XLAT(V4L2_CID_FWHT_P_FRAME_QP), - #define XLAT_VAL_105 ((unsigned) (V4L2_CID_FWHT_P_FRAME_QP)) - #define XLAT_STR_105 STRINGIFY(V4L2_CID_FWHT_P_FRAME_QP) + #define XLAT_VAL_106 ((unsigned) (V4L2_CID_FWHT_P_FRAME_QP)) + #define XLAT_STR_106 STRINGIFY(V4L2_CID_FWHT_P_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP), - #define XLAT_VAL_106 ((unsigned) (V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP)) - #define XLAT_STR_106 STRINGIFY(V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP) + #define XLAT_VAL_107 ((unsigned) (V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP)) + #define XLAT_STR_107 STRINGIFY(V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP), - #define XLAT_VAL_107 ((unsigned) (V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP)) - #define XLAT_STR_107 STRINGIFY(V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP) + #define XLAT_VAL_108 ((unsigned) (V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP)) + #define XLAT_STR_108 STRINGIFY(V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP), - #define XLAT_VAL_108 ((unsigned) (V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP)) - #define XLAT_STR_108 STRINGIFY(V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP) + #define XLAT_VAL_109 ((unsigned) (V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP)) + #define XLAT_STR_109 STRINGIFY(V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_H263_MIN_QP), - #define XLAT_VAL_109 ((unsigned) (V4L2_CID_MPEG_VIDEO_H263_MIN_QP)) - #define XLAT_STR_109 STRINGIFY(V4L2_CID_MPEG_VIDEO_H263_MIN_QP) + #define XLAT_VAL_110 ((unsigned) (V4L2_CID_MPEG_VIDEO_H263_MIN_QP)) + #define XLAT_STR_110 STRINGIFY(V4L2_CID_MPEG_VIDEO_H263_MIN_QP) XLAT(V4L2_CID_MPEG_VIDEO_H263_MAX_QP), - #define XLAT_VAL_110 ((unsigned) (V4L2_CID_MPEG_VIDEO_H263_MAX_QP)) - #define XLAT_STR_110 STRINGIFY(V4L2_CID_MPEG_VIDEO_H263_MAX_QP) + #define XLAT_VAL_111 ((unsigned) (V4L2_CID_MPEG_VIDEO_H263_MAX_QP)) + #define XLAT_STR_111 STRINGIFY(V4L2_CID_MPEG_VIDEO_H263_MAX_QP) XLAT(V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP), - #define XLAT_VAL_111 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP)) - #define XLAT_STR_111 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP) + #define XLAT_VAL_112 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP)) + #define XLAT_STR_112 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP), - #define XLAT_VAL_112 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP)) - #define XLAT_STR_112 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP) + #define XLAT_VAL_113 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP)) + #define XLAT_STR_113 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP), - #define XLAT_VAL_113 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP)) - #define XLAT_STR_113 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP) + #define XLAT_VAL_114 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP)) + #define XLAT_STR_114 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_H264_MIN_QP), - #define XLAT_VAL_114 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_MIN_QP)) - #define XLAT_STR_114 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_MIN_QP) + #define XLAT_VAL_115 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_MIN_QP)) + #define XLAT_STR_115 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_MIN_QP) XLAT(V4L2_CID_MPEG_VIDEO_H264_MAX_QP), - #define XLAT_VAL_115 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_MAX_QP)) - #define XLAT_STR_115 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_MAX_QP) + #define XLAT_VAL_116 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_MAX_QP)) + #define XLAT_STR_116 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_MAX_QP) XLAT(V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM), - #define XLAT_VAL_116 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM)) - #define XLAT_STR_116 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM) + #define XLAT_VAL_117 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM)) + #define XLAT_STR_117 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM) XLAT(V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE), - #define XLAT_VAL_117 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE)) - #define XLAT_STR_117 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE) + #define XLAT_VAL_118 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE)) + #define XLAT_STR_118 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE) XLAT(V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE), - #define XLAT_VAL_118 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE)) - #define XLAT_STR_118 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE) + #define XLAT_VAL_119 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE)) + #define XLAT_STR_119 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE) XLAT(V4L2_CID_MPEG_VIDEO_H264_I_PERIOD), - #define XLAT_VAL_119 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_I_PERIOD)) - #define XLAT_STR_119 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_I_PERIOD) + #define XLAT_VAL_120 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_I_PERIOD)) + #define XLAT_STR_120 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_I_PERIOD) XLAT(V4L2_CID_MPEG_VIDEO_H264_LEVEL), - #define XLAT_VAL_120 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_LEVEL)) - #define XLAT_STR_120 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_LEVEL) + #define XLAT_VAL_121 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_LEVEL)) + #define XLAT_STR_121 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_LEVEL) XLAT(V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA), - #define XLAT_VAL_121 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA)) - #define XLAT_STR_121 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA) + #define XLAT_VAL_122 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA)) + #define XLAT_STR_122 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA) XLAT(V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA), - #define XLAT_VAL_122 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA)) - #define XLAT_STR_122 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA) + #define XLAT_VAL_123 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA)) + #define XLAT_STR_123 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA) XLAT(V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE), - #define XLAT_VAL_123 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE)) - #define XLAT_STR_123 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE) + #define XLAT_VAL_124 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE)) + #define XLAT_STR_124 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE) XLAT(V4L2_CID_MPEG_VIDEO_H264_PROFILE), - #define XLAT_VAL_124 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_PROFILE)) - #define XLAT_STR_124 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_PROFILE) + #define XLAT_VAL_125 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_PROFILE)) + #define XLAT_STR_125 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_PROFILE) XLAT(V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT), - #define XLAT_VAL_125 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT)) - #define XLAT_STR_125 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT) + #define XLAT_VAL_126 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT)) + #define XLAT_STR_126 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT) XLAT(V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH), - #define XLAT_VAL_126 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH)) - #define XLAT_STR_126 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH) + #define XLAT_VAL_127 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH)) + #define XLAT_STR_127 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH) XLAT(V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE), - #define XLAT_VAL_127 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE)) - #define XLAT_STR_127 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE) + #define XLAT_VAL_128 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE)) + #define XLAT_STR_128 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE) XLAT(V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC), - #define XLAT_VAL_128 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC)) - #define XLAT_STR_128 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC) + #define XLAT_VAL_129 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC)) + #define XLAT_STR_129 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC) XLAT(V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING), - #define XLAT_VAL_129 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING)) - #define XLAT_STR_129 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING) + #define XLAT_VAL_130 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING)) + #define XLAT_STR_130 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING) XLAT(V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0), - #define XLAT_VAL_130 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0)) - #define XLAT_STR_130 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0) + #define XLAT_VAL_131 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0)) + #define XLAT_STR_131 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0) XLAT(V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE), - #define XLAT_VAL_131 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE)) - #define XLAT_STR_131 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE) + #define XLAT_VAL_132 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE)) + #define XLAT_STR_132 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE) XLAT(V4L2_CID_MPEG_VIDEO_H264_FMO), - #define XLAT_VAL_132 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_FMO)) - #define XLAT_STR_132 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_FMO) + #define XLAT_VAL_133 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_FMO)) + #define XLAT_STR_133 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_FMO) XLAT(V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE), - #define XLAT_VAL_133 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE)) - #define XLAT_STR_133 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE) + #define XLAT_VAL_134 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE)) + #define XLAT_STR_134 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE) XLAT(V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP), - #define XLAT_VAL_134 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP)) - #define XLAT_STR_134 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP) + #define XLAT_VAL_135 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP)) + #define XLAT_STR_135 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP) XLAT(V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION), - #define XLAT_VAL_135 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION)) - #define XLAT_STR_135 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION) + #define XLAT_VAL_136 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION)) + #define XLAT_STR_136 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION) XLAT(V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE), - #define XLAT_VAL_136 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE)) - #define XLAT_STR_136 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE) + #define XLAT_VAL_137 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE)) + #define XLAT_STR_137 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE) XLAT(V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH), - #define XLAT_VAL_137 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH)) - #define XLAT_STR_137 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH) + #define XLAT_VAL_138 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH)) + #define XLAT_STR_138 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH) XLAT(V4L2_CID_MPEG_VIDEO_H264_ASO), - #define XLAT_VAL_138 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_ASO)) - #define XLAT_STR_138 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_ASO) + #define XLAT_VAL_139 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_ASO)) + #define XLAT_STR_139 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_ASO) XLAT(V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER), - #define XLAT_VAL_139 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER)) - #define XLAT_STR_139 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER) + #define XLAT_VAL_140 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER)) + #define XLAT_STR_140 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER) XLAT(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING), - #define XLAT_VAL_140 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING)) - #define XLAT_STR_140 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING) + #define XLAT_VAL_141 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING)) + #define XLAT_STR_141 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING) XLAT(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE), - #define XLAT_VAL_141 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE)) - #define XLAT_STR_141 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE) + #define XLAT_VAL_142 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE)) + #define XLAT_STR_142 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE) XLAT(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER), - #define XLAT_VAL_142 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER)) - #define XLAT_STR_142 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER) + #define XLAT_VAL_143 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER)) + #define XLAT_STR_143 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER) XLAT(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP), - #define XLAT_VAL_143 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP)) - #define XLAT_STR_143 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP) + #define XLAT_VAL_144 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP)) + #define XLAT_STR_144 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP) XLAT(V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION), - #define XLAT_VAL_144 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION)) - #define XLAT_STR_144 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION) + #define XLAT_VAL_145 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION)) + #define XLAT_STR_145 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION) XLAT(V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET), - #define XLAT_VAL_145 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET)) - #define XLAT_STR_145 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET) + #define XLAT_VAL_146 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET)) + #define XLAT_STR_146 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET) XLAT(V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP), - #define XLAT_VAL_146 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP)) - #define XLAT_STR_146 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP) + #define XLAT_VAL_147 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP)) + #define XLAT_STR_147 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP) XLAT(V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP), - #define XLAT_VAL_147 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP)) - #define XLAT_STR_147 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP) + #define XLAT_VAL_148 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP)) + #define XLAT_STR_148 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP) XLAT(V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP), - #define XLAT_VAL_148 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP)) - #define XLAT_STR_148 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP) + #define XLAT_VAL_149 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP)) + #define XLAT_STR_149 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP) XLAT(V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP), - #define XLAT_VAL_149 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP)) - #define XLAT_STR_149 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP) + #define XLAT_VAL_150 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP)) + #define XLAT_STR_150 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP) XLAT(V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MIN_QP), - #define XLAT_VAL_150 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MIN_QP)) - #define XLAT_STR_150 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MIN_QP) + #define XLAT_VAL_151 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MIN_QP)) + #define XLAT_STR_151 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MIN_QP) XLAT(V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MAX_QP), - #define XLAT_VAL_151 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MAX_QP)) - #define XLAT_STR_151 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MAX_QP) + #define XLAT_VAL_152 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MAX_QP)) + #define XLAT_STR_152 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MAX_QP) XLAT(V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L0_BR), - #define XLAT_VAL_152 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L0_BR)) - #define XLAT_STR_152 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L0_BR) + #define XLAT_VAL_153 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L0_BR)) + #define XLAT_STR_153 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L0_BR) XLAT(V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L1_BR), - #define XLAT_VAL_153 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L1_BR)) - #define XLAT_STR_153 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L1_BR) + #define XLAT_VAL_154 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L1_BR)) + #define XLAT_STR_154 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L1_BR) XLAT(V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L2_BR), - #define XLAT_VAL_154 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L2_BR)) - #define XLAT_STR_154 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L2_BR) + #define XLAT_VAL_155 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L2_BR)) + #define XLAT_STR_155 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L2_BR) XLAT(V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L3_BR), - #define XLAT_VAL_155 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L3_BR)) - #define XLAT_STR_155 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L3_BR) + #define XLAT_VAL_156 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L3_BR)) + #define XLAT_STR_156 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L3_BR) XLAT(V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L4_BR), - #define XLAT_VAL_156 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L4_BR)) - #define XLAT_STR_156 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L4_BR) + #define XLAT_VAL_157 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L4_BR)) + #define XLAT_STR_157 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L4_BR) XLAT(V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L5_BR), - #define XLAT_VAL_157 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L5_BR)) - #define XLAT_STR_157 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L5_BR) + #define XLAT_VAL_158 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L5_BR)) + #define XLAT_STR_158 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L5_BR) XLAT(V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L6_BR), - #define XLAT_VAL_158 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L6_BR)) - #define XLAT_STR_158 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L6_BR) + #define XLAT_VAL_159 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L6_BR)) + #define XLAT_STR_159 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L6_BR) XLAT(V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP), - #define XLAT_VAL_159 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP)) - #define XLAT_STR_159 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP) + #define XLAT_VAL_160 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP)) + #define XLAT_STR_160 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP), - #define XLAT_VAL_160 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP)) - #define XLAT_STR_160 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP) + #define XLAT_VAL_161 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP)) + #define XLAT_STR_161 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP), - #define XLAT_VAL_161 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP)) - #define XLAT_STR_161 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP) + #define XLAT_VAL_162 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP)) + #define XLAT_STR_162 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP), - #define XLAT_VAL_162 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP)) - #define XLAT_STR_162 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP) + #define XLAT_VAL_163 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP)) + #define XLAT_STR_163 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP) XLAT(V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP), - #define XLAT_VAL_163 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP)) - #define XLAT_STR_163 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP) + #define XLAT_VAL_164 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP)) + #define XLAT_STR_164 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP) XLAT(V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL), - #define XLAT_VAL_164 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL)) - #define XLAT_STR_164 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL) + #define XLAT_VAL_165 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL)) + #define XLAT_STR_165 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL) XLAT(V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE), - #define XLAT_VAL_165 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE)) - #define XLAT_STR_165 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE) + #define XLAT_VAL_166 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE)) + #define XLAT_STR_166 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE) XLAT(V4L2_CID_MPEG_VIDEO_MPEG4_QPEL), - #define XLAT_VAL_166 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG4_QPEL)) - #define XLAT_STR_166 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG4_QPEL) + #define XLAT_VAL_167 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG4_QPEL)) + #define XLAT_STR_167 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG4_QPEL) XLAT(V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS), - #define XLAT_VAL_167 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS)) - #define XLAT_STR_167 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS) + #define XLAT_VAL_168 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS)) + #define XLAT_STR_168 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS) XLAT(V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4), - #define XLAT_VAL_168 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4)) - #define XLAT_STR_168 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4) + #define XLAT_VAL_169 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4)) + #define XLAT_STR_169 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4) XLAT(V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES), - #define XLAT_VAL_169 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES)) - #define XLAT_STR_169 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES) + #define XLAT_VAL_170 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES)) + #define XLAT_STR_170 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES) XLAT(V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL), - #define XLAT_VAL_170 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL)) - #define XLAT_STR_170 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL) + #define XLAT_VAL_171 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL)) + #define XLAT_STR_171 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL) XLAT(V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS), - #define XLAT_VAL_171 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS)) - #define XLAT_STR_171 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS) + #define XLAT_VAL_172 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS)) + #define XLAT_STR_172 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS) XLAT(V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD), - #define XLAT_VAL_172 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD)) - #define XLAT_STR_172 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD) + #define XLAT_VAL_173 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD)) + #define XLAT_STR_173 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD) XLAT(V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL), - #define XLAT_VAL_173 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL)) - #define XLAT_STR_173 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL) + #define XLAT_VAL_174 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL)) + #define XLAT_STR_174 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL) XLAT(V4L2_CID_MPEG_VIDEO_VPX_MIN_QP), - #define XLAT_VAL_174 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_MIN_QP)) - #define XLAT_STR_174 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_MIN_QP) + #define XLAT_VAL_175 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_MIN_QP)) + #define XLAT_STR_175 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_MIN_QP) XLAT(V4L2_CID_MPEG_VIDEO_VPX_MAX_QP), - #define XLAT_VAL_175 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_MAX_QP)) - #define XLAT_STR_175 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_MAX_QP) + #define XLAT_VAL_176 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_MAX_QP)) + #define XLAT_STR_176 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_MAX_QP) XLAT(V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP), - #define XLAT_VAL_176 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP)) - #define XLAT_STR_176 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP) + #define XLAT_VAL_177 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP)) + #define XLAT_STR_177 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP), - #define XLAT_VAL_177 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP)) - #define XLAT_STR_177 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP) + #define XLAT_VAL_178 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP)) + #define XLAT_STR_178 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_VP8_PROFILE), - #define XLAT_VAL_178 ((unsigned) (V4L2_CID_MPEG_VIDEO_VP8_PROFILE)) - #define XLAT_STR_178 STRINGIFY(V4L2_CID_MPEG_VIDEO_VP8_PROFILE) + #define XLAT_VAL_179 ((unsigned) (V4L2_CID_MPEG_VIDEO_VP8_PROFILE)) + #define XLAT_STR_179 STRINGIFY(V4L2_CID_MPEG_VIDEO_VP8_PROFILE) XLAT(V4L2_CID_MPEG_VIDEO_VP9_PROFILE), - #define XLAT_VAL_179 ((unsigned) (V4L2_CID_MPEG_VIDEO_VP9_PROFILE)) - #define XLAT_STR_179 STRINGIFY(V4L2_CID_MPEG_VIDEO_VP9_PROFILE) + #define XLAT_VAL_180 ((unsigned) (V4L2_CID_MPEG_VIDEO_VP9_PROFILE)) + #define XLAT_STR_180 STRINGIFY(V4L2_CID_MPEG_VIDEO_VP9_PROFILE) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP), - #define XLAT_VAL_180 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP)) - #define XLAT_STR_180 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP) + #define XLAT_VAL_181 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP)) + #define XLAT_STR_181 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP), - #define XLAT_VAL_181 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP)) - #define XLAT_STR_181 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP) + #define XLAT_VAL_182 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP)) + #define XLAT_STR_182 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP), - #define XLAT_VAL_182 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP)) - #define XLAT_STR_182 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP) + #define XLAT_VAL_183 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP)) + #define XLAT_STR_183 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP), - #define XLAT_VAL_183 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP)) - #define XLAT_STR_183 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP) + #define XLAT_VAL_184 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP)) + #define XLAT_STR_184 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP), - #define XLAT_VAL_184 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP)) - #define XLAT_STR_184 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP) + #define XLAT_VAL_185 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP)) + #define XLAT_STR_185 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP), - #define XLAT_VAL_185 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP)) - #define XLAT_STR_185 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP) + #define XLAT_VAL_186 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP)) + #define XLAT_STR_186 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE), - #define XLAT_VAL_186 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE)) - #define XLAT_STR_186 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE) + #define XLAT_VAL_187 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE)) + #define XLAT_STR_187 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER), - #define XLAT_VAL_187 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER)) - #define XLAT_STR_187 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER) + #define XLAT_VAL_188 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER)) + #define XLAT_STR_188 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP), - #define XLAT_VAL_188 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP)) - #define XLAT_STR_188 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP) + #define XLAT_VAL_189 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP)) + #define XLAT_STR_189 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP), - #define XLAT_VAL_189 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP)) - #define XLAT_STR_189 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP) + #define XLAT_VAL_190 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP)) + #define XLAT_STR_190 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP), - #define XLAT_VAL_190 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP)) - #define XLAT_STR_190 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP) + #define XLAT_VAL_191 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP)) + #define XLAT_STR_191 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP), - #define XLAT_VAL_191 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP)) - #define XLAT_STR_191 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP) + #define XLAT_VAL_192 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP)) + #define XLAT_STR_192 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP), - #define XLAT_VAL_192 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP)) - #define XLAT_STR_192 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP) + #define XLAT_VAL_193 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP)) + #define XLAT_STR_193 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP), - #define XLAT_VAL_193 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP)) - #define XLAT_STR_193 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP) + #define XLAT_VAL_194 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP)) + #define XLAT_STR_194 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP), - #define XLAT_VAL_194 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP)) - #define XLAT_STR_194 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP) + #define XLAT_VAL_195 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP)) + #define XLAT_STR_195 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_PROFILE), - #define XLAT_VAL_195 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_PROFILE)) - #define XLAT_STR_195 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_PROFILE) + #define XLAT_VAL_196 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_PROFILE)) + #define XLAT_STR_196 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_PROFILE) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_LEVEL), - #define XLAT_VAL_196 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_LEVEL)) - #define XLAT_STR_196 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_LEVEL) + #define XLAT_VAL_197 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_LEVEL)) + #define XLAT_STR_197 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_LEVEL) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION), - #define XLAT_VAL_197 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION)) - #define XLAT_STR_197 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION) + #define XLAT_VAL_198 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION)) + #define XLAT_STR_198 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_TIER), - #define XLAT_VAL_198 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_TIER)) - #define XLAT_STR_198 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_TIER) + #define XLAT_VAL_199 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_TIER)) + #define XLAT_STR_199 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_TIER) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH), - #define XLAT_VAL_199 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH)) - #define XLAT_STR_199 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH) + #define XLAT_VAL_200 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH)) + #define XLAT_STR_200 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE), - #define XLAT_VAL_200 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE)) - #define XLAT_STR_200 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE) + #define XLAT_VAL_201 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE)) + #define XLAT_STR_201 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2), - #define XLAT_VAL_201 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2)) - #define XLAT_STR_201 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2) + #define XLAT_VAL_202 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2)) + #define XLAT_STR_202 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2), - #define XLAT_VAL_202 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2)) - #define XLAT_STR_202 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2) + #define XLAT_VAL_203 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2)) + #define XLAT_STR_203 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE), - #define XLAT_VAL_203 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE)) - #define XLAT_STR_203 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE) + #define XLAT_VAL_204 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE)) + #define XLAT_STR_204 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD), - #define XLAT_VAL_204 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD)) - #define XLAT_STR_204 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD) + #define XLAT_VAL_205 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD)) + #define XLAT_STR_205 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU), - #define XLAT_VAL_205 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU)) - #define XLAT_STR_205 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU) + #define XLAT_VAL_206 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU)) + #define XLAT_STR_206 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED), - #define XLAT_VAL_206 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED)) - #define XLAT_STR_206 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED) + #define XLAT_VAL_207 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED)) + #define XLAT_STR_207 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT), - #define XLAT_VAL_207 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT)) - #define XLAT_STR_207 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT) + #define XLAT_VAL_208 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT)) + #define XLAT_STR_208 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB), - #define XLAT_VAL_208 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB)) - #define XLAT_STR_208 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB) + #define XLAT_VAL_209 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB)) + #define XLAT_STR_209 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID), - #define XLAT_VAL_209 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID)) - #define XLAT_STR_209 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID) + #define XLAT_VAL_210 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID)) + #define XLAT_STR_210 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING), - #define XLAT_VAL_210 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING)) - #define XLAT_STR_210 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING) + #define XLAT_VAL_211 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING)) + #define XLAT_STR_211 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1), - #define XLAT_VAL_211 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1)) - #define XLAT_STR_211 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1) + #define XLAT_VAL_212 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1)) + #define XLAT_STR_212 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT), - #define XLAT_VAL_212 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT)) - #define XLAT_STR_212 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT) + #define XLAT_VAL_213 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT)) + #define XLAT_STR_213 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION), - #define XLAT_VAL_213 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION)) - #define XLAT_STR_213 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION) + #define XLAT_VAL_214 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION)) + #define XLAT_STR_214 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE), - #define XLAT_VAL_214 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE)) - #define XLAT_STR_214 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE) + #define XLAT_VAL_215 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE)) + #define XLAT_STR_215 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD), - #define XLAT_VAL_215 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD)) - #define XLAT_STR_215 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD) + #define XLAT_VAL_216 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD)) + #define XLAT_STR_216 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR), - #define XLAT_VAL_216 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR)) - #define XLAT_STR_216 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR) + #define XLAT_VAL_217 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR)) + #define XLAT_STR_217 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR), - #define XLAT_VAL_217 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR)) - #define XLAT_STR_217 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR) + #define XLAT_VAL_218 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR)) + #define XLAT_STR_218 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR), - #define XLAT_VAL_218 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR)) - #define XLAT_STR_218 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR) + #define XLAT_VAL_219 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR)) + #define XLAT_STR_219 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR), - #define XLAT_VAL_219 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR)) - #define XLAT_STR_219 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR) + #define XLAT_VAL_220 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR)) + #define XLAT_STR_220 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR), - #define XLAT_VAL_220 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR)) - #define XLAT_STR_220 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR) + #define XLAT_VAL_221 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR)) + #define XLAT_STR_221 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR), - #define XLAT_VAL_221 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR)) - #define XLAT_STR_221 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR) + #define XLAT_VAL_222 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR)) + #define XLAT_STR_222 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR), - #define XLAT_VAL_222 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR)) - #define XLAT_STR_222 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR) + #define XLAT_VAL_223 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR)) + #define XLAT_STR_223 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR) XLAT(V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES), - #define XLAT_VAL_223 ((unsigned) (V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES)) - #define XLAT_STR_223 STRINGIFY(V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES) + #define XLAT_VAL_224 ((unsigned) (V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES)) + #define XLAT_STR_224 STRINGIFY(V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES) XLAT(V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR), - #define XLAT_VAL_224 ((unsigned) (V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR)) - #define XLAT_STR_224 STRINGIFY(V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR) + #define XLAT_VAL_225 ((unsigned) (V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR)) + #define XLAT_STR_225 STRINGIFY(V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR) XLAT(V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY), - #define XLAT_VAL_225 ((unsigned) (V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY)) - #define XLAT_STR_225 STRINGIFY(V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY) + #define XLAT_VAL_226 ((unsigned) (V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY)) + #define XLAT_STR_226 STRINGIFY(V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY) XLAT(V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE), - #define XLAT_VAL_226 ((unsigned) (V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE)) - #define XLAT_STR_226 STRINGIFY(V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE) + #define XLAT_VAL_227 ((unsigned) (V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE)) + #define XLAT_STR_227 STRINGIFY(V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MIN_QP), - #define XLAT_VAL_227 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MIN_QP)) - #define XLAT_STR_227 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MIN_QP) + #define XLAT_VAL_228 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MIN_QP)) + #define XLAT_STR_228 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MIN_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MAX_QP), - #define XLAT_VAL_228 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MAX_QP)) - #define XLAT_STR_228 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MAX_QP) + #define XLAT_VAL_229 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MAX_QP)) + #define XLAT_STR_229 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MAX_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MIN_QP), - #define XLAT_VAL_229 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MIN_QP)) - #define XLAT_STR_229 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MIN_QP) + #define XLAT_VAL_230 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MIN_QP)) + #define XLAT_STR_230 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MIN_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MAX_QP), - #define XLAT_VAL_230 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MAX_QP)) - #define XLAT_STR_230 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MAX_QP) + #define XLAT_VAL_231 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MAX_QP)) + #define XLAT_STR_231 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MAX_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MIN_QP), - #define XLAT_VAL_231 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MIN_QP)) - #define XLAT_STR_231 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MIN_QP) + #define XLAT_VAL_232 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MIN_QP)) + #define XLAT_STR_232 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MIN_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP), - #define XLAT_VAL_232 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP)) - #define XLAT_STR_232 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP) + #define XLAT_VAL_233 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP)) + #define XLAT_STR_233 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP) XLAT(V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY), - #define XLAT_VAL_233 ((unsigned) (V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY)) - #define XLAT_STR_233 STRINGIFY(V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY) + #define XLAT_VAL_234 ((unsigned) (V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY)) + #define XLAT_STR_234 STRINGIFY(V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY) XLAT(V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE), - #define XLAT_VAL_234 ((unsigned) (V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE)) - #define XLAT_STR_234 STRINGIFY(V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE) + #define XLAT_VAL_235 ((unsigned) (V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE)) + #define XLAT_STR_235 STRINGIFY(V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE) XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE), - #define XLAT_VAL_235 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE)) - #define XLAT_STR_235 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE) + #define XLAT_VAL_236 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE)) + #define XLAT_STR_236 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE) XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER), - #define XLAT_VAL_236 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER)) - #define XLAT_STR_236 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER) + #define XLAT_VAL_237 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER)) + #define XLAT_STR_237 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER) XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE), - #define XLAT_VAL_237 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE)) - #define XLAT_STR_237 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE) + #define XLAT_VAL_238 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE)) + #define XLAT_STR_238 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE) XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE), - #define XLAT_VAL_238 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE)) - #define XLAT_STR_238 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE) + #define XLAT_VAL_239 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE)) + #define XLAT_STR_239 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE) XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE), - #define XLAT_VAL_239 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE)) - #define XLAT_STR_239 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE) + #define XLAT_VAL_240 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE)) + #define XLAT_STR_240 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE) XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER), - #define XLAT_VAL_240 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER)) - #define XLAT_STR_240 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER) + #define XLAT_VAL_241 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER)) + #define XLAT_STR_241 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER) XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE), - #define XLAT_VAL_241 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE)) - #define XLAT_STR_241 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE) + #define XLAT_VAL_242 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE)) + #define XLAT_STR_242 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE) XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM), - #define XLAT_VAL_242 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM)) - #define XLAT_STR_242 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM) + #define XLAT_VAL_243 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM)) + #define XLAT_STR_243 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM) XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP), - #define XLAT_VAL_243 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP)) - #define XLAT_STR_243 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP) + #define XLAT_VAL_244 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP)) + #define XLAT_STR_244 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP) XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM), - #define XLAT_VAL_244 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM)) - #define XLAT_STR_244 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM) + #define XLAT_VAL_245 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM)) + #define XLAT_STR_245 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM) XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP), - #define XLAT_VAL_245 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP)) - #define XLAT_STR_245 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP) + #define XLAT_VAL_246 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP)) + #define XLAT_STR_246 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP) XLAT(V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS), - #define XLAT_VAL_246 ((unsigned) (V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS)) - #define XLAT_STR_246 STRINGIFY(V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS) + #define XLAT_VAL_247 ((unsigned) (V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS)) + #define XLAT_STR_247 STRINGIFY(V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS) XLAT(V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY), - #define XLAT_VAL_247 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY)) - #define XLAT_STR_247 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY) + #define XLAT_VAL_248 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY)) + #define XLAT_STR_248 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY) XLAT(V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE), - #define XLAT_VAL_248 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE)) - #define XLAT_STR_248 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE) + #define XLAT_VAL_249 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE)) + #define XLAT_STR_249 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE) XLAT(V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE), - #define XLAT_VAL_249 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE)) - #define XLAT_STR_249 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE) + #define XLAT_VAL_250 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE)) + #define XLAT_STR_250 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE) XLAT(V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE), - #define XLAT_VAL_250 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE)) - #define XLAT_STR_250 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE) + #define XLAT_VAL_251 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE)) + #define XLAT_STR_251 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE) XLAT(V4L2_CID_MPEG_MFC51_VIDEO_PADDING), - #define XLAT_VAL_251 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_PADDING)) - #define XLAT_STR_251 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_PADDING) + #define XLAT_VAL_252 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_PADDING)) + #define XLAT_STR_252 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_PADDING) XLAT(V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV), - #define XLAT_VAL_252 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV)) - #define XLAT_STR_252 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV) + #define XLAT_VAL_253 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV)) + #define XLAT_STR_253 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV) XLAT(V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT), - #define XLAT_VAL_253 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT)) - #define XLAT_STR_253 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT) + #define XLAT_VAL_254 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT)) + #define XLAT_STR_254 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT) XLAT(V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF), - #define XLAT_VAL_254 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF)) - #define XLAT_STR_254 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF) + #define XLAT_VAL_255 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF)) + #define XLAT_STR_255 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF) XLAT(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY), - #define XLAT_VAL_255 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY)) - #define XLAT_STR_255 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY) + #define XLAT_VAL_256 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY)) + #define XLAT_STR_256 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY) XLAT(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK), - #define XLAT_VAL_256 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK)) - #define XLAT_STR_256 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK) + #define XLAT_VAL_257 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK)) + #define XLAT_STR_257 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK) XLAT(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH), - #define XLAT_VAL_257 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH)) - #define XLAT_STR_257 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH) + #define XLAT_VAL_258 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH)) + #define XLAT_STR_258 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH) XLAT(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC), - #define XLAT_VAL_258 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC)) - #define XLAT_STR_258 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC) + #define XLAT_VAL_259 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC)) + #define XLAT_STR_259 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC) XLAT(V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P), - #define XLAT_VAL_259 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P)) - #define XLAT_STR_259 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P) + #define XLAT_VAL_260 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P)) + #define XLAT_STR_260 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P) XLAT(V4L2_CID_EXPOSURE_AUTO), - #define XLAT_VAL_260 ((unsigned) (V4L2_CID_EXPOSURE_AUTO)) - #define XLAT_STR_260 STRINGIFY(V4L2_CID_EXPOSURE_AUTO) + #define XLAT_VAL_261 ((unsigned) (V4L2_CID_EXPOSURE_AUTO)) + #define XLAT_STR_261 STRINGIFY(V4L2_CID_EXPOSURE_AUTO) XLAT(V4L2_CID_EXPOSURE_ABSOLUTE), - #define XLAT_VAL_261 ((unsigned) (V4L2_CID_EXPOSURE_ABSOLUTE)) - #define XLAT_STR_261 STRINGIFY(V4L2_CID_EXPOSURE_ABSOLUTE) + #define XLAT_VAL_262 ((unsigned) (V4L2_CID_EXPOSURE_ABSOLUTE)) + #define XLAT_STR_262 STRINGIFY(V4L2_CID_EXPOSURE_ABSOLUTE) XLAT(V4L2_CID_EXPOSURE_AUTO_PRIORITY), - #define XLAT_VAL_262 ((unsigned) (V4L2_CID_EXPOSURE_AUTO_PRIORITY)) - #define XLAT_STR_262 STRINGIFY(V4L2_CID_EXPOSURE_AUTO_PRIORITY) + #define XLAT_VAL_263 ((unsigned) (V4L2_CID_EXPOSURE_AUTO_PRIORITY)) + #define XLAT_STR_263 STRINGIFY(V4L2_CID_EXPOSURE_AUTO_PRIORITY) XLAT(V4L2_CID_PAN_RELATIVE), - #define XLAT_VAL_263 ((unsigned) (V4L2_CID_PAN_RELATIVE)) - #define XLAT_STR_263 STRINGIFY(V4L2_CID_PAN_RELATIVE) + #define XLAT_VAL_264 ((unsigned) (V4L2_CID_PAN_RELATIVE)) + #define XLAT_STR_264 STRINGIFY(V4L2_CID_PAN_RELATIVE) XLAT(V4L2_CID_TILT_RELATIVE), - #define XLAT_VAL_264 ((unsigned) (V4L2_CID_TILT_RELATIVE)) - #define XLAT_STR_264 STRINGIFY(V4L2_CID_TILT_RELATIVE) + #define XLAT_VAL_265 ((unsigned) (V4L2_CID_TILT_RELATIVE)) + #define XLAT_STR_265 STRINGIFY(V4L2_CID_TILT_RELATIVE) XLAT(V4L2_CID_PAN_RESET), - #define XLAT_VAL_265 ((unsigned) (V4L2_CID_PAN_RESET)) - #define XLAT_STR_265 STRINGIFY(V4L2_CID_PAN_RESET) + #define XLAT_VAL_266 ((unsigned) (V4L2_CID_PAN_RESET)) + #define XLAT_STR_266 STRINGIFY(V4L2_CID_PAN_RESET) XLAT(V4L2_CID_TILT_RESET), - #define XLAT_VAL_266 ((unsigned) (V4L2_CID_TILT_RESET)) - #define XLAT_STR_266 STRINGIFY(V4L2_CID_TILT_RESET) + #define XLAT_VAL_267 ((unsigned) (V4L2_CID_TILT_RESET)) + #define XLAT_STR_267 STRINGIFY(V4L2_CID_TILT_RESET) XLAT(V4L2_CID_PAN_ABSOLUTE), - #define XLAT_VAL_267 ((unsigned) (V4L2_CID_PAN_ABSOLUTE)) - #define XLAT_STR_267 STRINGIFY(V4L2_CID_PAN_ABSOLUTE) + #define XLAT_VAL_268 ((unsigned) (V4L2_CID_PAN_ABSOLUTE)) + #define XLAT_STR_268 STRINGIFY(V4L2_CID_PAN_ABSOLUTE) XLAT(V4L2_CID_TILT_ABSOLUTE), - #define XLAT_VAL_268 ((unsigned) (V4L2_CID_TILT_ABSOLUTE)) - #define XLAT_STR_268 STRINGIFY(V4L2_CID_TILT_ABSOLUTE) + #define XLAT_VAL_269 ((unsigned) (V4L2_CID_TILT_ABSOLUTE)) + #define XLAT_STR_269 STRINGIFY(V4L2_CID_TILT_ABSOLUTE) XLAT(V4L2_CID_FOCUS_ABSOLUTE), - #define XLAT_VAL_269 ((unsigned) (V4L2_CID_FOCUS_ABSOLUTE)) - #define XLAT_STR_269 STRINGIFY(V4L2_CID_FOCUS_ABSOLUTE) + #define XLAT_VAL_270 ((unsigned) (V4L2_CID_FOCUS_ABSOLUTE)) + #define XLAT_STR_270 STRINGIFY(V4L2_CID_FOCUS_ABSOLUTE) XLAT(V4L2_CID_FOCUS_RELATIVE), - #define XLAT_VAL_270 ((unsigned) (V4L2_CID_FOCUS_RELATIVE)) - #define XLAT_STR_270 STRINGIFY(V4L2_CID_FOCUS_RELATIVE) + #define XLAT_VAL_271 ((unsigned) (V4L2_CID_FOCUS_RELATIVE)) + #define XLAT_STR_271 STRINGIFY(V4L2_CID_FOCUS_RELATIVE) XLAT(V4L2_CID_FOCUS_AUTO), - #define XLAT_VAL_271 ((unsigned) (V4L2_CID_FOCUS_AUTO)) - #define XLAT_STR_271 STRINGIFY(V4L2_CID_FOCUS_AUTO) + #define XLAT_VAL_272 ((unsigned) (V4L2_CID_FOCUS_AUTO)) + #define XLAT_STR_272 STRINGIFY(V4L2_CID_FOCUS_AUTO) XLAT(V4L2_CID_ZOOM_ABSOLUTE), - #define XLAT_VAL_272 ((unsigned) (V4L2_CID_ZOOM_ABSOLUTE)) - #define XLAT_STR_272 STRINGIFY(V4L2_CID_ZOOM_ABSOLUTE) + #define XLAT_VAL_273 ((unsigned) (V4L2_CID_ZOOM_ABSOLUTE)) + #define XLAT_STR_273 STRINGIFY(V4L2_CID_ZOOM_ABSOLUTE) XLAT(V4L2_CID_ZOOM_RELATIVE), - #define XLAT_VAL_273 ((unsigned) (V4L2_CID_ZOOM_RELATIVE)) - #define XLAT_STR_273 STRINGIFY(V4L2_CID_ZOOM_RELATIVE) + #define XLAT_VAL_274 ((unsigned) (V4L2_CID_ZOOM_RELATIVE)) + #define XLAT_STR_274 STRINGIFY(V4L2_CID_ZOOM_RELATIVE) XLAT(V4L2_CID_ZOOM_CONTINUOUS), - #define XLAT_VAL_274 ((unsigned) (V4L2_CID_ZOOM_CONTINUOUS)) - #define XLAT_STR_274 STRINGIFY(V4L2_CID_ZOOM_CONTINUOUS) + #define XLAT_VAL_275 ((unsigned) (V4L2_CID_ZOOM_CONTINUOUS)) + #define XLAT_STR_275 STRINGIFY(V4L2_CID_ZOOM_CONTINUOUS) XLAT(V4L2_CID_PRIVACY), - #define XLAT_VAL_275 ((unsigned) (V4L2_CID_PRIVACY)) - #define XLAT_STR_275 STRINGIFY(V4L2_CID_PRIVACY) + #define XLAT_VAL_276 ((unsigned) (V4L2_CID_PRIVACY)) + #define XLAT_STR_276 STRINGIFY(V4L2_CID_PRIVACY) XLAT(V4L2_CID_IRIS_ABSOLUTE), - #define XLAT_VAL_276 ((unsigned) (V4L2_CID_IRIS_ABSOLUTE)) - #define XLAT_STR_276 STRINGIFY(V4L2_CID_IRIS_ABSOLUTE) + #define XLAT_VAL_277 ((unsigned) (V4L2_CID_IRIS_ABSOLUTE)) + #define XLAT_STR_277 STRINGIFY(V4L2_CID_IRIS_ABSOLUTE) XLAT(V4L2_CID_IRIS_RELATIVE), - #define XLAT_VAL_277 ((unsigned) (V4L2_CID_IRIS_RELATIVE)) - #define XLAT_STR_277 STRINGIFY(V4L2_CID_IRIS_RELATIVE) + #define XLAT_VAL_278 ((unsigned) (V4L2_CID_IRIS_RELATIVE)) + #define XLAT_STR_278 STRINGIFY(V4L2_CID_IRIS_RELATIVE) XLAT(V4L2_CID_AUTO_EXPOSURE_BIAS), - #define XLAT_VAL_278 ((unsigned) (V4L2_CID_AUTO_EXPOSURE_BIAS)) - #define XLAT_STR_278 STRINGIFY(V4L2_CID_AUTO_EXPOSURE_BIAS) + #define XLAT_VAL_279 ((unsigned) (V4L2_CID_AUTO_EXPOSURE_BIAS)) + #define XLAT_STR_279 STRINGIFY(V4L2_CID_AUTO_EXPOSURE_BIAS) XLAT(V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE), - #define XLAT_VAL_279 ((unsigned) (V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE)) - #define XLAT_STR_279 STRINGIFY(V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE) + #define XLAT_VAL_280 ((unsigned) (V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE)) + #define XLAT_STR_280 STRINGIFY(V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE) XLAT(V4L2_CID_WIDE_DYNAMIC_RANGE), - #define XLAT_VAL_280 ((unsigned) (V4L2_CID_WIDE_DYNAMIC_RANGE)) - #define XLAT_STR_280 STRINGIFY(V4L2_CID_WIDE_DYNAMIC_RANGE) + #define XLAT_VAL_281 ((unsigned) (V4L2_CID_WIDE_DYNAMIC_RANGE)) + #define XLAT_STR_281 STRINGIFY(V4L2_CID_WIDE_DYNAMIC_RANGE) XLAT(V4L2_CID_IMAGE_STABILIZATION), - #define XLAT_VAL_281 ((unsigned) (V4L2_CID_IMAGE_STABILIZATION)) - #define XLAT_STR_281 STRINGIFY(V4L2_CID_IMAGE_STABILIZATION) + #define XLAT_VAL_282 ((unsigned) (V4L2_CID_IMAGE_STABILIZATION)) + #define XLAT_STR_282 STRINGIFY(V4L2_CID_IMAGE_STABILIZATION) XLAT(V4L2_CID_ISO_SENSITIVITY), - #define XLAT_VAL_282 ((unsigned) (V4L2_CID_ISO_SENSITIVITY)) - #define XLAT_STR_282 STRINGIFY(V4L2_CID_ISO_SENSITIVITY) + #define XLAT_VAL_283 ((unsigned) (V4L2_CID_ISO_SENSITIVITY)) + #define XLAT_STR_283 STRINGIFY(V4L2_CID_ISO_SENSITIVITY) XLAT(V4L2_CID_ISO_SENSITIVITY_AUTO), - #define XLAT_VAL_283 ((unsigned) (V4L2_CID_ISO_SENSITIVITY_AUTO)) - #define XLAT_STR_283 STRINGIFY(V4L2_CID_ISO_SENSITIVITY_AUTO) + #define XLAT_VAL_284 ((unsigned) (V4L2_CID_ISO_SENSITIVITY_AUTO)) + #define XLAT_STR_284 STRINGIFY(V4L2_CID_ISO_SENSITIVITY_AUTO) XLAT(V4L2_CID_EXPOSURE_METERING), - #define XLAT_VAL_284 ((unsigned) (V4L2_CID_EXPOSURE_METERING)) - #define XLAT_STR_284 STRINGIFY(V4L2_CID_EXPOSURE_METERING) + #define XLAT_VAL_285 ((unsigned) (V4L2_CID_EXPOSURE_METERING)) + #define XLAT_STR_285 STRINGIFY(V4L2_CID_EXPOSURE_METERING) XLAT(V4L2_CID_SCENE_MODE), - #define XLAT_VAL_285 ((unsigned) (V4L2_CID_SCENE_MODE)) - #define XLAT_STR_285 STRINGIFY(V4L2_CID_SCENE_MODE) + #define XLAT_VAL_286 ((unsigned) (V4L2_CID_SCENE_MODE)) + #define XLAT_STR_286 STRINGIFY(V4L2_CID_SCENE_MODE) XLAT(V4L2_CID_3A_LOCK), - #define XLAT_VAL_286 ((unsigned) (V4L2_CID_3A_LOCK)) - #define XLAT_STR_286 STRINGIFY(V4L2_CID_3A_LOCK) + #define XLAT_VAL_287 ((unsigned) (V4L2_CID_3A_LOCK)) + #define XLAT_STR_287 STRINGIFY(V4L2_CID_3A_LOCK) XLAT(V4L2_CID_AUTO_FOCUS_START), - #define XLAT_VAL_287 ((unsigned) (V4L2_CID_AUTO_FOCUS_START)) - #define XLAT_STR_287 STRINGIFY(V4L2_CID_AUTO_FOCUS_START) + #define XLAT_VAL_288 ((unsigned) (V4L2_CID_AUTO_FOCUS_START)) + #define XLAT_STR_288 STRINGIFY(V4L2_CID_AUTO_FOCUS_START) XLAT(V4L2_CID_AUTO_FOCUS_STOP), - #define XLAT_VAL_288 ((unsigned) (V4L2_CID_AUTO_FOCUS_STOP)) - #define XLAT_STR_288 STRINGIFY(V4L2_CID_AUTO_FOCUS_STOP) + #define XLAT_VAL_289 ((unsigned) (V4L2_CID_AUTO_FOCUS_STOP)) + #define XLAT_STR_289 STRINGIFY(V4L2_CID_AUTO_FOCUS_STOP) XLAT(V4L2_CID_AUTO_FOCUS_STATUS), - #define XLAT_VAL_289 ((unsigned) (V4L2_CID_AUTO_FOCUS_STATUS)) - #define XLAT_STR_289 STRINGIFY(V4L2_CID_AUTO_FOCUS_STATUS) + #define XLAT_VAL_290 ((unsigned) (V4L2_CID_AUTO_FOCUS_STATUS)) + #define XLAT_STR_290 STRINGIFY(V4L2_CID_AUTO_FOCUS_STATUS) XLAT(V4L2_CID_AUTO_FOCUS_RANGE), - #define XLAT_VAL_290 ((unsigned) (V4L2_CID_AUTO_FOCUS_RANGE)) - #define XLAT_STR_290 STRINGIFY(V4L2_CID_AUTO_FOCUS_RANGE) + #define XLAT_VAL_291 ((unsigned) (V4L2_CID_AUTO_FOCUS_RANGE)) + #define XLAT_STR_291 STRINGIFY(V4L2_CID_AUTO_FOCUS_RANGE) XLAT(V4L2_CID_PAN_SPEED), - #define XLAT_VAL_291 ((unsigned) (V4L2_CID_PAN_SPEED)) - #define XLAT_STR_291 STRINGIFY(V4L2_CID_PAN_SPEED) + #define XLAT_VAL_292 ((unsigned) (V4L2_CID_PAN_SPEED)) + #define XLAT_STR_292 STRINGIFY(V4L2_CID_PAN_SPEED) XLAT(V4L2_CID_TILT_SPEED), - #define XLAT_VAL_292 ((unsigned) (V4L2_CID_TILT_SPEED)) - #define XLAT_STR_292 STRINGIFY(V4L2_CID_TILT_SPEED) + #define XLAT_VAL_293 ((unsigned) (V4L2_CID_TILT_SPEED)) + #define XLAT_STR_293 STRINGIFY(V4L2_CID_TILT_SPEED) XLAT(V4L2_CID_RDS_TX_DEVIATION), - #define XLAT_VAL_293 ((unsigned) (V4L2_CID_RDS_TX_DEVIATION)) - #define XLAT_STR_293 STRINGIFY(V4L2_CID_RDS_TX_DEVIATION) + #define XLAT_VAL_294 ((unsigned) (V4L2_CID_RDS_TX_DEVIATION)) + #define XLAT_STR_294 STRINGIFY(V4L2_CID_RDS_TX_DEVIATION) XLAT(V4L2_CID_RDS_TX_PI), - #define XLAT_VAL_294 ((unsigned) (V4L2_CID_RDS_TX_PI)) - #define XLAT_STR_294 STRINGIFY(V4L2_CID_RDS_TX_PI) + #define XLAT_VAL_295 ((unsigned) (V4L2_CID_RDS_TX_PI)) + #define XLAT_STR_295 STRINGIFY(V4L2_CID_RDS_TX_PI) XLAT(V4L2_CID_RDS_TX_PTY), - #define XLAT_VAL_295 ((unsigned) (V4L2_CID_RDS_TX_PTY)) - #define XLAT_STR_295 STRINGIFY(V4L2_CID_RDS_TX_PTY) + #define XLAT_VAL_296 ((unsigned) (V4L2_CID_RDS_TX_PTY)) + #define XLAT_STR_296 STRINGIFY(V4L2_CID_RDS_TX_PTY) XLAT(V4L2_CID_RDS_TX_PS_NAME), - #define XLAT_VAL_296 ((unsigned) (V4L2_CID_RDS_TX_PS_NAME)) - #define XLAT_STR_296 STRINGIFY(V4L2_CID_RDS_TX_PS_NAME) + #define XLAT_VAL_297 ((unsigned) (V4L2_CID_RDS_TX_PS_NAME)) + #define XLAT_STR_297 STRINGIFY(V4L2_CID_RDS_TX_PS_NAME) XLAT(V4L2_CID_RDS_TX_RADIO_TEXT), - #define XLAT_VAL_297 ((unsigned) (V4L2_CID_RDS_TX_RADIO_TEXT)) - #define XLAT_STR_297 STRINGIFY(V4L2_CID_RDS_TX_RADIO_TEXT) + #define XLAT_VAL_298 ((unsigned) (V4L2_CID_RDS_TX_RADIO_TEXT)) + #define XLAT_STR_298 STRINGIFY(V4L2_CID_RDS_TX_RADIO_TEXT) XLAT(V4L2_CID_RDS_TX_MONO_STEREO), - #define XLAT_VAL_298 ((unsigned) (V4L2_CID_RDS_TX_MONO_STEREO)) - #define XLAT_STR_298 STRINGIFY(V4L2_CID_RDS_TX_MONO_STEREO) + #define XLAT_VAL_299 ((unsigned) (V4L2_CID_RDS_TX_MONO_STEREO)) + #define XLAT_STR_299 STRINGIFY(V4L2_CID_RDS_TX_MONO_STEREO) XLAT(V4L2_CID_RDS_TX_ARTIFICIAL_HEAD), - #define XLAT_VAL_299 ((unsigned) (V4L2_CID_RDS_TX_ARTIFICIAL_HEAD)) - #define XLAT_STR_299 STRINGIFY(V4L2_CID_RDS_TX_ARTIFICIAL_HEAD) + #define XLAT_VAL_300 ((unsigned) (V4L2_CID_RDS_TX_ARTIFICIAL_HEAD)) + #define XLAT_STR_300 STRINGIFY(V4L2_CID_RDS_TX_ARTIFICIAL_HEAD) XLAT(V4L2_CID_RDS_TX_COMPRESSED), - #define XLAT_VAL_300 ((unsigned) (V4L2_CID_RDS_TX_COMPRESSED)) - #define XLAT_STR_300 STRINGIFY(V4L2_CID_RDS_TX_COMPRESSED) + #define XLAT_VAL_301 ((unsigned) (V4L2_CID_RDS_TX_COMPRESSED)) + #define XLAT_STR_301 STRINGIFY(V4L2_CID_RDS_TX_COMPRESSED) XLAT(V4L2_CID_RDS_TX_DYNAMIC_PTY), - #define XLAT_VAL_301 ((unsigned) (V4L2_CID_RDS_TX_DYNAMIC_PTY)) - #define XLAT_STR_301 STRINGIFY(V4L2_CID_RDS_TX_DYNAMIC_PTY) + #define XLAT_VAL_302 ((unsigned) (V4L2_CID_RDS_TX_DYNAMIC_PTY)) + #define XLAT_STR_302 STRINGIFY(V4L2_CID_RDS_TX_DYNAMIC_PTY) XLAT(V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT), - #define XLAT_VAL_302 ((unsigned) (V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT)) - #define XLAT_STR_302 STRINGIFY(V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT) + #define XLAT_VAL_303 ((unsigned) (V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT)) + #define XLAT_STR_303 STRINGIFY(V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT) XLAT(V4L2_CID_RDS_TX_TRAFFIC_PROGRAM), - #define XLAT_VAL_303 ((unsigned) (V4L2_CID_RDS_TX_TRAFFIC_PROGRAM)) - #define XLAT_STR_303 STRINGIFY(V4L2_CID_RDS_TX_TRAFFIC_PROGRAM) + #define XLAT_VAL_304 ((unsigned) (V4L2_CID_RDS_TX_TRAFFIC_PROGRAM)) + #define XLAT_STR_304 STRINGIFY(V4L2_CID_RDS_TX_TRAFFIC_PROGRAM) XLAT(V4L2_CID_RDS_TX_MUSIC_SPEECH), - #define XLAT_VAL_304 ((unsigned) (V4L2_CID_RDS_TX_MUSIC_SPEECH)) - #define XLAT_STR_304 STRINGIFY(V4L2_CID_RDS_TX_MUSIC_SPEECH) + #define XLAT_VAL_305 ((unsigned) (V4L2_CID_RDS_TX_MUSIC_SPEECH)) + #define XLAT_STR_305 STRINGIFY(V4L2_CID_RDS_TX_MUSIC_SPEECH) XLAT(V4L2_CID_RDS_TX_ALT_FREQS_ENABLE), - #define XLAT_VAL_305 ((unsigned) (V4L2_CID_RDS_TX_ALT_FREQS_ENABLE)) - #define XLAT_STR_305 STRINGIFY(V4L2_CID_RDS_TX_ALT_FREQS_ENABLE) + #define XLAT_VAL_306 ((unsigned) (V4L2_CID_RDS_TX_ALT_FREQS_ENABLE)) + #define XLAT_STR_306 STRINGIFY(V4L2_CID_RDS_TX_ALT_FREQS_ENABLE) XLAT(V4L2_CID_RDS_TX_ALT_FREQS), - #define XLAT_VAL_306 ((unsigned) (V4L2_CID_RDS_TX_ALT_FREQS)) - #define XLAT_STR_306 STRINGIFY(V4L2_CID_RDS_TX_ALT_FREQS) + #define XLAT_VAL_307 ((unsigned) (V4L2_CID_RDS_TX_ALT_FREQS)) + #define XLAT_STR_307 STRINGIFY(V4L2_CID_RDS_TX_ALT_FREQS) XLAT(V4L2_CID_AUDIO_LIMITER_ENABLED), - #define XLAT_VAL_307 ((unsigned) (V4L2_CID_AUDIO_LIMITER_ENABLED)) - #define XLAT_STR_307 STRINGIFY(V4L2_CID_AUDIO_LIMITER_ENABLED) + #define XLAT_VAL_308 ((unsigned) (V4L2_CID_AUDIO_LIMITER_ENABLED)) + #define XLAT_STR_308 STRINGIFY(V4L2_CID_AUDIO_LIMITER_ENABLED) XLAT(V4L2_CID_AUDIO_LIMITER_RELEASE_TIME), - #define XLAT_VAL_308 ((unsigned) (V4L2_CID_AUDIO_LIMITER_RELEASE_TIME)) - #define XLAT_STR_308 STRINGIFY(V4L2_CID_AUDIO_LIMITER_RELEASE_TIME) + #define XLAT_VAL_309 ((unsigned) (V4L2_CID_AUDIO_LIMITER_RELEASE_TIME)) + #define XLAT_STR_309 STRINGIFY(V4L2_CID_AUDIO_LIMITER_RELEASE_TIME) XLAT(V4L2_CID_AUDIO_LIMITER_DEVIATION), - #define XLAT_VAL_309 ((unsigned) (V4L2_CID_AUDIO_LIMITER_DEVIATION)) - #define XLAT_STR_309 STRINGIFY(V4L2_CID_AUDIO_LIMITER_DEVIATION) + #define XLAT_VAL_310 ((unsigned) (V4L2_CID_AUDIO_LIMITER_DEVIATION)) + #define XLAT_STR_310 STRINGIFY(V4L2_CID_AUDIO_LIMITER_DEVIATION) XLAT(V4L2_CID_AUDIO_COMPRESSION_ENABLED), - #define XLAT_VAL_310 ((unsigned) (V4L2_CID_AUDIO_COMPRESSION_ENABLED)) - #define XLAT_STR_310 STRINGIFY(V4L2_CID_AUDIO_COMPRESSION_ENABLED) + #define XLAT_VAL_311 ((unsigned) (V4L2_CID_AUDIO_COMPRESSION_ENABLED)) + #define XLAT_STR_311 STRINGIFY(V4L2_CID_AUDIO_COMPRESSION_ENABLED) XLAT(V4L2_CID_AUDIO_COMPRESSION_GAIN), - #define XLAT_VAL_311 ((unsigned) (V4L2_CID_AUDIO_COMPRESSION_GAIN)) - #define XLAT_STR_311 STRINGIFY(V4L2_CID_AUDIO_COMPRESSION_GAIN) + #define XLAT_VAL_312 ((unsigned) (V4L2_CID_AUDIO_COMPRESSION_GAIN)) + #define XLAT_STR_312 STRINGIFY(V4L2_CID_AUDIO_COMPRESSION_GAIN) XLAT(V4L2_CID_AUDIO_COMPRESSION_THRESHOLD), - #define XLAT_VAL_312 ((unsigned) (V4L2_CID_AUDIO_COMPRESSION_THRESHOLD)) - #define XLAT_STR_312 STRINGIFY(V4L2_CID_AUDIO_COMPRESSION_THRESHOLD) + #define XLAT_VAL_313 ((unsigned) (V4L2_CID_AUDIO_COMPRESSION_THRESHOLD)) + #define XLAT_STR_313 STRINGIFY(V4L2_CID_AUDIO_COMPRESSION_THRESHOLD) XLAT(V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME), - #define XLAT_VAL_313 ((unsigned) (V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME)) - #define XLAT_STR_313 STRINGIFY(V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME) + #define XLAT_VAL_314 ((unsigned) (V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME)) + #define XLAT_STR_314 STRINGIFY(V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME) XLAT(V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME), - #define XLAT_VAL_314 ((unsigned) (V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME)) - #define XLAT_STR_314 STRINGIFY(V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME) + #define XLAT_VAL_315 ((unsigned) (V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME)) + #define XLAT_STR_315 STRINGIFY(V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME) XLAT(V4L2_CID_PILOT_TONE_ENABLED), - #define XLAT_VAL_315 ((unsigned) (V4L2_CID_PILOT_TONE_ENABLED)) - #define XLAT_STR_315 STRINGIFY(V4L2_CID_PILOT_TONE_ENABLED) + #define XLAT_VAL_316 ((unsigned) (V4L2_CID_PILOT_TONE_ENABLED)) + #define XLAT_STR_316 STRINGIFY(V4L2_CID_PILOT_TONE_ENABLED) XLAT(V4L2_CID_PILOT_TONE_DEVIATION), - #define XLAT_VAL_316 ((unsigned) (V4L2_CID_PILOT_TONE_DEVIATION)) - #define XLAT_STR_316 STRINGIFY(V4L2_CID_PILOT_TONE_DEVIATION) + #define XLAT_VAL_317 ((unsigned) (V4L2_CID_PILOT_TONE_DEVIATION)) + #define XLAT_STR_317 STRINGIFY(V4L2_CID_PILOT_TONE_DEVIATION) XLAT(V4L2_CID_PILOT_TONE_FREQUENCY), - #define XLAT_VAL_317 ((unsigned) (V4L2_CID_PILOT_TONE_FREQUENCY)) - #define XLAT_STR_317 STRINGIFY(V4L2_CID_PILOT_TONE_FREQUENCY) + #define XLAT_VAL_318 ((unsigned) (V4L2_CID_PILOT_TONE_FREQUENCY)) + #define XLAT_STR_318 STRINGIFY(V4L2_CID_PILOT_TONE_FREQUENCY) XLAT(V4L2_CID_TUNE_PREEMPHASIS), - #define XLAT_VAL_318 ((unsigned) (V4L2_CID_TUNE_PREEMPHASIS)) - #define XLAT_STR_318 STRINGIFY(V4L2_CID_TUNE_PREEMPHASIS) + #define XLAT_VAL_319 ((unsigned) (V4L2_CID_TUNE_PREEMPHASIS)) + #define XLAT_STR_319 STRINGIFY(V4L2_CID_TUNE_PREEMPHASIS) XLAT(V4L2_CID_TUNE_POWER_LEVEL), - #define XLAT_VAL_319 ((unsigned) (V4L2_CID_TUNE_POWER_LEVEL)) - #define XLAT_STR_319 STRINGIFY(V4L2_CID_TUNE_POWER_LEVEL) + #define XLAT_VAL_320 ((unsigned) (V4L2_CID_TUNE_POWER_LEVEL)) + #define XLAT_STR_320 STRINGIFY(V4L2_CID_TUNE_POWER_LEVEL) XLAT(V4L2_CID_TUNE_ANTENNA_CAPACITOR), - #define XLAT_VAL_320 ((unsigned) (V4L2_CID_TUNE_ANTENNA_CAPACITOR)) - #define XLAT_STR_320 STRINGIFY(V4L2_CID_TUNE_ANTENNA_CAPACITOR) + #define XLAT_VAL_321 ((unsigned) (V4L2_CID_TUNE_ANTENNA_CAPACITOR)) + #define XLAT_STR_321 STRINGIFY(V4L2_CID_TUNE_ANTENNA_CAPACITOR) XLAT(V4L2_CID_FLASH_LED_MODE), - #define XLAT_VAL_321 ((unsigned) (V4L2_CID_FLASH_LED_MODE)) - #define XLAT_STR_321 STRINGIFY(V4L2_CID_FLASH_LED_MODE) + #define XLAT_VAL_322 ((unsigned) (V4L2_CID_FLASH_LED_MODE)) + #define XLAT_STR_322 STRINGIFY(V4L2_CID_FLASH_LED_MODE) XLAT(V4L2_CID_FLASH_STROBE_SOURCE), - #define XLAT_VAL_322 ((unsigned) (V4L2_CID_FLASH_STROBE_SOURCE)) - #define XLAT_STR_322 STRINGIFY(V4L2_CID_FLASH_STROBE_SOURCE) + #define XLAT_VAL_323 ((unsigned) (V4L2_CID_FLASH_STROBE_SOURCE)) + #define XLAT_STR_323 STRINGIFY(V4L2_CID_FLASH_STROBE_SOURCE) XLAT(V4L2_CID_FLASH_STROBE), - #define XLAT_VAL_323 ((unsigned) (V4L2_CID_FLASH_STROBE)) - #define XLAT_STR_323 STRINGIFY(V4L2_CID_FLASH_STROBE) + #define XLAT_VAL_324 ((unsigned) (V4L2_CID_FLASH_STROBE)) + #define XLAT_STR_324 STRINGIFY(V4L2_CID_FLASH_STROBE) XLAT(V4L2_CID_FLASH_STROBE_STOP), - #define XLAT_VAL_324 ((unsigned) (V4L2_CID_FLASH_STROBE_STOP)) - #define XLAT_STR_324 STRINGIFY(V4L2_CID_FLASH_STROBE_STOP) + #define XLAT_VAL_325 ((unsigned) (V4L2_CID_FLASH_STROBE_STOP)) + #define XLAT_STR_325 STRINGIFY(V4L2_CID_FLASH_STROBE_STOP) XLAT(V4L2_CID_FLASH_STROBE_STATUS), - #define XLAT_VAL_325 ((unsigned) (V4L2_CID_FLASH_STROBE_STATUS)) - #define XLAT_STR_325 STRINGIFY(V4L2_CID_FLASH_STROBE_STATUS) + #define XLAT_VAL_326 ((unsigned) (V4L2_CID_FLASH_STROBE_STATUS)) + #define XLAT_STR_326 STRINGIFY(V4L2_CID_FLASH_STROBE_STATUS) XLAT(V4L2_CID_FLASH_TIMEOUT), - #define XLAT_VAL_326 ((unsigned) (V4L2_CID_FLASH_TIMEOUT)) - #define XLAT_STR_326 STRINGIFY(V4L2_CID_FLASH_TIMEOUT) + #define XLAT_VAL_327 ((unsigned) (V4L2_CID_FLASH_TIMEOUT)) + #define XLAT_STR_327 STRINGIFY(V4L2_CID_FLASH_TIMEOUT) XLAT(V4L2_CID_FLASH_INTENSITY), - #define XLAT_VAL_327 ((unsigned) (V4L2_CID_FLASH_INTENSITY)) - #define XLAT_STR_327 STRINGIFY(V4L2_CID_FLASH_INTENSITY) + #define XLAT_VAL_328 ((unsigned) (V4L2_CID_FLASH_INTENSITY)) + #define XLAT_STR_328 STRINGIFY(V4L2_CID_FLASH_INTENSITY) XLAT(V4L2_CID_FLASH_TORCH_INTENSITY), - #define XLAT_VAL_328 ((unsigned) (V4L2_CID_FLASH_TORCH_INTENSITY)) - #define XLAT_STR_328 STRINGIFY(V4L2_CID_FLASH_TORCH_INTENSITY) + #define XLAT_VAL_329 ((unsigned) (V4L2_CID_FLASH_TORCH_INTENSITY)) + #define XLAT_STR_329 STRINGIFY(V4L2_CID_FLASH_TORCH_INTENSITY) XLAT(V4L2_CID_FLASH_INDICATOR_INTENSITY), - #define XLAT_VAL_329 ((unsigned) (V4L2_CID_FLASH_INDICATOR_INTENSITY)) - #define XLAT_STR_329 STRINGIFY(V4L2_CID_FLASH_INDICATOR_INTENSITY) + #define XLAT_VAL_330 ((unsigned) (V4L2_CID_FLASH_INDICATOR_INTENSITY)) + #define XLAT_STR_330 STRINGIFY(V4L2_CID_FLASH_INDICATOR_INTENSITY) XLAT(V4L2_CID_FLASH_FAULT), - #define XLAT_VAL_330 ((unsigned) (V4L2_CID_FLASH_FAULT)) - #define XLAT_STR_330 STRINGIFY(V4L2_CID_FLASH_FAULT) + #define XLAT_VAL_331 ((unsigned) (V4L2_CID_FLASH_FAULT)) + #define XLAT_STR_331 STRINGIFY(V4L2_CID_FLASH_FAULT) XLAT(V4L2_CID_FLASH_CHARGE), - #define XLAT_VAL_331 ((unsigned) (V4L2_CID_FLASH_CHARGE)) - #define XLAT_STR_331 STRINGIFY(V4L2_CID_FLASH_CHARGE) + #define XLAT_VAL_332 ((unsigned) (V4L2_CID_FLASH_CHARGE)) + #define XLAT_STR_332 STRINGIFY(V4L2_CID_FLASH_CHARGE) XLAT(V4L2_CID_FLASH_READY), - #define XLAT_VAL_332 ((unsigned) (V4L2_CID_FLASH_READY)) - #define XLAT_STR_332 STRINGIFY(V4L2_CID_FLASH_READY) + #define XLAT_VAL_333 ((unsigned) (V4L2_CID_FLASH_READY)) + #define XLAT_STR_333 STRINGIFY(V4L2_CID_FLASH_READY) XLAT(V4L2_CID_VBLANK), - #define XLAT_VAL_333 ((unsigned) (V4L2_CID_VBLANK)) - #define XLAT_STR_333 STRINGIFY(V4L2_CID_VBLANK) + #define XLAT_VAL_334 ((unsigned) (V4L2_CID_VBLANK)) + #define XLAT_STR_334 STRINGIFY(V4L2_CID_VBLANK) XLAT(V4L2_CID_HBLANK), - #define XLAT_VAL_334 ((unsigned) (V4L2_CID_HBLANK)) - #define XLAT_STR_334 STRINGIFY(V4L2_CID_HBLANK) + #define XLAT_VAL_335 ((unsigned) (V4L2_CID_HBLANK)) + #define XLAT_STR_335 STRINGIFY(V4L2_CID_HBLANK) XLAT(V4L2_CID_ANALOGUE_GAIN), - #define XLAT_VAL_335 ((unsigned) (V4L2_CID_ANALOGUE_GAIN)) - #define XLAT_STR_335 STRINGIFY(V4L2_CID_ANALOGUE_GAIN) + #define XLAT_VAL_336 ((unsigned) (V4L2_CID_ANALOGUE_GAIN)) + #define XLAT_STR_336 STRINGIFY(V4L2_CID_ANALOGUE_GAIN) XLAT(V4L2_CID_TEST_PATTERN_RED), - #define XLAT_VAL_336 ((unsigned) (V4L2_CID_TEST_PATTERN_RED)) - #define XLAT_STR_336 STRINGIFY(V4L2_CID_TEST_PATTERN_RED) + #define XLAT_VAL_337 ((unsigned) (V4L2_CID_TEST_PATTERN_RED)) + #define XLAT_STR_337 STRINGIFY(V4L2_CID_TEST_PATTERN_RED) XLAT(V4L2_CID_TEST_PATTERN_GREENR), - #define XLAT_VAL_337 ((unsigned) (V4L2_CID_TEST_PATTERN_GREENR)) - #define XLAT_STR_337 STRINGIFY(V4L2_CID_TEST_PATTERN_GREENR) + #define XLAT_VAL_338 ((unsigned) (V4L2_CID_TEST_PATTERN_GREENR)) + #define XLAT_STR_338 STRINGIFY(V4L2_CID_TEST_PATTERN_GREENR) XLAT(V4L2_CID_TEST_PATTERN_BLUE), - #define XLAT_VAL_338 ((unsigned) (V4L2_CID_TEST_PATTERN_BLUE)) - #define XLAT_STR_338 STRINGIFY(V4L2_CID_TEST_PATTERN_BLUE) + #define XLAT_VAL_339 ((unsigned) (V4L2_CID_TEST_PATTERN_BLUE)) + #define XLAT_STR_339 STRINGIFY(V4L2_CID_TEST_PATTERN_BLUE) XLAT(V4L2_CID_TEST_PATTERN_GREENB), - #define XLAT_VAL_339 ((unsigned) (V4L2_CID_TEST_PATTERN_GREENB)) - #define XLAT_STR_339 STRINGIFY(V4L2_CID_TEST_PATTERN_GREENB) + #define XLAT_VAL_340 ((unsigned) (V4L2_CID_TEST_PATTERN_GREENB)) + #define XLAT_STR_340 STRINGIFY(V4L2_CID_TEST_PATTERN_GREENB) XLAT(V4L2_CID_UNIT_CELL_SIZE), - #define XLAT_VAL_340 ((unsigned) (V4L2_CID_UNIT_CELL_SIZE)) - #define XLAT_STR_340 STRINGIFY(V4L2_CID_UNIT_CELL_SIZE) + #define XLAT_VAL_341 ((unsigned) (V4L2_CID_UNIT_CELL_SIZE)) + #define XLAT_STR_341 STRINGIFY(V4L2_CID_UNIT_CELL_SIZE) XLAT(V4L2_CID_NOTIFY_GAINS), - #define XLAT_VAL_341 ((unsigned) (V4L2_CID_NOTIFY_GAINS)) - #define XLAT_STR_341 STRINGIFY(V4L2_CID_NOTIFY_GAINS) + #define XLAT_VAL_342 ((unsigned) (V4L2_CID_NOTIFY_GAINS)) + #define XLAT_STR_342 STRINGIFY(V4L2_CID_NOTIFY_GAINS) XLAT(V4L2_CID_LINK_FREQ), - #define XLAT_VAL_342 ((unsigned) (V4L2_CID_LINK_FREQ)) - #define XLAT_STR_342 STRINGIFY(V4L2_CID_LINK_FREQ) + #define XLAT_VAL_343 ((unsigned) (V4L2_CID_LINK_FREQ)) + #define XLAT_STR_343 STRINGIFY(V4L2_CID_LINK_FREQ) XLAT(V4L2_CID_PIXEL_RATE), - #define XLAT_VAL_343 ((unsigned) (V4L2_CID_PIXEL_RATE)) - #define XLAT_STR_343 STRINGIFY(V4L2_CID_PIXEL_RATE) + #define XLAT_VAL_344 ((unsigned) (V4L2_CID_PIXEL_RATE)) + #define XLAT_STR_344 STRINGIFY(V4L2_CID_PIXEL_RATE) XLAT(V4L2_CID_TEST_PATTERN), - #define XLAT_VAL_344 ((unsigned) (V4L2_CID_TEST_PATTERN)) - #define XLAT_STR_344 STRINGIFY(V4L2_CID_TEST_PATTERN) + #define XLAT_VAL_345 ((unsigned) (V4L2_CID_TEST_PATTERN)) + #define XLAT_STR_345 STRINGIFY(V4L2_CID_TEST_PATTERN) XLAT(V4L2_CID_DEINTERLACING_MODE), - #define XLAT_VAL_345 ((unsigned) (V4L2_CID_DEINTERLACING_MODE)) - #define XLAT_STR_345 STRINGIFY(V4L2_CID_DEINTERLACING_MODE) + #define XLAT_VAL_346 ((unsigned) (V4L2_CID_DEINTERLACING_MODE)) + #define XLAT_STR_346 STRINGIFY(V4L2_CID_DEINTERLACING_MODE) XLAT(V4L2_CID_DIGITAL_GAIN), - #define XLAT_VAL_346 ((unsigned) (V4L2_CID_DIGITAL_GAIN)) - #define XLAT_STR_346 STRINGIFY(V4L2_CID_DIGITAL_GAIN) + #define XLAT_VAL_347 ((unsigned) (V4L2_CID_DIGITAL_GAIN)) + #define XLAT_STR_347 STRINGIFY(V4L2_CID_DIGITAL_GAIN) XLAT(V4L2_CID_DV_TX_RGB_RANGE), - #define XLAT_VAL_347 ((unsigned) (V4L2_CID_DV_TX_RGB_RANGE)) - #define XLAT_STR_347 STRINGIFY(V4L2_CID_DV_TX_RGB_RANGE) + #define XLAT_VAL_348 ((unsigned) (V4L2_CID_DV_TX_RGB_RANGE)) + #define XLAT_STR_348 STRINGIFY(V4L2_CID_DV_TX_RGB_RANGE) XLAT(V4L2_CID_DV_TX_IT_CONTENT_TYPE), - #define XLAT_VAL_348 ((unsigned) (V4L2_CID_DV_TX_IT_CONTENT_TYPE)) - #define XLAT_STR_348 STRINGIFY(V4L2_CID_DV_TX_IT_CONTENT_TYPE) + #define XLAT_VAL_349 ((unsigned) (V4L2_CID_DV_TX_IT_CONTENT_TYPE)) + #define XLAT_STR_349 STRINGIFY(V4L2_CID_DV_TX_IT_CONTENT_TYPE) XLAT(V4L2_CID_DV_RX_RGB_RANGE), - #define XLAT_VAL_349 ((unsigned) (V4L2_CID_DV_RX_RGB_RANGE)) - #define XLAT_STR_349 STRINGIFY(V4L2_CID_DV_RX_RGB_RANGE) + #define XLAT_VAL_350 ((unsigned) (V4L2_CID_DV_RX_RGB_RANGE)) + #define XLAT_STR_350 STRINGIFY(V4L2_CID_DV_RX_RGB_RANGE) XLAT(V4L2_CID_DV_RX_IT_CONTENT_TYPE), - #define XLAT_VAL_350 ((unsigned) (V4L2_CID_DV_RX_IT_CONTENT_TYPE)) - #define XLAT_STR_350 STRINGIFY(V4L2_CID_DV_RX_IT_CONTENT_TYPE) + #define XLAT_VAL_351 ((unsigned) (V4L2_CID_DV_RX_IT_CONTENT_TYPE)) + #define XLAT_STR_351 STRINGIFY(V4L2_CID_DV_RX_IT_CONTENT_TYPE) XLAT(V4L2_CID_TUNE_DEEMPHASIS), - #define XLAT_VAL_351 ((unsigned) (V4L2_CID_TUNE_DEEMPHASIS)) - #define XLAT_STR_351 STRINGIFY(V4L2_CID_TUNE_DEEMPHASIS) + #define XLAT_VAL_352 ((unsigned) (V4L2_CID_TUNE_DEEMPHASIS)) + #define XLAT_STR_352 STRINGIFY(V4L2_CID_TUNE_DEEMPHASIS) XLAT(V4L2_CID_RDS_RECEPTION), - #define XLAT_VAL_352 ((unsigned) (V4L2_CID_RDS_RECEPTION)) - #define XLAT_STR_352 STRINGIFY(V4L2_CID_RDS_RECEPTION) + #define XLAT_VAL_353 ((unsigned) (V4L2_CID_RDS_RECEPTION)) + #define XLAT_STR_353 STRINGIFY(V4L2_CID_RDS_RECEPTION) XLAT(V4L2_CID_RDS_RX_PTY), - #define XLAT_VAL_353 ((unsigned) (V4L2_CID_RDS_RX_PTY)) - #define XLAT_STR_353 STRINGIFY(V4L2_CID_RDS_RX_PTY) + #define XLAT_VAL_354 ((unsigned) (V4L2_CID_RDS_RX_PTY)) + #define XLAT_STR_354 STRINGIFY(V4L2_CID_RDS_RX_PTY) XLAT(V4L2_CID_RDS_RX_PS_NAME), - #define XLAT_VAL_354 ((unsigned) (V4L2_CID_RDS_RX_PS_NAME)) - #define XLAT_STR_354 STRINGIFY(V4L2_CID_RDS_RX_PS_NAME) + #define XLAT_VAL_355 ((unsigned) (V4L2_CID_RDS_RX_PS_NAME)) + #define XLAT_STR_355 STRINGIFY(V4L2_CID_RDS_RX_PS_NAME) XLAT(V4L2_CID_RDS_RX_RADIO_TEXT), - #define XLAT_VAL_355 ((unsigned) (V4L2_CID_RDS_RX_RADIO_TEXT)) - #define XLAT_STR_355 STRINGIFY(V4L2_CID_RDS_RX_RADIO_TEXT) + #define XLAT_VAL_356 ((unsigned) (V4L2_CID_RDS_RX_RADIO_TEXT)) + #define XLAT_STR_356 STRINGIFY(V4L2_CID_RDS_RX_RADIO_TEXT) XLAT(V4L2_CID_RDS_RX_TRAFFIC_ANNOUNCEMENT), - #define XLAT_VAL_356 ((unsigned) (V4L2_CID_RDS_RX_TRAFFIC_ANNOUNCEMENT)) - #define XLAT_STR_356 STRINGIFY(V4L2_CID_RDS_RX_TRAFFIC_ANNOUNCEMENT) + #define XLAT_VAL_357 ((unsigned) (V4L2_CID_RDS_RX_TRAFFIC_ANNOUNCEMENT)) + #define XLAT_STR_357 STRINGIFY(V4L2_CID_RDS_RX_TRAFFIC_ANNOUNCEMENT) XLAT(V4L2_CID_RDS_RX_TRAFFIC_PROGRAM), - #define XLAT_VAL_357 ((unsigned) (V4L2_CID_RDS_RX_TRAFFIC_PROGRAM)) - #define XLAT_STR_357 STRINGIFY(V4L2_CID_RDS_RX_TRAFFIC_PROGRAM) + #define XLAT_VAL_358 ((unsigned) (V4L2_CID_RDS_RX_TRAFFIC_PROGRAM)) + #define XLAT_STR_358 STRINGIFY(V4L2_CID_RDS_RX_TRAFFIC_PROGRAM) XLAT(V4L2_CID_RDS_RX_MUSIC_SPEECH), - #define XLAT_VAL_358 ((unsigned) (V4L2_CID_RDS_RX_MUSIC_SPEECH)) - #define XLAT_STR_358 STRINGIFY(V4L2_CID_RDS_RX_MUSIC_SPEECH) + #define XLAT_VAL_359 ((unsigned) (V4L2_CID_RDS_RX_MUSIC_SPEECH)) + #define XLAT_STR_359 STRINGIFY(V4L2_CID_RDS_RX_MUSIC_SPEECH) XLAT(V4L2_CID_RF_TUNER_BANDWIDTH_AUTO), - #define XLAT_VAL_359 ((unsigned) (V4L2_CID_RF_TUNER_BANDWIDTH_AUTO)) - #define XLAT_STR_359 STRINGIFY(V4L2_CID_RF_TUNER_BANDWIDTH_AUTO) + #define XLAT_VAL_360 ((unsigned) (V4L2_CID_RF_TUNER_BANDWIDTH_AUTO)) + #define XLAT_STR_360 STRINGIFY(V4L2_CID_RF_TUNER_BANDWIDTH_AUTO) XLAT(V4L2_CID_RF_TUNER_BANDWIDTH), - #define XLAT_VAL_360 ((unsigned) (V4L2_CID_RF_TUNER_BANDWIDTH)) - #define XLAT_STR_360 STRINGIFY(V4L2_CID_RF_TUNER_BANDWIDTH) + #define XLAT_VAL_361 ((unsigned) (V4L2_CID_RF_TUNER_BANDWIDTH)) + #define XLAT_STR_361 STRINGIFY(V4L2_CID_RF_TUNER_BANDWIDTH) XLAT(V4L2_CID_RF_TUNER_RF_GAIN), - #define XLAT_VAL_361 ((unsigned) (V4L2_CID_RF_TUNER_RF_GAIN)) - #define XLAT_STR_361 STRINGIFY(V4L2_CID_RF_TUNER_RF_GAIN) + #define XLAT_VAL_362 ((unsigned) (V4L2_CID_RF_TUNER_RF_GAIN)) + #define XLAT_STR_362 STRINGIFY(V4L2_CID_RF_TUNER_RF_GAIN) XLAT(V4L2_CID_RF_TUNER_LNA_GAIN_AUTO), - #define XLAT_VAL_362 ((unsigned) (V4L2_CID_RF_TUNER_LNA_GAIN_AUTO)) - #define XLAT_STR_362 STRINGIFY(V4L2_CID_RF_TUNER_LNA_GAIN_AUTO) + #define XLAT_VAL_363 ((unsigned) (V4L2_CID_RF_TUNER_LNA_GAIN_AUTO)) + #define XLAT_STR_363 STRINGIFY(V4L2_CID_RF_TUNER_LNA_GAIN_AUTO) XLAT(V4L2_CID_RF_TUNER_LNA_GAIN), - #define XLAT_VAL_363 ((unsigned) (V4L2_CID_RF_TUNER_LNA_GAIN)) - #define XLAT_STR_363 STRINGIFY(V4L2_CID_RF_TUNER_LNA_GAIN) + #define XLAT_VAL_364 ((unsigned) (V4L2_CID_RF_TUNER_LNA_GAIN)) + #define XLAT_STR_364 STRINGIFY(V4L2_CID_RF_TUNER_LNA_GAIN) XLAT(V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO), - #define XLAT_VAL_364 ((unsigned) (V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO)) - #define XLAT_STR_364 STRINGIFY(V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO) + #define XLAT_VAL_365 ((unsigned) (V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO)) + #define XLAT_STR_365 STRINGIFY(V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO) XLAT(V4L2_CID_RF_TUNER_MIXER_GAIN), - #define XLAT_VAL_365 ((unsigned) (V4L2_CID_RF_TUNER_MIXER_GAIN)) - #define XLAT_STR_365 STRINGIFY(V4L2_CID_RF_TUNER_MIXER_GAIN) + #define XLAT_VAL_366 ((unsigned) (V4L2_CID_RF_TUNER_MIXER_GAIN)) + #define XLAT_STR_366 STRINGIFY(V4L2_CID_RF_TUNER_MIXER_GAIN) XLAT(V4L2_CID_RF_TUNER_IF_GAIN_AUTO), - #define XLAT_VAL_366 ((unsigned) (V4L2_CID_RF_TUNER_IF_GAIN_AUTO)) - #define XLAT_STR_366 STRINGIFY(V4L2_CID_RF_TUNER_IF_GAIN_AUTO) + #define XLAT_VAL_367 ((unsigned) (V4L2_CID_RF_TUNER_IF_GAIN_AUTO)) + #define XLAT_STR_367 STRINGIFY(V4L2_CID_RF_TUNER_IF_GAIN_AUTO) XLAT(V4L2_CID_RF_TUNER_IF_GAIN), - #define XLAT_VAL_367 ((unsigned) (V4L2_CID_RF_TUNER_IF_GAIN)) - #define XLAT_STR_367 STRINGIFY(V4L2_CID_RF_TUNER_IF_GAIN) + #define XLAT_VAL_368 ((unsigned) (V4L2_CID_RF_TUNER_IF_GAIN)) + #define XLAT_STR_368 STRINGIFY(V4L2_CID_RF_TUNER_IF_GAIN) XLAT(V4L2_CID_RF_TUNER_PLL_LOCK), - #define XLAT_VAL_368 ((unsigned) (V4L2_CID_RF_TUNER_PLL_LOCK)) - #define XLAT_STR_368 STRINGIFY(V4L2_CID_RF_TUNER_PLL_LOCK) + #define XLAT_VAL_369 ((unsigned) (V4L2_CID_RF_TUNER_PLL_LOCK)) + #define XLAT_STR_369 STRINGIFY(V4L2_CID_RF_TUNER_PLL_LOCK) XLAT(V4L2_CID_DETECT_MD_MODE), - #define XLAT_VAL_369 ((unsigned) (V4L2_CID_DETECT_MD_MODE)) - #define XLAT_STR_369 STRINGIFY(V4L2_CID_DETECT_MD_MODE) + #define XLAT_VAL_370 ((unsigned) (V4L2_CID_DETECT_MD_MODE)) + #define XLAT_STR_370 STRINGIFY(V4L2_CID_DETECT_MD_MODE) XLAT(V4L2_CID_DETECT_MD_GLOBAL_THRESHOLD), - #define XLAT_VAL_370 ((unsigned) (V4L2_CID_DETECT_MD_GLOBAL_THRESHOLD)) - #define XLAT_STR_370 STRINGIFY(V4L2_CID_DETECT_MD_GLOBAL_THRESHOLD) + #define XLAT_VAL_371 ((unsigned) (V4L2_CID_DETECT_MD_GLOBAL_THRESHOLD)) + #define XLAT_STR_371 STRINGIFY(V4L2_CID_DETECT_MD_GLOBAL_THRESHOLD) XLAT(V4L2_CID_DETECT_MD_THRESHOLD_GRID), - #define XLAT_VAL_371 ((unsigned) (V4L2_CID_DETECT_MD_THRESHOLD_GRID)) - #define XLAT_STR_371 STRINGIFY(V4L2_CID_DETECT_MD_THRESHOLD_GRID) + #define XLAT_VAL_372 ((unsigned) (V4L2_CID_DETECT_MD_THRESHOLD_GRID)) + #define XLAT_STR_372 STRINGIFY(V4L2_CID_DETECT_MD_THRESHOLD_GRID) XLAT(V4L2_CID_DETECT_MD_REGION_GRID), - #define XLAT_VAL_372 ((unsigned) (V4L2_CID_DETECT_MD_REGION_GRID)) - #define XLAT_STR_372 STRINGIFY(V4L2_CID_DETECT_MD_REGION_GRID) + #define XLAT_VAL_373 ((unsigned) (V4L2_CID_DETECT_MD_REGION_GRID)) + #define XLAT_STR_373 STRINGIFY(V4L2_CID_DETECT_MD_REGION_GRID) }; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static @@ -5262,6 +5273,9 @@ # ifdef XLAT_VAL_372 | XLAT_VAL_372 # endif +# ifdef XLAT_VAL_373 + | XLAT_VAL_373 +# endif , .flags_strsz = 0 # ifdef XLAT_STR_0 @@ -6383,6 +6397,9 @@ # ifdef XLAT_STR_372 + sizeof(XLAT_STR_372) # endif +# ifdef XLAT_STR_373 + + sizeof(XLAT_STR_373) +# endif , } }; DIAG_POP_IGNORE_TAUTOLOGICAL_CONSTANT_COMPARE @@ -7133,6 +7150,8 @@ # undef XLAT_VAL_371 # undef XLAT_STR_372 # undef XLAT_VAL_372 +# undef XLAT_STR_373 +# undef XLAT_VAL_373 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff -Nru strace-6.1/src/xlat/v4l2_control_ids.in strace-6.2/src/xlat/v4l2_control_ids.in --- strace-6.1/src/xlat/v4l2_control_ids.in 2022-08-09 10:34:27.000000000 +0200 +++ strace-6.2/src/xlat/v4l2_control_ids.in 2023-02-13 09:00:00.000000000 +0100 @@ -43,6 +43,7 @@ V4L2_CID_MIN_BUFFERS_FOR_OUTPUT V4L2_CID_ALPHA_COMPONENT V4L2_CID_COLORFX_CBCR +V4L2_CID_COLORFX_RGB /* MPEG-class control IDs */ /* MPEG streams, specific to multiplexed streams */ V4L2_CID_MPEG_STREAM_TYPE diff -Nru strace-6.1/src/xlat/v4l2_control_types.h strace-6.2/src/xlat/v4l2_control_types.h --- strace-6.1/src/xlat/v4l2_control_types.h 2022-12-12 19:28:52.000000000 +0100 +++ strace-6.2/src/xlat/v4l2_control_types.h 2023-02-26 22:20:47.000000000 +0100 @@ -187,6 +187,86 @@ #endif #undef XLAT_PREV_VAL #define XLAT_PREV_VAL (V4L2_CTRL_TYPE_VP8_FRAME) +#if defined XLAT_PREV_VAL +static_assert((unsigned long long) (V4L2_CTRL_TYPE_MPEG2_QUANTISATION) + > (unsigned long long) (XLAT_PREV_VAL), + "Incorrect order in #sorted xlat: V4L2_CTRL_TYPE_MPEG2_QUANTISATION" + " is not larger than the previous value"); +#endif +#undef XLAT_PREV_VAL +#define XLAT_PREV_VAL (V4L2_CTRL_TYPE_MPEG2_QUANTISATION) +#if defined XLAT_PREV_VAL +static_assert((unsigned long long) (V4L2_CTRL_TYPE_MPEG2_SEQUENCE) + > (unsigned long long) (XLAT_PREV_VAL), + "Incorrect order in #sorted xlat: V4L2_CTRL_TYPE_MPEG2_SEQUENCE" + " is not larger than the previous value"); +#endif +#undef XLAT_PREV_VAL +#define XLAT_PREV_VAL (V4L2_CTRL_TYPE_MPEG2_SEQUENCE) +#if defined XLAT_PREV_VAL +static_assert((unsigned long long) (V4L2_CTRL_TYPE_MPEG2_PICTURE) + > (unsigned long long) (XLAT_PREV_VAL), + "Incorrect order in #sorted xlat: V4L2_CTRL_TYPE_MPEG2_PICTURE" + " is not larger than the previous value"); +#endif +#undef XLAT_PREV_VAL +#define XLAT_PREV_VAL (V4L2_CTRL_TYPE_MPEG2_PICTURE) +#if defined XLAT_PREV_VAL +static_assert((unsigned long long) (V4L2_CTRL_TYPE_VP9_COMPRESSED_HDR) + > (unsigned long long) (XLAT_PREV_VAL), + "Incorrect order in #sorted xlat: V4L2_CTRL_TYPE_VP9_COMPRESSED_HDR" + " is not larger than the previous value"); +#endif +#undef XLAT_PREV_VAL +#define XLAT_PREV_VAL (V4L2_CTRL_TYPE_VP9_COMPRESSED_HDR) +#if defined XLAT_PREV_VAL +static_assert((unsigned long long) (V4L2_CTRL_TYPE_VP9_FRAME) + > (unsigned long long) (XLAT_PREV_VAL), + "Incorrect order in #sorted xlat: V4L2_CTRL_TYPE_VP9_FRAME" + " is not larger than the previous value"); +#endif +#undef XLAT_PREV_VAL +#define XLAT_PREV_VAL (V4L2_CTRL_TYPE_VP9_FRAME) +#if defined XLAT_PREV_VAL +static_assert((unsigned long long) (V4L2_CTRL_TYPE_HEVC_SPS) + > (unsigned long long) (XLAT_PREV_VAL), + "Incorrect order in #sorted xlat: V4L2_CTRL_TYPE_HEVC_SPS" + " is not larger than the previous value"); +#endif +#undef XLAT_PREV_VAL +#define XLAT_PREV_VAL (V4L2_CTRL_TYPE_HEVC_SPS) +#if defined XLAT_PREV_VAL +static_assert((unsigned long long) (V4L2_CTRL_TYPE_HEVC_PPS) + > (unsigned long long) (XLAT_PREV_VAL), + "Incorrect order in #sorted xlat: V4L2_CTRL_TYPE_HEVC_PPS" + " is not larger than the previous value"); +#endif +#undef XLAT_PREV_VAL +#define XLAT_PREV_VAL (V4L2_CTRL_TYPE_HEVC_PPS) +#if defined XLAT_PREV_VAL +static_assert((unsigned long long) (V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS) + > (unsigned long long) (XLAT_PREV_VAL), + "Incorrect order in #sorted xlat: V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS" + " is not larger than the previous value"); +#endif +#undef XLAT_PREV_VAL +#define XLAT_PREV_VAL (V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS) +#if defined XLAT_PREV_VAL +static_assert((unsigned long long) (V4L2_CTRL_TYPE_HEVC_SCALING_MATRIX) + > (unsigned long long) (XLAT_PREV_VAL), + "Incorrect order in #sorted xlat: V4L2_CTRL_TYPE_HEVC_SCALING_MATRIX" + " is not larger than the previous value"); +#endif +#undef XLAT_PREV_VAL +#define XLAT_PREV_VAL (V4L2_CTRL_TYPE_HEVC_SCALING_MATRIX) +#if defined XLAT_PREV_VAL +static_assert((unsigned long long) (V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS) + > (unsigned long long) (XLAT_PREV_VAL), + "Incorrect order in #sorted xlat: V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS" + " is not larger than the previous value"); +#endif +#undef XLAT_PREV_VAL +#define XLAT_PREV_VAL (V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS) #undef XLAT_PREV_VAL #ifndef XLAT_MACROS_ONLY @@ -268,6 +348,36 @@ XLAT(V4L2_CTRL_TYPE_VP8_FRAME), #define XLAT_VAL_22 ((unsigned) (V4L2_CTRL_TYPE_VP8_FRAME)) #define XLAT_STR_22 STRINGIFY(V4L2_CTRL_TYPE_VP8_FRAME) + XLAT(V4L2_CTRL_TYPE_MPEG2_QUANTISATION), + #define XLAT_VAL_23 ((unsigned) (V4L2_CTRL_TYPE_MPEG2_QUANTISATION)) + #define XLAT_STR_23 STRINGIFY(V4L2_CTRL_TYPE_MPEG2_QUANTISATION) + XLAT(V4L2_CTRL_TYPE_MPEG2_SEQUENCE), + #define XLAT_VAL_24 ((unsigned) (V4L2_CTRL_TYPE_MPEG2_SEQUENCE)) + #define XLAT_STR_24 STRINGIFY(V4L2_CTRL_TYPE_MPEG2_SEQUENCE) + XLAT(V4L2_CTRL_TYPE_MPEG2_PICTURE), + #define XLAT_VAL_25 ((unsigned) (V4L2_CTRL_TYPE_MPEG2_PICTURE)) + #define XLAT_STR_25 STRINGIFY(V4L2_CTRL_TYPE_MPEG2_PICTURE) + XLAT(V4L2_CTRL_TYPE_VP9_COMPRESSED_HDR), + #define XLAT_VAL_26 ((unsigned) (V4L2_CTRL_TYPE_VP9_COMPRESSED_HDR)) + #define XLAT_STR_26 STRINGIFY(V4L2_CTRL_TYPE_VP9_COMPRESSED_HDR) + XLAT(V4L2_CTRL_TYPE_VP9_FRAME), + #define XLAT_VAL_27 ((unsigned) (V4L2_CTRL_TYPE_VP9_FRAME)) + #define XLAT_STR_27 STRINGIFY(V4L2_CTRL_TYPE_VP9_FRAME) + XLAT(V4L2_CTRL_TYPE_HEVC_SPS), + #define XLAT_VAL_28 ((unsigned) (V4L2_CTRL_TYPE_HEVC_SPS)) + #define XLAT_STR_28 STRINGIFY(V4L2_CTRL_TYPE_HEVC_SPS) + XLAT(V4L2_CTRL_TYPE_HEVC_PPS), + #define XLAT_VAL_29 ((unsigned) (V4L2_CTRL_TYPE_HEVC_PPS)) + #define XLAT_STR_29 STRINGIFY(V4L2_CTRL_TYPE_HEVC_PPS) + XLAT(V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS), + #define XLAT_VAL_30 ((unsigned) (V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS)) + #define XLAT_STR_30 STRINGIFY(V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS) + XLAT(V4L2_CTRL_TYPE_HEVC_SCALING_MATRIX), + #define XLAT_VAL_31 ((unsigned) (V4L2_CTRL_TYPE_HEVC_SCALING_MATRIX)) + #define XLAT_STR_31 STRINGIFY(V4L2_CTRL_TYPE_HEVC_SCALING_MATRIX) + XLAT(V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS), + #define XLAT_VAL_32 ((unsigned) (V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS)) + #define XLAT_STR_32 STRINGIFY(V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS) }; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static @@ -346,6 +456,36 @@ # ifdef XLAT_VAL_22 | XLAT_VAL_22 # endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif , .flags_strsz = 0 # ifdef XLAT_STR_0 @@ -417,6 +557,36 @@ # ifdef XLAT_STR_22 + sizeof(XLAT_STR_22) # endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif , } }; DIAG_POP_IGNORE_TAUTOLOGICAL_CONSTANT_COMPARE @@ -467,6 +637,26 @@ # undef XLAT_VAL_21 # undef XLAT_STR_22 # undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff -Nru strace-6.1/src/xlat/v4l2_control_types.in strace-6.2/src/xlat/v4l2_control_types.in --- strace-6.1/src/xlat/v4l2_control_types.in 2021-06-29 07:00:00.000000000 +0200 +++ strace-6.2/src/xlat/v4l2_control_types.in 2023-02-13 09:00:00.000000000 +0100 @@ -23,3 +23,13 @@ V4L2_CTRL_TYPE_H264_PRED_WEIGHTS V4L2_CTRL_TYPE_FWHT_PARAMS V4L2_CTRL_TYPE_VP8_FRAME +V4L2_CTRL_TYPE_MPEG2_QUANTISATION +V4L2_CTRL_TYPE_MPEG2_SEQUENCE +V4L2_CTRL_TYPE_MPEG2_PICTURE +V4L2_CTRL_TYPE_VP9_COMPRESSED_HDR +V4L2_CTRL_TYPE_VP9_FRAME +V4L2_CTRL_TYPE_HEVC_SPS +V4L2_CTRL_TYPE_HEVC_PPS +V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS +V4L2_CTRL_TYPE_HEVC_SCALING_MATRIX +V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS diff -Nru strace-6.1/src/xlat/v4l2_meta_fmts.in strace-6.2/src/xlat/v4l2_meta_fmts.in --- strace-6.1/src/xlat/v4l2_meta_fmts.in 2021-02-10 09:00:00.000000000 +0100 +++ strace-6.2/src/xlat/v4l2_meta_fmts.in 2023-02-14 09:00:00.000000000 +0100 @@ -1,5 +1,5 @@ #unconditional -#sorted sed -rn 's/.*v4l2_fourcc(_be)?\('"'(.)', '(.)', '(.)', '(.)'"'\).*/\10\5\4\3\2\t\0/p' |LC_COLLATE=C sort -k1,1 -t' ' |cut -f2- +#sorted sed -En 's/.*v4l2_fourcc(_be)?\('"'(.)', '(.)', '(.)', '(.)'"'\).*/\10\5\4\3\2\t\0/p' |LC_COLLATE=C sort -k1,1 -t' ' |cut -f2- V4L2_META_FMT_VIVID V4L2_META_FMT_UVC V4L2_META_FMT_VSP1_HGO diff -Nru strace-6.1/src/xlat/v4l2_pix_fmts.h strace-6.2/src/xlat/v4l2_pix_fmts.h --- strace-6.1/src/xlat/v4l2_pix_fmts.h 2022-12-12 19:28:53.000000000 +0100 +++ strace-6.2/src/xlat/v4l2_pix_fmts.h 2023-02-26 22:20:49.000000000 +0100 @@ -76,6 +76,22 @@ #undef XLAT_PREV_VAL #define XLAT_PREV_VAL (V4L2_PIX_FMT_Y8I) #if defined XLAT_PREV_VAL +static_assert((unsigned long long) (V4L2_PIX_FMT_P010) + > (unsigned long long) (XLAT_PREV_VAL), + "Incorrect order in #sorted xlat: V4L2_PIX_FMT_P010" + " is not larger than the previous value"); +#endif +#undef XLAT_PREV_VAL +#define XLAT_PREV_VAL (V4L2_PIX_FMT_P010) +#if defined XLAT_PREV_VAL +static_assert((unsigned long long) (V4L2_PIX_FMT_P010_4L4) + > (unsigned long long) (XLAT_PREV_VAL), + "Incorrect order in #sorted xlat: V4L2_PIX_FMT_P010_4L4" + " is not larger than the previous value"); +#endif +#undef XLAT_PREV_VAL +#define XLAT_PREV_VAL (V4L2_PIX_FMT_P010_4L4) +#if defined XLAT_PREV_VAL static_assert((unsigned long long) (V4L2_PIX_FMT_MR97310A) > (unsigned long long) (XLAT_PREV_VAL), "Incorrect order in #sorted xlat: V4L2_PIX_FMT_MR97310A" @@ -452,6 +468,14 @@ #undef XLAT_PREV_VAL #define XLAT_PREV_VAL (V4L2_PIX_FMT_XRGB444) #if defined XLAT_PREV_VAL +static_assert((unsigned long long) (V4L2_PIX_FMT_NV12_8L128) + > (unsigned long long) (XLAT_PREV_VAL), + "Incorrect order in #sorted xlat: V4L2_PIX_FMT_NV12_8L128" + " is not larger than the previous value"); +#endif +#undef XLAT_PREV_VAL +#define XLAT_PREV_VAL (V4L2_PIX_FMT_NV12_8L128) +#if defined XLAT_PREV_VAL static_assert((unsigned long long) (V4L2_PIX_FMT_NV12_32L32) > (unsigned long long) (XLAT_PREV_VAL), "Incorrect order in #sorted xlat: V4L2_PIX_FMT_NV12_32L32" @@ -876,6 +900,14 @@ #undef XLAT_PREV_VAL #define XLAT_PREV_VAL (V4L2_PIX_FMT_ET61X251) #if defined XLAT_PREV_VAL +static_assert((unsigned long long) (V4L2_PIX_FMT_HEVC_SLICE) + > (unsigned long long) (XLAT_PREV_VAL), + "Incorrect order in #sorted xlat: V4L2_PIX_FMT_HEVC_SLICE" + " is not larger than the previous value"); +#endif +#undef XLAT_PREV_VAL +#define XLAT_PREV_VAL (V4L2_PIX_FMT_HEVC_SLICE) +#if defined XLAT_PREV_VAL static_assert((unsigned long long) (V4L2_PIX_FMT_SGBRG16) > (unsigned long long) (XLAT_PREV_VAL), "Incorrect order in #sorted xlat: V4L2_PIX_FMT_SGBRG16" @@ -1076,6 +1108,14 @@ #undef XLAT_PREV_VAL #define XLAT_PREV_VAL (V4L2_PIX_FMT_WNVA) #if defined XLAT_PREV_VAL +static_assert((unsigned long long) (V4L2_PIX_FMT_YUVA32) + > (unsigned long long) (XLAT_PREV_VAL), + "Incorrect order in #sorted xlat: V4L2_PIX_FMT_YUVA32" + " is not larger than the previous value"); +#endif +#undef XLAT_PREV_VAL +#define XLAT_PREV_VAL (V4L2_PIX_FMT_YUVA32) +#if defined XLAT_PREV_VAL static_assert((unsigned long long) (V4L2_PIX_FMT_VUYA32) > (unsigned long long) (XLAT_PREV_VAL), "Incorrect order in #sorted xlat: V4L2_PIX_FMT_VUYA32" @@ -1260,6 +1300,14 @@ #undef XLAT_PREV_VAL #define XLAT_PREV_VAL (V4L2_PIX_FMT_MPEG) #if defined XLAT_PREV_VAL +static_assert((unsigned long long) (V4L2_PIX_FMT_AJPG) + > (unsigned long long) (XLAT_PREV_VAL), + "Incorrect order in #sorted xlat: V4L2_PIX_FMT_AJPG" + " is not larger than the previous value"); +#endif +#undef XLAT_PREV_VAL +#define XLAT_PREV_VAL (V4L2_PIX_FMT_AJPG) +#if defined XLAT_PREV_VAL static_assert((unsigned long long) (V4L2_PIX_FMT_MJPEG) > (unsigned long long) (XLAT_PREV_VAL), "Incorrect order in #sorted xlat: V4L2_PIX_FMT_MJPEG" @@ -1500,6 +1548,14 @@ #undef XLAT_PREV_VAL #define XLAT_PREV_VAL (V4L2_PIX_FMT_SN9C2028) #if defined XLAT_PREV_VAL +static_assert((unsigned long long) (V4L2_PIX_FMT_YUVX32) + > (unsigned long long) (XLAT_PREV_VAL), + "Incorrect order in #sorted xlat: V4L2_PIX_FMT_YUVX32" + " is not larger than the previous value"); +#endif +#undef XLAT_PREV_VAL +#define XLAT_PREV_VAL (V4L2_PIX_FMT_YUVX32) +#if defined XLAT_PREV_VAL static_assert((unsigned long long) (V4L2_PIX_FMT_VUYX32) > (unsigned long long) (XLAT_PREV_VAL), "Incorrect order in #sorted xlat: V4L2_PIX_FMT_VUYX32" @@ -1588,6 +1644,14 @@ #undef XLAT_PREV_VAL #define XLAT_PREV_VAL (V4L2_PIX_FMT_NV12M_10BE_8L128) #if defined XLAT_PREV_VAL +static_assert((unsigned long long) (V4L2_PIX_FMT_NV12_10BE_8L128) + > (unsigned long long) (XLAT_PREV_VAL), + "Incorrect order in #sorted xlat: V4L2_PIX_FMT_NV12_10BE_8L128" + " is not larger than the previous value"); +#endif +#undef XLAT_PREV_VAL +#define XLAT_PREV_VAL (V4L2_PIX_FMT_NV12_10BE_8L128) +#if defined XLAT_PREV_VAL static_assert((unsigned long long) (V4L2_PIX_FMT_ARGB555X) > (unsigned long long) (XLAT_PREV_VAL), "Incorrect order in #sorted xlat: V4L2_PIX_FMT_ARGB555X" @@ -1642,579 +1706,603 @@ XLAT(V4L2_PIX_FMT_Y8I), #define XLAT_VAL_8 ((unsigned) (V4L2_PIX_FMT_Y8I)) #define XLAT_STR_8 STRINGIFY(V4L2_PIX_FMT_Y8I) + XLAT(V4L2_PIX_FMT_P010), + #define XLAT_VAL_9 ((unsigned) (V4L2_PIX_FMT_P010)) + #define XLAT_STR_9 STRINGIFY(V4L2_PIX_FMT_P010) + XLAT(V4L2_PIX_FMT_P010_4L4), + #define XLAT_VAL_10 ((unsigned) (V4L2_PIX_FMT_P010_4L4)) + #define XLAT_STR_10 STRINGIFY(V4L2_PIX_FMT_P010_4L4) XLAT(V4L2_PIX_FMT_MR97310A), - #define XLAT_VAL_9 ((unsigned) (V4L2_PIX_FMT_MR97310A)) - #define XLAT_STR_9 STRINGIFY(V4L2_PIX_FMT_MR97310A) + #define XLAT_VAL_11 ((unsigned) (V4L2_PIX_FMT_MR97310A)) + #define XLAT_STR_11 STRINGIFY(V4L2_PIX_FMT_MR97310A) XLAT(V4L2_PIX_FMT_SN9C10X), - #define XLAT_VAL_10 ((unsigned) (V4L2_PIX_FMT_SN9C10X)) - #define XLAT_STR_10 STRINGIFY(V4L2_PIX_FMT_SN9C10X) + #define XLAT_VAL_12 ((unsigned) (V4L2_PIX_FMT_SN9C10X)) + #define XLAT_STR_12 STRINGIFY(V4L2_PIX_FMT_SN9C10X) XLAT(V4L2_PIX_FMT_SGRBG10), - #define XLAT_VAL_11 ((unsigned) (V4L2_PIX_FMT_SGRBG10)) - #define XLAT_STR_11 STRINGIFY(V4L2_PIX_FMT_SGRBG10) + #define XLAT_VAL_13 ((unsigned) (V4L2_PIX_FMT_SGRBG10)) + #define XLAT_STR_13 STRINGIFY(V4L2_PIX_FMT_SGRBG10) XLAT(V4L2_PIX_FMT_SGBRG10), - #define XLAT_VAL_12 ((unsigned) (V4L2_PIX_FMT_SGBRG10)) - #define XLAT_STR_12 STRINGIFY(V4L2_PIX_FMT_SGBRG10) + #define XLAT_VAL_14 ((unsigned) (V4L2_PIX_FMT_SGBRG10)) + #define XLAT_STR_14 STRINGIFY(V4L2_PIX_FMT_SGBRG10) XLAT(V4L2_PIX_FMT_SGRBG10DPCM8), - #define XLAT_VAL_13 ((unsigned) (V4L2_PIX_FMT_SGRBG10DPCM8)) - #define XLAT_STR_13 STRINGIFY(V4L2_PIX_FMT_SGRBG10DPCM8) + #define XLAT_VAL_15 ((unsigned) (V4L2_PIX_FMT_SGRBG10DPCM8)) + #define XLAT_STR_15 STRINGIFY(V4L2_PIX_FMT_SGRBG10DPCM8) XLAT(V4L2_PIX_FMT_SBGGR10), - #define XLAT_VAL_14 ((unsigned) (V4L2_PIX_FMT_SBGGR10)) - #define XLAT_STR_14 STRINGIFY(V4L2_PIX_FMT_SBGGR10) + #define XLAT_VAL_16 ((unsigned) (V4L2_PIX_FMT_SBGGR10)) + #define XLAT_STR_16 STRINGIFY(V4L2_PIX_FMT_SBGGR10) XLAT(V4L2_PIX_FMT_SRGGB10), - #define XLAT_VAL_15 ((unsigned) (V4L2_PIX_FMT_SRGGB10)) - #define XLAT_STR_15 STRINGIFY(V4L2_PIX_FMT_SRGGB10) + #define XLAT_VAL_17 ((unsigned) (V4L2_PIX_FMT_SRGGB10)) + #define XLAT_STR_17 STRINGIFY(V4L2_PIX_FMT_SRGGB10) XLAT(V4L2_PIX_FMT_M420), - #define XLAT_VAL_16 ((unsigned) (V4L2_PIX_FMT_M420)) - #define XLAT_STR_16 STRINGIFY(V4L2_PIX_FMT_M420) + #define XLAT_VAL_18 ((unsigned) (V4L2_PIX_FMT_M420)) + #define XLAT_STR_18 STRINGIFY(V4L2_PIX_FMT_M420) XLAT(V4L2_PIX_FMT_SN9C20X_I420), - #define XLAT_VAL_17 ((unsigned) (V4L2_PIX_FMT_SN9C20X_I420)) - #define XLAT_STR_17 STRINGIFY(V4L2_PIX_FMT_SN9C20X_I420) + #define XLAT_VAL_19 ((unsigned) (V4L2_PIX_FMT_SN9C20X_I420)) + #define XLAT_STR_19 STRINGIFY(V4L2_PIX_FMT_SN9C20X_I420) XLAT(V4L2_PIX_FMT_JL2005BCD), - #define XLAT_VAL_18 ((unsigned) (V4L2_PIX_FMT_JL2005BCD)) - #define XLAT_STR_18 STRINGIFY(V4L2_PIX_FMT_JL2005BCD) + #define XLAT_VAL_20 ((unsigned) (V4L2_PIX_FMT_JL2005BCD)) + #define XLAT_STR_20 STRINGIFY(V4L2_PIX_FMT_JL2005BCD) XLAT(V4L2_PIX_FMT_TM6000), - #define XLAT_VAL_19 ((unsigned) (V4L2_PIX_FMT_TM6000)) - #define XLAT_STR_19 STRINGIFY(V4L2_PIX_FMT_TM6000) + #define XLAT_VAL_21 ((unsigned) (V4L2_PIX_FMT_TM6000)) + #define XLAT_STR_21 STRINGIFY(V4L2_PIX_FMT_TM6000) XLAT(V4L2_PIX_FMT_STV0680), - #define XLAT_VAL_20 ((unsigned) (V4L2_PIX_FMT_STV0680)) - #define XLAT_STR_20 STRINGIFY(V4L2_PIX_FMT_STV0680) + #define XLAT_VAL_22 ((unsigned) (V4L2_PIX_FMT_STV0680)) + #define XLAT_STR_22 STRINGIFY(V4L2_PIX_FMT_STV0680) XLAT(V4L2_PIX_FMT_VP8), - #define XLAT_VAL_21 ((unsigned) (V4L2_PIX_FMT_VP8)) - #define XLAT_STR_21 STRINGIFY(V4L2_PIX_FMT_VP8) + #define XLAT_VAL_23 ((unsigned) (V4L2_PIX_FMT_VP8)) + #define XLAT_STR_23 STRINGIFY(V4L2_PIX_FMT_VP8) XLAT(V4L2_PIX_FMT_VP9), - #define XLAT_VAL_22 ((unsigned) (V4L2_PIX_FMT_VP9)) - #define XLAT_STR_22 STRINGIFY(V4L2_PIX_FMT_VP9) + #define XLAT_VAL_24 ((unsigned) (V4L2_PIX_FMT_VP9)) + #define XLAT_STR_24 STRINGIFY(V4L2_PIX_FMT_VP9) XLAT(V4L2_PIX_FMT_SE401), - #define XLAT_VAL_23 ((unsigned) (V4L2_PIX_FMT_SE401)) - #define XLAT_STR_23 STRINGIFY(V4L2_PIX_FMT_SE401) + #define XLAT_VAL_25 ((unsigned) (V4L2_PIX_FMT_SE401)) + #define XLAT_STR_25 STRINGIFY(V4L2_PIX_FMT_SE401) XLAT(V4L2_PIX_FMT_SPCA501), - #define XLAT_VAL_24 ((unsigned) (V4L2_PIX_FMT_SPCA501)) - #define XLAT_STR_24 STRINGIFY(V4L2_PIX_FMT_SPCA501) + #define XLAT_VAL_26 ((unsigned) (V4L2_PIX_FMT_SPCA501)) + #define XLAT_STR_26 STRINGIFY(V4L2_PIX_FMT_SPCA501) XLAT(V4L2_PIX_FMT_OV511), - #define XLAT_VAL_25 ((unsigned) (V4L2_PIX_FMT_OV511)) - #define XLAT_STR_25 STRINGIFY(V4L2_PIX_FMT_OV511) + #define XLAT_VAL_27 ((unsigned) (V4L2_PIX_FMT_OV511)) + #define XLAT_STR_27 STRINGIFY(V4L2_PIX_FMT_OV511) XLAT(V4L2_PIX_FMT_MM21), - #define XLAT_VAL_26 ((unsigned) (V4L2_PIX_FMT_MM21)) - #define XLAT_STR_26 STRINGIFY(V4L2_PIX_FMT_MM21) + #define XLAT_VAL_28 ((unsigned) (V4L2_PIX_FMT_MM21)) + #define XLAT_STR_28 STRINGIFY(V4L2_PIX_FMT_MM21) XLAT(V4L2_PIX_FMT_NV21M), - #define XLAT_VAL_27 ((unsigned) (V4L2_PIX_FMT_NV21M)) - #define XLAT_STR_27 STRINGIFY(V4L2_PIX_FMT_NV21M) + #define XLAT_VAL_29 ((unsigned) (V4L2_PIX_FMT_NV21M)) + #define XLAT_STR_29 STRINGIFY(V4L2_PIX_FMT_NV21M) XLAT(V4L2_PIX_FMT_YVU420M), - #define XLAT_VAL_28 ((unsigned) (V4L2_PIX_FMT_YVU420M)) - #define XLAT_STR_28 STRINGIFY(V4L2_PIX_FMT_YVU420M) + #define XLAT_VAL_30 ((unsigned) (V4L2_PIX_FMT_YVU420M)) + #define XLAT_STR_30 STRINGIFY(V4L2_PIX_FMT_YVU420M) XLAT(V4L2_PIX_FMT_MT21C), - #define XLAT_VAL_29 ((unsigned) (V4L2_PIX_FMT_MT21C)) - #define XLAT_STR_29 STRINGIFY(V4L2_PIX_FMT_MT21C) + #define XLAT_VAL_31 ((unsigned) (V4L2_PIX_FMT_MT21C)) + #define XLAT_STR_31 STRINGIFY(V4L2_PIX_FMT_MT21C) XLAT(V4L2_PIX_FMT_NV21), - #define XLAT_VAL_30 ((unsigned) (V4L2_PIX_FMT_NV21)) - #define XLAT_STR_30 STRINGIFY(V4L2_PIX_FMT_NV21) + #define XLAT_VAL_32 ((unsigned) (V4L2_PIX_FMT_NV21)) + #define XLAT_STR_32 STRINGIFY(V4L2_PIX_FMT_NV21) XLAT(V4L2_PIX_FMT_SPCA561), - #define XLAT_VAL_31 ((unsigned) (V4L2_PIX_FMT_SPCA561)) - #define XLAT_STR_31 STRINGIFY(V4L2_PIX_FMT_SPCA561) + #define XLAT_VAL_33 ((unsigned) (V4L2_PIX_FMT_SPCA561)) + #define XLAT_STR_33 STRINGIFY(V4L2_PIX_FMT_SPCA561) XLAT(V4L2_PIX_FMT_NV61M), - #define XLAT_VAL_32 ((unsigned) (V4L2_PIX_FMT_NV61M)) - #define XLAT_STR_32 STRINGIFY(V4L2_PIX_FMT_NV61M) + #define XLAT_VAL_34 ((unsigned) (V4L2_PIX_FMT_NV61M)) + #define XLAT_STR_34 STRINGIFY(V4L2_PIX_FMT_NV61M) XLAT(V4L2_PIX_FMT_YVU422M), - #define XLAT_VAL_33 ((unsigned) (V4L2_PIX_FMT_YVU422M)) - #define XLAT_STR_33 STRINGIFY(V4L2_PIX_FMT_YVU422M) + #define XLAT_VAL_35 ((unsigned) (V4L2_PIX_FMT_YVU422M)) + #define XLAT_STR_35 STRINGIFY(V4L2_PIX_FMT_YVU422M) XLAT(V4L2_PIX_FMT_NV61), - #define XLAT_VAL_34 ((unsigned) (V4L2_PIX_FMT_NV61)) - #define XLAT_STR_34 STRINGIFY(V4L2_PIX_FMT_NV61) + #define XLAT_VAL_36 ((unsigned) (V4L2_PIX_FMT_NV61)) + #define XLAT_STR_36 STRINGIFY(V4L2_PIX_FMT_NV61) XLAT(V4L2_PIX_FMT_SBGGR8), - #define XLAT_VAL_35 ((unsigned) (V4L2_PIX_FMT_SBGGR8)) - #define XLAT_STR_35 STRINGIFY(V4L2_PIX_FMT_SBGGR8) + #define XLAT_VAL_37 ((unsigned) (V4L2_PIX_FMT_SBGGR8)) + #define XLAT_STR_37 STRINGIFY(V4L2_PIX_FMT_SBGGR8) XLAT(V4L2_PIX_FMT_RGB332), - #define XLAT_VAL_36 ((unsigned) (V4L2_PIX_FMT_RGB332)) - #define XLAT_STR_36 STRINGIFY(V4L2_PIX_FMT_RGB332) + #define XLAT_VAL_38 ((unsigned) (V4L2_PIX_FMT_RGB332)) + #define XLAT_STR_38 STRINGIFY(V4L2_PIX_FMT_RGB332) XLAT(V4L2_PIX_FMT_H264_NO_SC), - #define XLAT_VAL_37 ((unsigned) (V4L2_PIX_FMT_H264_NO_SC)) - #define XLAT_STR_37 STRINGIFY(V4L2_PIX_FMT_H264_NO_SC) + #define XLAT_VAL_39 ((unsigned) (V4L2_PIX_FMT_H264_NO_SC)) + #define XLAT_STR_39 STRINGIFY(V4L2_PIX_FMT_H264_NO_SC) XLAT(V4L2_PIX_FMT_PWC1), - #define XLAT_VAL_38 ((unsigned) (V4L2_PIX_FMT_PWC1)) - #define XLAT_STR_38 STRINGIFY(V4L2_PIX_FMT_PWC1) + #define XLAT_VAL_40 ((unsigned) (V4L2_PIX_FMT_PWC1)) + #define XLAT_STR_40 STRINGIFY(V4L2_PIX_FMT_PWC1) XLAT(V4L2_PIX_FMT_MPEG1), - #define XLAT_VAL_39 ((unsigned) (V4L2_PIX_FMT_MPEG1)) - #define XLAT_STR_39 STRINGIFY(V4L2_PIX_FMT_MPEG1) + #define XLAT_VAL_41 ((unsigned) (V4L2_PIX_FMT_MPEG1)) + #define XLAT_STR_41 STRINGIFY(V4L2_PIX_FMT_MPEG1) XLAT(V4L2_PIX_FMT_SGRBG12), - #define XLAT_VAL_40 ((unsigned) (V4L2_PIX_FMT_SGRBG12)) - #define XLAT_STR_40 STRINGIFY(V4L2_PIX_FMT_SGRBG12) + #define XLAT_VAL_42 ((unsigned) (V4L2_PIX_FMT_SGRBG12)) + #define XLAT_STR_42 STRINGIFY(V4L2_PIX_FMT_SGRBG12) XLAT(V4L2_PIX_FMT_BGRA444), - #define XLAT_VAL_41 ((unsigned) (V4L2_PIX_FMT_BGRA444)) - #define XLAT_STR_41 STRINGIFY(V4L2_PIX_FMT_BGRA444) + #define XLAT_VAL_43 ((unsigned) (V4L2_PIX_FMT_BGRA444)) + #define XLAT_STR_43 STRINGIFY(V4L2_PIX_FMT_BGRA444) XLAT(V4L2_PIX_FMT_NV12M_8L128), - #define XLAT_VAL_42 ((unsigned) (V4L2_PIX_FMT_NV12M_8L128)) - #define XLAT_STR_42 STRINGIFY(V4L2_PIX_FMT_NV12M_8L128) + #define XLAT_VAL_44 ((unsigned) (V4L2_PIX_FMT_NV12M_8L128)) + #define XLAT_STR_44 STRINGIFY(V4L2_PIX_FMT_NV12M_8L128) XLAT(V4L2_PIX_FMT_RGBA444), - #define XLAT_VAL_43 ((unsigned) (V4L2_PIX_FMT_RGBA444)) - #define XLAT_STR_43 STRINGIFY(V4L2_PIX_FMT_RGBA444) + #define XLAT_VAL_45 ((unsigned) (V4L2_PIX_FMT_RGBA444)) + #define XLAT_STR_45 STRINGIFY(V4L2_PIX_FMT_RGBA444) XLAT(V4L2_PIX_FMT_ABGR444), - #define XLAT_VAL_44 ((unsigned) (V4L2_PIX_FMT_ABGR444)) - #define XLAT_STR_44 STRINGIFY(V4L2_PIX_FMT_ABGR444) + #define XLAT_VAL_46 ((unsigned) (V4L2_PIX_FMT_ABGR444)) + #define XLAT_STR_46 STRINGIFY(V4L2_PIX_FMT_ABGR444) XLAT(V4L2_PIX_FMT_SGBRG12), - #define XLAT_VAL_45 ((unsigned) (V4L2_PIX_FMT_SGBRG12)) - #define XLAT_STR_45 STRINGIFY(V4L2_PIX_FMT_SGBRG12) + #define XLAT_VAL_47 ((unsigned) (V4L2_PIX_FMT_SGBRG12)) + #define XLAT_STR_47 STRINGIFY(V4L2_PIX_FMT_SGBRG12) XLAT(V4L2_PIX_FMT_XBGR444), - #define XLAT_VAL_46 ((unsigned) (V4L2_PIX_FMT_XBGR444)) - #define XLAT_STR_46 STRINGIFY(V4L2_PIX_FMT_XBGR444) + #define XLAT_VAL_48 ((unsigned) (V4L2_PIX_FMT_XBGR444)) + #define XLAT_STR_48 STRINGIFY(V4L2_PIX_FMT_XBGR444) XLAT(V4L2_PIX_FMT_SBGGR12), - #define XLAT_VAL_47 ((unsigned) (V4L2_PIX_FMT_SBGGR12)) - #define XLAT_STR_47 STRINGIFY(V4L2_PIX_FMT_SBGGR12) + #define XLAT_VAL_49 ((unsigned) (V4L2_PIX_FMT_SBGGR12)) + #define XLAT_STR_49 STRINGIFY(V4L2_PIX_FMT_SBGGR12) XLAT(V4L2_PIX_FMT_SRGGB12), - #define XLAT_VAL_48 ((unsigned) (V4L2_PIX_FMT_SRGGB12)) - #define XLAT_STR_48 STRINGIFY(V4L2_PIX_FMT_SRGGB12) + #define XLAT_VAL_50 ((unsigned) (V4L2_PIX_FMT_SRGGB12)) + #define XLAT_STR_50 STRINGIFY(V4L2_PIX_FMT_SRGGB12) XLAT(V4L2_PIX_FMT_NV12_16L16), - #define XLAT_VAL_49 ((unsigned) (V4L2_PIX_FMT_NV12_16L16)) - #define XLAT_STR_49 STRINGIFY(V4L2_PIX_FMT_NV12_16L16) + #define XLAT_VAL_51 ((unsigned) (V4L2_PIX_FMT_NV12_16L16)) + #define XLAT_STR_51 STRINGIFY(V4L2_PIX_FMT_NV12_16L16) XLAT(V4L2_PIX_FMT_NV12M), - #define XLAT_VAL_50 ((unsigned) (V4L2_PIX_FMT_NV12M)) - #define XLAT_STR_50 STRINGIFY(V4L2_PIX_FMT_NV12M) + #define XLAT_VAL_52 ((unsigned) (V4L2_PIX_FMT_NV12M)) + #define XLAT_STR_52 STRINGIFY(V4L2_PIX_FMT_NV12M) XLAT(V4L2_PIX_FMT_NV12MT), - #define XLAT_VAL_51 ((unsigned) (V4L2_PIX_FMT_NV12MT)) - #define XLAT_STR_51 STRINGIFY(V4L2_PIX_FMT_NV12MT) + #define XLAT_VAL_53 ((unsigned) (V4L2_PIX_FMT_NV12MT)) + #define XLAT_STR_53 STRINGIFY(V4L2_PIX_FMT_NV12MT) XLAT(V4L2_PIX_FMT_NV12MT_16X16), - #define XLAT_VAL_52 ((unsigned) (V4L2_PIX_FMT_NV12MT_16X16)) - #define XLAT_STR_52 STRINGIFY(V4L2_PIX_FMT_NV12MT_16X16) + #define XLAT_VAL_54 ((unsigned) (V4L2_PIX_FMT_NV12MT_16X16)) + #define XLAT_STR_54 STRINGIFY(V4L2_PIX_FMT_NV12MT_16X16) XLAT(V4L2_PIX_FMT_YUV420M), - #define XLAT_VAL_53 ((unsigned) (V4L2_PIX_FMT_YUV420M)) - #define XLAT_STR_53 STRINGIFY(V4L2_PIX_FMT_YUV420M) + #define XLAT_VAL_55 ((unsigned) (V4L2_PIX_FMT_YUV420M)) + #define XLAT_STR_55 STRINGIFY(V4L2_PIX_FMT_YUV420M) XLAT(V4L2_PIX_FMT_ARGB444), - #define XLAT_VAL_54 ((unsigned) (V4L2_PIX_FMT_ARGB444)) - #define XLAT_STR_54 STRINGIFY(V4L2_PIX_FMT_ARGB444) + #define XLAT_VAL_56 ((unsigned) (V4L2_PIX_FMT_ARGB444)) + #define XLAT_STR_56 STRINGIFY(V4L2_PIX_FMT_ARGB444) XLAT(V4L2_PIX_FMT_XRGB444), - #define XLAT_VAL_55 ((unsigned) (V4L2_PIX_FMT_XRGB444)) - #define XLAT_STR_55 STRINGIFY(V4L2_PIX_FMT_XRGB444) + #define XLAT_VAL_57 ((unsigned) (V4L2_PIX_FMT_XRGB444)) + #define XLAT_STR_57 STRINGIFY(V4L2_PIX_FMT_XRGB444) + XLAT(V4L2_PIX_FMT_NV12_8L128), + #define XLAT_VAL_58 ((unsigned) (V4L2_PIX_FMT_NV12_8L128)) + #define XLAT_STR_58 STRINGIFY(V4L2_PIX_FMT_NV12_8L128) XLAT(V4L2_PIX_FMT_NV12_32L32), - #define XLAT_VAL_56 ((unsigned) (V4L2_PIX_FMT_NV12_32L32)) - #define XLAT_STR_56 STRINGIFY(V4L2_PIX_FMT_NV12_32L32) + #define XLAT_VAL_59 ((unsigned) (V4L2_PIX_FMT_NV12_32L32)) + #define XLAT_STR_59 STRINGIFY(V4L2_PIX_FMT_NV12_32L32) XLAT(V4L2_PIX_FMT_NV12_4L4), - #define XLAT_VAL_57 ((unsigned) (V4L2_PIX_FMT_NV12_4L4)) - #define XLAT_STR_57 STRINGIFY(V4L2_PIX_FMT_NV12_4L4) + #define XLAT_VAL_60 ((unsigned) (V4L2_PIX_FMT_NV12_4L4)) + #define XLAT_STR_60 STRINGIFY(V4L2_PIX_FMT_NV12_4L4) XLAT(V4L2_PIX_FMT_YUV420), - #define XLAT_VAL_58 ((unsigned) (V4L2_PIX_FMT_YUV420)) - #define XLAT_STR_58 STRINGIFY(V4L2_PIX_FMT_YUV420) + #define XLAT_VAL_61 ((unsigned) (V4L2_PIX_FMT_YUV420)) + #define XLAT_STR_61 STRINGIFY(V4L2_PIX_FMT_YUV420) XLAT(V4L2_PIX_FMT_NV12), - #define XLAT_VAL_59 ((unsigned) (V4L2_PIX_FMT_NV12)) - #define XLAT_STR_59 STRINGIFY(V4L2_PIX_FMT_NV12) + #define XLAT_VAL_62 ((unsigned) (V4L2_PIX_FMT_NV12)) + #define XLAT_STR_62 STRINGIFY(V4L2_PIX_FMT_NV12) XLAT(V4L2_PIX_FMT_YVU420), - #define XLAT_VAL_60 ((unsigned) (V4L2_PIX_FMT_YVU420)) - #define XLAT_STR_60 STRINGIFY(V4L2_PIX_FMT_YVU420) + #define XLAT_VAL_63 ((unsigned) (V4L2_PIX_FMT_YVU420)) + #define XLAT_STR_63 STRINGIFY(V4L2_PIX_FMT_YVU420) XLAT(V4L2_PIX_FMT_BGRX444), - #define XLAT_VAL_61 ((unsigned) (V4L2_PIX_FMT_BGRX444)) - #define XLAT_STR_61 STRINGIFY(V4L2_PIX_FMT_BGRX444) + #define XLAT_VAL_64 ((unsigned) (V4L2_PIX_FMT_BGRX444)) + #define XLAT_STR_64 STRINGIFY(V4L2_PIX_FMT_BGRX444) XLAT(V4L2_PIX_FMT_RGBX444), - #define XLAT_VAL_62 ((unsigned) (V4L2_PIX_FMT_RGBX444)) - #define XLAT_STR_62 STRINGIFY(V4L2_PIX_FMT_RGBX444) + #define XLAT_VAL_65 ((unsigned) (V4L2_PIX_FMT_RGBX444)) + #define XLAT_STR_65 STRINGIFY(V4L2_PIX_FMT_RGBX444) XLAT(V4L2_PIX_FMT_YVU444M), - #define XLAT_VAL_63 ((unsigned) (V4L2_PIX_FMT_YVU444M)) - #define XLAT_STR_63 STRINGIFY(V4L2_PIX_FMT_YVU444M) + #define XLAT_VAL_66 ((unsigned) (V4L2_PIX_FMT_YVU444M)) + #define XLAT_STR_66 STRINGIFY(V4L2_PIX_FMT_YVU444M) XLAT(V4L2_PIX_FMT_NV42), - #define XLAT_VAL_64 ((unsigned) (V4L2_PIX_FMT_NV42)) - #define XLAT_STR_64 STRINGIFY(V4L2_PIX_FMT_NV42) + #define XLAT_VAL_67 ((unsigned) (V4L2_PIX_FMT_NV42)) + #define XLAT_STR_67 STRINGIFY(V4L2_PIX_FMT_NV42) XLAT(V4L2_PIX_FMT_PWC2), - #define XLAT_VAL_65 ((unsigned) (V4L2_PIX_FMT_PWC2)) - #define XLAT_STR_65 STRINGIFY(V4L2_PIX_FMT_PWC2) + #define XLAT_VAL_68 ((unsigned) (V4L2_PIX_FMT_PWC2)) + #define XLAT_STR_68 STRINGIFY(V4L2_PIX_FMT_PWC2) XLAT(V4L2_PIX_FMT_MPEG2), - #define XLAT_VAL_66 ((unsigned) (V4L2_PIX_FMT_MPEG2)) - #define XLAT_STR_66 STRINGIFY(V4L2_PIX_FMT_MPEG2) + #define XLAT_VAL_69 ((unsigned) (V4L2_PIX_FMT_MPEG2)) + #define XLAT_STR_69 STRINGIFY(V4L2_PIX_FMT_MPEG2) XLAT(V4L2_PIX_FMT_SBGGR16), - #define XLAT_VAL_67 ((unsigned) (V4L2_PIX_FMT_SBGGR16)) - #define XLAT_STR_67 STRINGIFY(V4L2_PIX_FMT_SBGGR16) + #define XLAT_VAL_70 ((unsigned) (V4L2_PIX_FMT_SBGGR16)) + #define XLAT_STR_70 STRINGIFY(V4L2_PIX_FMT_SBGGR16) XLAT(V4L2_PIX_FMT_H263), - #define XLAT_VAL_68 ((unsigned) (V4L2_PIX_FMT_H263)) - #define XLAT_STR_68 STRINGIFY(V4L2_PIX_FMT_H263) + #define XLAT_VAL_71 ((unsigned) (V4L2_PIX_FMT_H263)) + #define XLAT_STR_71 STRINGIFY(V4L2_PIX_FMT_H263) XLAT(V4L2_PIX_FMT_RGB24), - #define XLAT_VAL_69 ((unsigned) (V4L2_PIX_FMT_RGB24)) - #define XLAT_STR_69 STRINGIFY(V4L2_PIX_FMT_RGB24) + #define XLAT_VAL_72 ((unsigned) (V4L2_PIX_FMT_RGB24)) + #define XLAT_STR_72 STRINGIFY(V4L2_PIX_FMT_RGB24) XLAT(V4L2_PIX_FMT_BGR24), - #define XLAT_VAL_70 ((unsigned) (V4L2_PIX_FMT_BGR24)) - #define XLAT_STR_70 STRINGIFY(V4L2_PIX_FMT_BGR24) + #define XLAT_VAL_73 ((unsigned) (V4L2_PIX_FMT_BGR24)) + #define XLAT_STR_73 STRINGIFY(V4L2_PIX_FMT_BGR24) XLAT(V4L2_PIX_FMT_HSV24), - #define XLAT_VAL_71 ((unsigned) (V4L2_PIX_FMT_HSV24)) - #define XLAT_STR_71 STRINGIFY(V4L2_PIX_FMT_HSV24) + #define XLAT_VAL_74 ((unsigned) (V4L2_PIX_FMT_HSV24)) + #define XLAT_STR_74 STRINGIFY(V4L2_PIX_FMT_HSV24) XLAT(V4L2_PIX_FMT_YUV24), - #define XLAT_VAL_72 ((unsigned) (V4L2_PIX_FMT_YUV24)) - #define XLAT_STR_72 STRINGIFY(V4L2_PIX_FMT_YUV24) + #define XLAT_VAL_75 ((unsigned) (V4L2_PIX_FMT_YUV24)) + #define XLAT_STR_75 STRINGIFY(V4L2_PIX_FMT_YUV24) XLAT(V4L2_PIX_FMT_SGBRG14), - #define XLAT_VAL_73 ((unsigned) (V4L2_PIX_FMT_SGBRG14)) - #define XLAT_STR_73 STRINGIFY(V4L2_PIX_FMT_SGBRG14) + #define XLAT_VAL_76 ((unsigned) (V4L2_PIX_FMT_SGBRG14)) + #define XLAT_STR_76 STRINGIFY(V4L2_PIX_FMT_SGBRG14) XLAT(V4L2_PIX_FMT_SBGGR14), - #define XLAT_VAL_74 ((unsigned) (V4L2_PIX_FMT_SBGGR14)) - #define XLAT_STR_74 STRINGIFY(V4L2_PIX_FMT_SBGGR14) + #define XLAT_VAL_77 ((unsigned) (V4L2_PIX_FMT_SBGGR14)) + #define XLAT_STR_77 STRINGIFY(V4L2_PIX_FMT_SBGGR14) XLAT(V4L2_PIX_FMT_SRGGB14), - #define XLAT_VAL_75 ((unsigned) (V4L2_PIX_FMT_SRGGB14)) - #define XLAT_STR_75 STRINGIFY(V4L2_PIX_FMT_SRGGB14) + #define XLAT_VAL_78 ((unsigned) (V4L2_PIX_FMT_SRGGB14)) + #define XLAT_STR_78 STRINGIFY(V4L2_PIX_FMT_SRGGB14) XLAT(V4L2_PIX_FMT_SGRBG14), - #define XLAT_VAL_76 ((unsigned) (V4L2_PIX_FMT_SGRBG14)) - #define XLAT_STR_76 STRINGIFY(V4L2_PIX_FMT_SGRBG14) + #define XLAT_VAL_79 ((unsigned) (V4L2_PIX_FMT_SGRBG14)) + #define XLAT_STR_79 STRINGIFY(V4L2_PIX_FMT_SGRBG14) XLAT(V4L2_PIX_FMT_ARGB32), - #define XLAT_VAL_77 ((unsigned) (V4L2_PIX_FMT_ARGB32)) - #define XLAT_STR_77 STRINGIFY(V4L2_PIX_FMT_ARGB32) + #define XLAT_VAL_80 ((unsigned) (V4L2_PIX_FMT_ARGB32)) + #define XLAT_STR_80 STRINGIFY(V4L2_PIX_FMT_ARGB32) XLAT(V4L2_PIX_FMT_BGRA32), - #define XLAT_VAL_78 ((unsigned) (V4L2_PIX_FMT_BGRA32)) - #define XLAT_STR_78 STRINGIFY(V4L2_PIX_FMT_BGRA32) + #define XLAT_VAL_81 ((unsigned) (V4L2_PIX_FMT_BGRA32)) + #define XLAT_STR_81 STRINGIFY(V4L2_PIX_FMT_BGRA32) XLAT(V4L2_PIX_FMT_RGBA32), - #define XLAT_VAL_79 ((unsigned) (V4L2_PIX_FMT_RGBA32)) - #define XLAT_STR_79 STRINGIFY(V4L2_PIX_FMT_RGBA32) + #define XLAT_VAL_82 ((unsigned) (V4L2_PIX_FMT_RGBA32)) + #define XLAT_STR_82 STRINGIFY(V4L2_PIX_FMT_RGBA32) XLAT(V4L2_PIX_FMT_RGBX32), - #define XLAT_VAL_80 ((unsigned) (V4L2_PIX_FMT_RGBX32)) - #define XLAT_STR_80 STRINGIFY(V4L2_PIX_FMT_RGBX32) + #define XLAT_VAL_83 ((unsigned) (V4L2_PIX_FMT_RGBX32)) + #define XLAT_STR_83 STRINGIFY(V4L2_PIX_FMT_RGBX32) XLAT(V4L2_PIX_FMT_HI240), - #define XLAT_VAL_81 ((unsigned) (V4L2_PIX_FMT_HI240)) - #define XLAT_STR_81 STRINGIFY(V4L2_PIX_FMT_HI240) + #define XLAT_VAL_84 ((unsigned) (V4L2_PIX_FMT_HI240)) + #define XLAT_STR_84 STRINGIFY(V4L2_PIX_FMT_HI240) XLAT(V4L2_PIX_FMT_YUV444M), - #define XLAT_VAL_82 ((unsigned) (V4L2_PIX_FMT_YUV444M)) - #define XLAT_STR_82 STRINGIFY(V4L2_PIX_FMT_YUV444M) + #define XLAT_VAL_85 ((unsigned) (V4L2_PIX_FMT_YUV444M)) + #define XLAT_STR_85 STRINGIFY(V4L2_PIX_FMT_YUV444M) XLAT(V4L2_PIX_FMT_ABGR32), - #define XLAT_VAL_83 ((unsigned) (V4L2_PIX_FMT_ABGR32)) - #define XLAT_STR_83 STRINGIFY(V4L2_PIX_FMT_ABGR32) + #define XLAT_VAL_86 ((unsigned) (V4L2_PIX_FMT_ABGR32)) + #define XLAT_STR_86 STRINGIFY(V4L2_PIX_FMT_ABGR32) XLAT(V4L2_PIX_FMT_XBGR32), - #define XLAT_VAL_84 ((unsigned) (V4L2_PIX_FMT_XBGR32)) - #define XLAT_STR_84 STRINGIFY(V4L2_PIX_FMT_XBGR32) + #define XLAT_VAL_87 ((unsigned) (V4L2_PIX_FMT_XBGR32)) + #define XLAT_STR_87 STRINGIFY(V4L2_PIX_FMT_XBGR32) XLAT(V4L2_PIX_FMT_NV24), - #define XLAT_VAL_85 ((unsigned) (V4L2_PIX_FMT_NV24)) - #define XLAT_STR_85 STRINGIFY(V4L2_PIX_FMT_NV24) + #define XLAT_VAL_88 ((unsigned) (V4L2_PIX_FMT_NV24)) + #define XLAT_STR_88 STRINGIFY(V4L2_PIX_FMT_NV24) XLAT(V4L2_PIX_FMT_XRGB32), - #define XLAT_VAL_86 ((unsigned) (V4L2_PIX_FMT_XRGB32)) - #define XLAT_STR_86 STRINGIFY(V4L2_PIX_FMT_XRGB32) + #define XLAT_VAL_89 ((unsigned) (V4L2_PIX_FMT_XRGB32)) + #define XLAT_STR_89 STRINGIFY(V4L2_PIX_FMT_XRGB32) XLAT(V4L2_PIX_FMT_BGRX32), - #define XLAT_VAL_87 ((unsigned) (V4L2_PIX_FMT_BGRX32)) - #define XLAT_STR_87 STRINGIFY(V4L2_PIX_FMT_BGRX32) + #define XLAT_VAL_90 ((unsigned) (V4L2_PIX_FMT_BGRX32)) + #define XLAT_STR_90 STRINGIFY(V4L2_PIX_FMT_BGRX32) XLAT(V4L2_PIX_FMT_RGB444), - #define XLAT_VAL_88 ((unsigned) (V4L2_PIX_FMT_RGB444)) - #define XLAT_STR_88 STRINGIFY(V4L2_PIX_FMT_RGB444) + #define XLAT_VAL_91 ((unsigned) (V4L2_PIX_FMT_RGB444)) + #define XLAT_STR_91 STRINGIFY(V4L2_PIX_FMT_RGB444) XLAT(V4L2_PIX_FMT_YUV444), - #define XLAT_VAL_89 ((unsigned) (V4L2_PIX_FMT_YUV444)) - #define XLAT_STR_89 STRINGIFY(V4L2_PIX_FMT_YUV444) + #define XLAT_VAL_92 ((unsigned) (V4L2_PIX_FMT_YUV444)) + #define XLAT_STR_92 STRINGIFY(V4L2_PIX_FMT_YUV444) XLAT(V4L2_PIX_FMT_H264), - #define XLAT_VAL_90 ((unsigned) (V4L2_PIX_FMT_H264)) - #define XLAT_STR_90 STRINGIFY(V4L2_PIX_FMT_H264) + #define XLAT_VAL_93 ((unsigned) (V4L2_PIX_FMT_H264)) + #define XLAT_STR_93 STRINGIFY(V4L2_PIX_FMT_H264) XLAT(V4L2_PIX_FMT_H264_MVC), - #define XLAT_VAL_91 ((unsigned) (V4L2_PIX_FMT_H264_MVC)) - #define XLAT_STR_91 STRINGIFY(V4L2_PIX_FMT_H264_MVC) + #define XLAT_VAL_94 ((unsigned) (V4L2_PIX_FMT_H264_MVC)) + #define XLAT_STR_94 STRINGIFY(V4L2_PIX_FMT_H264_MVC) XLAT(V4L2_PIX_FMT_H264_SLICE), - #define XLAT_VAL_92 ((unsigned) (V4L2_PIX_FMT_H264_SLICE)) - #define XLAT_STR_92 STRINGIFY(V4L2_PIX_FMT_H264_SLICE) + #define XLAT_VAL_95 ((unsigned) (V4L2_PIX_FMT_H264_SLICE)) + #define XLAT_STR_95 STRINGIFY(V4L2_PIX_FMT_H264_SLICE) XLAT(V4L2_PIX_FMT_RGB32), - #define XLAT_VAL_93 ((unsigned) (V4L2_PIX_FMT_RGB32)) - #define XLAT_STR_93 STRINGIFY(V4L2_PIX_FMT_RGB32) + #define XLAT_VAL_96 ((unsigned) (V4L2_PIX_FMT_RGB32)) + #define XLAT_STR_96 STRINGIFY(V4L2_PIX_FMT_RGB32) XLAT(V4L2_PIX_FMT_CNF4), - #define XLAT_VAL_94 ((unsigned) (V4L2_PIX_FMT_CNF4)) - #define XLAT_STR_94 STRINGIFY(V4L2_PIX_FMT_CNF4) + #define XLAT_VAL_97 ((unsigned) (V4L2_PIX_FMT_CNF4)) + #define XLAT_STR_97 STRINGIFY(V4L2_PIX_FMT_CNF4) XLAT(V4L2_PIX_FMT_MPEG4), - #define XLAT_VAL_95 ((unsigned) (V4L2_PIX_FMT_MPEG4)) - #define XLAT_STR_95 STRINGIFY(V4L2_PIX_FMT_MPEG4) + #define XLAT_VAL_98 ((unsigned) (V4L2_PIX_FMT_MPEG4)) + #define XLAT_STR_98 STRINGIFY(V4L2_PIX_FMT_MPEG4) XLAT(V4L2_PIX_FMT_BGR32), - #define XLAT_VAL_96 ((unsigned) (V4L2_PIX_FMT_BGR32)) - #define XLAT_STR_96 STRINGIFY(V4L2_PIX_FMT_BGR32) + #define XLAT_VAL_99 ((unsigned) (V4L2_PIX_FMT_BGR32)) + #define XLAT_STR_99 STRINGIFY(V4L2_PIX_FMT_BGR32) XLAT(V4L2_PIX_FMT_HSV32), - #define XLAT_VAL_97 ((unsigned) (V4L2_PIX_FMT_HSV32)) - #define XLAT_STR_97 STRINGIFY(V4L2_PIX_FMT_HSV32) + #define XLAT_VAL_100 ((unsigned) (V4L2_PIX_FMT_HSV32)) + #define XLAT_STR_100 STRINGIFY(V4L2_PIX_FMT_HSV32) XLAT(V4L2_PIX_FMT_YUV32), - #define XLAT_VAL_98 ((unsigned) (V4L2_PIX_FMT_YUV32)) - #define XLAT_STR_98 STRINGIFY(V4L2_PIX_FMT_YUV32) + #define XLAT_VAL_101 ((unsigned) (V4L2_PIX_FMT_YUV32)) + #define XLAT_STR_101 STRINGIFY(V4L2_PIX_FMT_YUV32) XLAT(V4L2_PIX_FMT_SPCA505), - #define XLAT_VAL_99 ((unsigned) (V4L2_PIX_FMT_SPCA505)) - #define XLAT_STR_99 STRINGIFY(V4L2_PIX_FMT_SPCA505) + #define XLAT_VAL_102 ((unsigned) (V4L2_PIX_FMT_SPCA505)) + #define XLAT_STR_102 STRINGIFY(V4L2_PIX_FMT_SPCA505) XLAT(V4L2_PIX_FMT_BGRA555), - #define XLAT_VAL_100 ((unsigned) (V4L2_PIX_FMT_BGRA555)) - #define XLAT_STR_100 STRINGIFY(V4L2_PIX_FMT_BGRA555) + #define XLAT_VAL_103 ((unsigned) (V4L2_PIX_FMT_BGRA555)) + #define XLAT_STR_103 STRINGIFY(V4L2_PIX_FMT_BGRA555) XLAT(V4L2_PIX_FMT_RGBA555), - #define XLAT_VAL_101 ((unsigned) (V4L2_PIX_FMT_RGBA555)) - #define XLAT_STR_101 STRINGIFY(V4L2_PIX_FMT_RGBA555) + #define XLAT_VAL_104 ((unsigned) (V4L2_PIX_FMT_RGBA555)) + #define XLAT_STR_104 STRINGIFY(V4L2_PIX_FMT_RGBA555) XLAT(V4L2_PIX_FMT_ABGR555), - #define XLAT_VAL_102 ((unsigned) (V4L2_PIX_FMT_ABGR555)) - #define XLAT_STR_102 STRINGIFY(V4L2_PIX_FMT_ABGR555) + #define XLAT_VAL_105 ((unsigned) (V4L2_PIX_FMT_ABGR555)) + #define XLAT_STR_105 STRINGIFY(V4L2_PIX_FMT_ABGR555) XLAT(V4L2_PIX_FMT_XBGR555), - #define XLAT_VAL_103 ((unsigned) (V4L2_PIX_FMT_XBGR555)) - #define XLAT_STR_103 STRINGIFY(V4L2_PIX_FMT_XBGR555) + #define XLAT_VAL_106 ((unsigned) (V4L2_PIX_FMT_XBGR555)) + #define XLAT_STR_106 STRINGIFY(V4L2_PIX_FMT_XBGR555) XLAT(V4L2_PIX_FMT_ARGB555), - #define XLAT_VAL_104 ((unsigned) (V4L2_PIX_FMT_ARGB555)) - #define XLAT_STR_104 STRINGIFY(V4L2_PIX_FMT_ARGB555) + #define XLAT_VAL_107 ((unsigned) (V4L2_PIX_FMT_ARGB555)) + #define XLAT_STR_107 STRINGIFY(V4L2_PIX_FMT_ARGB555) XLAT(V4L2_PIX_FMT_XRGB555), - #define XLAT_VAL_105 ((unsigned) (V4L2_PIX_FMT_XRGB555)) - #define XLAT_STR_105 STRINGIFY(V4L2_PIX_FMT_XRGB555) + #define XLAT_VAL_108 ((unsigned) (V4L2_PIX_FMT_XRGB555)) + #define XLAT_STR_108 STRINGIFY(V4L2_PIX_FMT_XRGB555) XLAT(V4L2_PIX_FMT_BGRX555), - #define XLAT_VAL_106 ((unsigned) (V4L2_PIX_FMT_BGRX555)) - #define XLAT_STR_106 STRINGIFY(V4L2_PIX_FMT_BGRX555) + #define XLAT_VAL_109 ((unsigned) (V4L2_PIX_FMT_BGRX555)) + #define XLAT_STR_109 STRINGIFY(V4L2_PIX_FMT_BGRX555) XLAT(V4L2_PIX_FMT_RGBX555), - #define XLAT_VAL_107 ((unsigned) (V4L2_PIX_FMT_RGBX555)) - #define XLAT_STR_107 STRINGIFY(V4L2_PIX_FMT_RGBX555) + #define XLAT_VAL_110 ((unsigned) (V4L2_PIX_FMT_RGBX555)) + #define XLAT_STR_110 STRINGIFY(V4L2_PIX_FMT_RGBX555) XLAT(V4L2_PIX_FMT_ET61X251), - #define XLAT_VAL_108 ((unsigned) (V4L2_PIX_FMT_ET61X251)) - #define XLAT_STR_108 STRINGIFY(V4L2_PIX_FMT_ET61X251) + #define XLAT_VAL_111 ((unsigned) (V4L2_PIX_FMT_ET61X251)) + #define XLAT_STR_111 STRINGIFY(V4L2_PIX_FMT_ET61X251) + XLAT(V4L2_PIX_FMT_HEVC_SLICE), + #define XLAT_VAL_112 ((unsigned) (V4L2_PIX_FMT_HEVC_SLICE)) + #define XLAT_STR_112 STRINGIFY(V4L2_PIX_FMT_HEVC_SLICE) XLAT(V4L2_PIX_FMT_SGBRG16), - #define XLAT_VAL_109 ((unsigned) (V4L2_PIX_FMT_SGBRG16)) - #define XLAT_STR_109 STRINGIFY(V4L2_PIX_FMT_SGBRG16) + #define XLAT_VAL_113 ((unsigned) (V4L2_PIX_FMT_SGBRG16)) + #define XLAT_STR_113 STRINGIFY(V4L2_PIX_FMT_SGBRG16) XLAT(V4L2_PIX_FMT_SRGGB16), - #define XLAT_VAL_110 ((unsigned) (V4L2_PIX_FMT_SRGGB16)) - #define XLAT_STR_110 STRINGIFY(V4L2_PIX_FMT_SRGGB16) + #define XLAT_VAL_114 ((unsigned) (V4L2_PIX_FMT_SRGGB16)) + #define XLAT_STR_114 STRINGIFY(V4L2_PIX_FMT_SRGGB16) XLAT(V4L2_PIX_FMT_NV16M), - #define XLAT_VAL_111 ((unsigned) (V4L2_PIX_FMT_NV16M)) - #define XLAT_STR_111 STRINGIFY(V4L2_PIX_FMT_NV16M) + #define XLAT_VAL_115 ((unsigned) (V4L2_PIX_FMT_NV16M)) + #define XLAT_STR_115 STRINGIFY(V4L2_PIX_FMT_NV16M) XLAT(V4L2_PIX_FMT_YUV422M), - #define XLAT_VAL_112 ((unsigned) (V4L2_PIX_FMT_YUV422M)) - #define XLAT_STR_112 STRINGIFY(V4L2_PIX_FMT_YUV422M) + #define XLAT_VAL_116 ((unsigned) (V4L2_PIX_FMT_YUV422M)) + #define XLAT_STR_116 STRINGIFY(V4L2_PIX_FMT_YUV422M) XLAT(V4L2_PIX_FMT_SGRBG16), - #define XLAT_VAL_113 ((unsigned) (V4L2_PIX_FMT_SGRBG16)) - #define XLAT_STR_113 STRINGIFY(V4L2_PIX_FMT_SGRBG16) + #define XLAT_VAL_117 ((unsigned) (V4L2_PIX_FMT_SGRBG16)) + #define XLAT_STR_117 STRINGIFY(V4L2_PIX_FMT_SGRBG16) XLAT(V4L2_PIX_FMT_NV16), - #define XLAT_VAL_114 ((unsigned) (V4L2_PIX_FMT_NV16)) - #define XLAT_STR_114 STRINGIFY(V4L2_PIX_FMT_NV16) + #define XLAT_VAL_118 ((unsigned) (V4L2_PIX_FMT_NV16)) + #define XLAT_STR_118 STRINGIFY(V4L2_PIX_FMT_NV16) XLAT(V4L2_PIX_FMT_PAC207), - #define XLAT_VAL_115 ((unsigned) (V4L2_PIX_FMT_PAC207)) - #define XLAT_STR_115 STRINGIFY(V4L2_PIX_FMT_PAC207) + #define XLAT_VAL_119 ((unsigned) (V4L2_PIX_FMT_PAC207)) + #define XLAT_STR_119 STRINGIFY(V4L2_PIX_FMT_PAC207) XLAT(V4L2_PIX_FMT_SPCA508), - #define XLAT_VAL_116 ((unsigned) (V4L2_PIX_FMT_SPCA508)) - #define XLAT_STR_116 STRINGIFY(V4L2_PIX_FMT_SPCA508) + #define XLAT_VAL_120 ((unsigned) (V4L2_PIX_FMT_SPCA508)) + #define XLAT_STR_120 STRINGIFY(V4L2_PIX_FMT_SPCA508) XLAT(V4L2_PIX_FMT_OV518), - #define XLAT_VAL_117 ((unsigned) (V4L2_PIX_FMT_OV518)) - #define XLAT_STR_117 STRINGIFY(V4L2_PIX_FMT_OV518) + #define XLAT_VAL_121 ((unsigned) (V4L2_PIX_FMT_OV518)) + #define XLAT_STR_121 STRINGIFY(V4L2_PIX_FMT_OV518) XLAT(V4L2_PIX_FMT_SBGGR10ALAW8), - #define XLAT_VAL_118 ((unsigned) (V4L2_PIX_FMT_SBGGR10ALAW8)) - #define XLAT_STR_118 STRINGIFY(V4L2_PIX_FMT_SBGGR10ALAW8) + #define XLAT_VAL_122 ((unsigned) (V4L2_PIX_FMT_SBGGR10ALAW8)) + #define XLAT_STR_122 STRINGIFY(V4L2_PIX_FMT_SBGGR10ALAW8) XLAT(V4L2_PIX_FMT_SBGGR10DPCM8), - #define XLAT_VAL_119 ((unsigned) (V4L2_PIX_FMT_SBGGR10DPCM8)) - #define XLAT_STR_119 STRINGIFY(V4L2_PIX_FMT_SBGGR10DPCM8) + #define XLAT_VAL_123 ((unsigned) (V4L2_PIX_FMT_SBGGR10DPCM8)) + #define XLAT_STR_123 STRINGIFY(V4L2_PIX_FMT_SBGGR10DPCM8) XLAT(V4L2_PIX_FMT_SGBRG10ALAW8), - #define XLAT_VAL_120 ((unsigned) (V4L2_PIX_FMT_SGBRG10ALAW8)) - #define XLAT_STR_120 STRINGIFY(V4L2_PIX_FMT_SGBRG10ALAW8) + #define XLAT_VAL_124 ((unsigned) (V4L2_PIX_FMT_SGBRG10ALAW8)) + #define XLAT_STR_124 STRINGIFY(V4L2_PIX_FMT_SGBRG10ALAW8) XLAT(V4L2_PIX_FMT_SGBRG10DPCM8), - #define XLAT_VAL_121 ((unsigned) (V4L2_PIX_FMT_SGBRG10DPCM8)) - #define XLAT_STR_121 STRINGIFY(V4L2_PIX_FMT_SGBRG10DPCM8) + #define XLAT_VAL_125 ((unsigned) (V4L2_PIX_FMT_SGBRG10DPCM8)) + #define XLAT_STR_125 STRINGIFY(V4L2_PIX_FMT_SGBRG10DPCM8) XLAT(V4L2_PIX_FMT_SRGGB10ALAW8), - #define XLAT_VAL_122 ((unsigned) (V4L2_PIX_FMT_SRGGB10ALAW8)) - #define XLAT_STR_122 STRINGIFY(V4L2_PIX_FMT_SRGGB10ALAW8) + #define XLAT_VAL_126 ((unsigned) (V4L2_PIX_FMT_SRGGB10ALAW8)) + #define XLAT_STR_126 STRINGIFY(V4L2_PIX_FMT_SRGGB10ALAW8) XLAT(V4L2_PIX_FMT_SRGGB10DPCM8), - #define XLAT_VAL_123 ((unsigned) (V4L2_PIX_FMT_SRGGB10DPCM8)) - #define XLAT_STR_123 STRINGIFY(V4L2_PIX_FMT_SRGGB10DPCM8) + #define XLAT_VAL_127 ((unsigned) (V4L2_PIX_FMT_SRGGB10DPCM8)) + #define XLAT_STR_127 STRINGIFY(V4L2_PIX_FMT_SRGGB10DPCM8) XLAT(V4L2_PIX_FMT_SGRBG10ALAW8), - #define XLAT_VAL_124 ((unsigned) (V4L2_PIX_FMT_SGRBG10ALAW8)) - #define XLAT_STR_124 STRINGIFY(V4L2_PIX_FMT_SGRBG10ALAW8) + #define XLAT_VAL_128 ((unsigned) (V4L2_PIX_FMT_SGRBG10ALAW8)) + #define XLAT_STR_128 STRINGIFY(V4L2_PIX_FMT_SGRBG10ALAW8) XLAT(V4L2_PIX_FMT_PAL8), - #define XLAT_VAL_125 ((unsigned) (V4L2_PIX_FMT_PAL8)) - #define XLAT_STR_125 STRINGIFY(V4L2_PIX_FMT_PAL8) + #define XLAT_VAL_129 ((unsigned) (V4L2_PIX_FMT_PAL8)) + #define XLAT_STR_129 STRINGIFY(V4L2_PIX_FMT_PAL8) XLAT(V4L2_PIX_FMT_YVU410), - #define XLAT_VAL_126 ((unsigned) (V4L2_PIX_FMT_YVU410)) - #define XLAT_STR_126 STRINGIFY(V4L2_PIX_FMT_YVU410) + #define XLAT_VAL_130 ((unsigned) (V4L2_PIX_FMT_YVU410)) + #define XLAT_STR_130 STRINGIFY(V4L2_PIX_FMT_YVU410) XLAT(V4L2_PIX_FMT_YUV410), - #define XLAT_VAL_127 ((unsigned) (V4L2_PIX_FMT_YUV410)) - #define XLAT_STR_127 STRINGIFY(V4L2_PIX_FMT_YUV410) + #define XLAT_VAL_131 ((unsigned) (V4L2_PIX_FMT_YUV410)) + #define XLAT_STR_131 STRINGIFY(V4L2_PIX_FMT_YUV410) XLAT(V4L2_PIX_FMT_SBGGR10P), - #define XLAT_VAL_128 ((unsigned) (V4L2_PIX_FMT_SBGGR10P)) - #define XLAT_STR_128 STRINGIFY(V4L2_PIX_FMT_SBGGR10P) + #define XLAT_VAL_132 ((unsigned) (V4L2_PIX_FMT_SBGGR10P)) + #define XLAT_STR_132 STRINGIFY(V4L2_PIX_FMT_SBGGR10P) XLAT(V4L2_PIX_FMT_SGBRG10P), - #define XLAT_VAL_129 ((unsigned) (V4L2_PIX_FMT_SGBRG10P)) - #define XLAT_STR_129 STRINGIFY(V4L2_PIX_FMT_SGBRG10P) + #define XLAT_VAL_133 ((unsigned) (V4L2_PIX_FMT_SGBRG10P)) + #define XLAT_STR_133 STRINGIFY(V4L2_PIX_FMT_SGBRG10P) XLAT(V4L2_PIX_FMT_SRGGB10P), - #define XLAT_VAL_130 ((unsigned) (V4L2_PIX_FMT_SRGGB10P)) - #define XLAT_STR_130 STRINGIFY(V4L2_PIX_FMT_SRGGB10P) + #define XLAT_VAL_134 ((unsigned) (V4L2_PIX_FMT_SRGGB10P)) + #define XLAT_STR_134 STRINGIFY(V4L2_PIX_FMT_SRGGB10P) XLAT(V4L2_PIX_FMT_SGRBG10P), - #define XLAT_VAL_131 ((unsigned) (V4L2_PIX_FMT_SGRBG10P)) - #define XLAT_STR_131 STRINGIFY(V4L2_PIX_FMT_SGRBG10P) + #define XLAT_VAL_135 ((unsigned) (V4L2_PIX_FMT_SGRBG10P)) + #define XLAT_STR_135 STRINGIFY(V4L2_PIX_FMT_SGRBG10P) XLAT(V4L2_PIX_FMT_CPIA1), - #define XLAT_VAL_132 ((unsigned) (V4L2_PIX_FMT_CPIA1)) - #define XLAT_STR_132 STRINGIFY(V4L2_PIX_FMT_CPIA1) + #define XLAT_VAL_136 ((unsigned) (V4L2_PIX_FMT_CPIA1)) + #define XLAT_STR_136 STRINGIFY(V4L2_PIX_FMT_CPIA1) XLAT(V4L2_PIX_FMT_WNVA), - #define XLAT_VAL_133 ((unsigned) (V4L2_PIX_FMT_WNVA)) - #define XLAT_STR_133 STRINGIFY(V4L2_PIX_FMT_WNVA) + #define XLAT_VAL_137 ((unsigned) (V4L2_PIX_FMT_WNVA)) + #define XLAT_STR_137 STRINGIFY(V4L2_PIX_FMT_WNVA) + XLAT(V4L2_PIX_FMT_YUVA32), + #define XLAT_VAL_138 ((unsigned) (V4L2_PIX_FMT_YUVA32)) + #define XLAT_STR_138 STRINGIFY(V4L2_PIX_FMT_YUVA32) XLAT(V4L2_PIX_FMT_VUYA32), - #define XLAT_VAL_134 ((unsigned) (V4L2_PIX_FMT_VUYA32)) - #define XLAT_STR_134 STRINGIFY(V4L2_PIX_FMT_VUYA32) + #define XLAT_VAL_139 ((unsigned) (V4L2_PIX_FMT_VUYA32)) + #define XLAT_STR_139 STRINGIFY(V4L2_PIX_FMT_VUYA32) XLAT(V4L2_PIX_FMT_Y10BPACK), - #define XLAT_VAL_135 ((unsigned) (V4L2_PIX_FMT_Y10BPACK)) - #define XLAT_STR_135 STRINGIFY(V4L2_PIX_FMT_Y10BPACK) + #define XLAT_VAL_140 ((unsigned) (V4L2_PIX_FMT_Y10BPACK)) + #define XLAT_STR_140 STRINGIFY(V4L2_PIX_FMT_Y10BPACK) XLAT(V4L2_PIX_FMT_SRGGB8), - #define XLAT_VAL_136 ((unsigned) (V4L2_PIX_FMT_SRGGB8)) - #define XLAT_STR_136 STRINGIFY(V4L2_PIX_FMT_SRGGB8) + #define XLAT_VAL_141 ((unsigned) (V4L2_PIX_FMT_SRGGB8)) + #define XLAT_STR_141 STRINGIFY(V4L2_PIX_FMT_SRGGB8) XLAT(V4L2_PIX_FMT_QC10C), - #define XLAT_VAL_137 ((unsigned) (V4L2_PIX_FMT_QC10C)) - #define XLAT_STR_137 STRINGIFY(V4L2_PIX_FMT_QC10C) + #define XLAT_VAL_142 ((unsigned) (V4L2_PIX_FMT_QC10C)) + #define XLAT_STR_142 STRINGIFY(V4L2_PIX_FMT_QC10C) XLAT(V4L2_PIX_FMT_SQ905C), - #define XLAT_VAL_138 ((unsigned) (V4L2_PIX_FMT_SQ905C)) - #define XLAT_STR_138 STRINGIFY(V4L2_PIX_FMT_SQ905C) + #define XLAT_VAL_143 ((unsigned) (V4L2_PIX_FMT_SQ905C)) + #define XLAT_STR_143 STRINGIFY(V4L2_PIX_FMT_SQ905C) XLAT(V4L2_PIX_FMT_QC08C), - #define XLAT_VAL_139 ((unsigned) (V4L2_PIX_FMT_QC08C)) - #define XLAT_STR_139 STRINGIFY(V4L2_PIX_FMT_QC08C) + #define XLAT_VAL_144 ((unsigned) (V4L2_PIX_FMT_QC08C)) + #define XLAT_STR_144 STRINGIFY(V4L2_PIX_FMT_QC08C) XLAT(V4L2_PIX_FMT_SBGGR12P), - #define XLAT_VAL_140 ((unsigned) (V4L2_PIX_FMT_SBGGR12P)) - #define XLAT_STR_140 STRINGIFY(V4L2_PIX_FMT_SBGGR12P) + #define XLAT_VAL_145 ((unsigned) (V4L2_PIX_FMT_SBGGR12P)) + #define XLAT_STR_145 STRINGIFY(V4L2_PIX_FMT_SBGGR12P) XLAT(V4L2_PIX_FMT_SGBRG12P), - #define XLAT_VAL_141 ((unsigned) (V4L2_PIX_FMT_SGBRG12P)) - #define XLAT_STR_141 STRINGIFY(V4L2_PIX_FMT_SGBRG12P) + #define XLAT_VAL_146 ((unsigned) (V4L2_PIX_FMT_SGBRG12P)) + #define XLAT_STR_146 STRINGIFY(V4L2_PIX_FMT_SGBRG12P) XLAT(V4L2_PIX_FMT_SRGGB12P), - #define XLAT_VAL_142 ((unsigned) (V4L2_PIX_FMT_SRGGB12P)) - #define XLAT_STR_142 STRINGIFY(V4L2_PIX_FMT_SRGGB12P) + #define XLAT_VAL_147 ((unsigned) (V4L2_PIX_FMT_SRGGB12P)) + #define XLAT_STR_147 STRINGIFY(V4L2_PIX_FMT_SRGGB12P) XLAT(V4L2_PIX_FMT_SGRBG12P), - #define XLAT_VAL_143 ((unsigned) (V4L2_PIX_FMT_SGRBG12P)) - #define XLAT_STR_143 STRINGIFY(V4L2_PIX_FMT_SGRBG12P) + #define XLAT_VAL_148 ((unsigned) (V4L2_PIX_FMT_SGRBG12P)) + #define XLAT_STR_148 STRINGIFY(V4L2_PIX_FMT_SGRBG12P) XLAT(V4L2_PIX_FMT_HEVC), - #define XLAT_VAL_144 ((unsigned) (V4L2_PIX_FMT_HEVC)) - #define XLAT_STR_144 STRINGIFY(V4L2_PIX_FMT_HEVC) + #define XLAT_VAL_149 ((unsigned) (V4L2_PIX_FMT_HEVC)) + #define XLAT_STR_149 STRINGIFY(V4L2_PIX_FMT_HEVC) XLAT(V4L2_PIX_FMT_XVID), - #define XLAT_VAL_145 ((unsigned) (V4L2_PIX_FMT_XVID)) - #define XLAT_STR_145 STRINGIFY(V4L2_PIX_FMT_XVID) + #define XLAT_VAL_150 ((unsigned) (V4L2_PIX_FMT_XVID)) + #define XLAT_STR_150 STRINGIFY(V4L2_PIX_FMT_XVID) XLAT(V4L2_PIX_FMT_SBGGR14P), - #define XLAT_VAL_146 ((unsigned) (V4L2_PIX_FMT_SBGGR14P)) - #define XLAT_STR_146 STRINGIFY(V4L2_PIX_FMT_SBGGR14P) + #define XLAT_VAL_151 ((unsigned) (V4L2_PIX_FMT_SBGGR14P)) + #define XLAT_STR_151 STRINGIFY(V4L2_PIX_FMT_SBGGR14P) XLAT(V4L2_PIX_FMT_SGBRG14P), - #define XLAT_VAL_147 ((unsigned) (V4L2_PIX_FMT_SGBRG14P)) - #define XLAT_STR_147 STRINGIFY(V4L2_PIX_FMT_SGBRG14P) + #define XLAT_VAL_152 ((unsigned) (V4L2_PIX_FMT_SGBRG14P)) + #define XLAT_STR_152 STRINGIFY(V4L2_PIX_FMT_SGBRG14P) XLAT(V4L2_PIX_FMT_SRGGB14P), - #define XLAT_VAL_148 ((unsigned) (V4L2_PIX_FMT_SRGGB14P)) - #define XLAT_STR_148 STRINGIFY(V4L2_PIX_FMT_SRGGB14P) + #define XLAT_VAL_153 ((unsigned) (V4L2_PIX_FMT_SRGGB14P)) + #define XLAT_STR_153 STRINGIFY(V4L2_PIX_FMT_SRGGB14P) XLAT(V4L2_PIX_FMT_SGRBG14P), - #define XLAT_VAL_149 ((unsigned) (V4L2_PIX_FMT_SGRBG14P)) - #define XLAT_STR_149 STRINGIFY(V4L2_PIX_FMT_SGRBG14P) + #define XLAT_VAL_154 ((unsigned) (V4L2_PIX_FMT_SGRBG14P)) + #define XLAT_STR_154 STRINGIFY(V4L2_PIX_FMT_SGRBG14P) XLAT(V4L2_PIX_FMT_VP8_FRAME), - #define XLAT_VAL_150 ((unsigned) (V4L2_PIX_FMT_VP8_FRAME)) - #define XLAT_STR_150 STRINGIFY(V4L2_PIX_FMT_VP8_FRAME) + #define XLAT_VAL_155 ((unsigned) (V4L2_PIX_FMT_VP8_FRAME)) + #define XLAT_STR_155 STRINGIFY(V4L2_PIX_FMT_VP8_FRAME) XLAT(V4L2_PIX_FMT_VP9_FRAME), - #define XLAT_VAL_151 ((unsigned) (V4L2_PIX_FMT_VP9_FRAME)) - #define XLAT_STR_151 STRINGIFY(V4L2_PIX_FMT_VP9_FRAME) + #define XLAT_VAL_156 ((unsigned) (V4L2_PIX_FMT_VP9_FRAME)) + #define XLAT_STR_156 STRINGIFY(V4L2_PIX_FMT_VP9_FRAME) XLAT(V4L2_PIX_FMT_VC1_ANNEX_G), - #define XLAT_VAL_152 ((unsigned) (V4L2_PIX_FMT_VC1_ANNEX_G)) - #define XLAT_STR_152 STRINGIFY(V4L2_PIX_FMT_VC1_ANNEX_G) + #define XLAT_VAL_157 ((unsigned) (V4L2_PIX_FMT_VC1_ANNEX_G)) + #define XLAT_STR_157 STRINGIFY(V4L2_PIX_FMT_VC1_ANNEX_G) XLAT(V4L2_PIX_FMT_IPU3_SGRBG10), - #define XLAT_VAL_153 ((unsigned) (V4L2_PIX_FMT_IPU3_SGRBG10)) - #define XLAT_STR_153 STRINGIFY(V4L2_PIX_FMT_IPU3_SGRBG10) + #define XLAT_VAL_158 ((unsigned) (V4L2_PIX_FMT_IPU3_SGRBG10)) + #define XLAT_STR_158 STRINGIFY(V4L2_PIX_FMT_IPU3_SGRBG10) XLAT(V4L2_PIX_FMT_SGRBG8), - #define XLAT_VAL_154 ((unsigned) (V4L2_PIX_FMT_SGRBG8)) - #define XLAT_STR_154 STRINGIFY(V4L2_PIX_FMT_SGRBG8) + #define XLAT_VAL_159 ((unsigned) (V4L2_PIX_FMT_SGRBG8)) + #define XLAT_STR_159 STRINGIFY(V4L2_PIX_FMT_SGRBG8) XLAT(V4L2_PIX_FMT_JPEG), - #define XLAT_VAL_155 ((unsigned) (V4L2_PIX_FMT_JPEG)) - #define XLAT_STR_155 STRINGIFY(V4L2_PIX_FMT_JPEG) + #define XLAT_VAL_160 ((unsigned) (V4L2_PIX_FMT_JPEG)) + #define XLAT_STR_160 STRINGIFY(V4L2_PIX_FMT_JPEG) XLAT(V4L2_PIX_FMT_MPEG), - #define XLAT_VAL_156 ((unsigned) (V4L2_PIX_FMT_MPEG)) - #define XLAT_STR_156 STRINGIFY(V4L2_PIX_FMT_MPEG) + #define XLAT_VAL_161 ((unsigned) (V4L2_PIX_FMT_MPEG)) + #define XLAT_STR_161 STRINGIFY(V4L2_PIX_FMT_MPEG) + XLAT(V4L2_PIX_FMT_AJPG), + #define XLAT_VAL_162 ((unsigned) (V4L2_PIX_FMT_AJPG)) + #define XLAT_STR_162 STRINGIFY(V4L2_PIX_FMT_AJPG) XLAT(V4L2_PIX_FMT_MJPEG), - #define XLAT_VAL_157 ((unsigned) (V4L2_PIX_FMT_MJPEG)) - #define XLAT_STR_157 STRINGIFY(V4L2_PIX_FMT_MJPEG) + #define XLAT_VAL_163 ((unsigned) (V4L2_PIX_FMT_MJPEG)) + #define XLAT_STR_163 STRINGIFY(V4L2_PIX_FMT_MJPEG) XLAT(V4L2_PIX_FMT_PJPG), - #define XLAT_VAL_158 ((unsigned) (V4L2_PIX_FMT_PJPG)) - #define XLAT_STR_158 STRINGIFY(V4L2_PIX_FMT_PJPG) + #define XLAT_VAL_164 ((unsigned) (V4L2_PIX_FMT_PJPG)) + #define XLAT_STR_164 STRINGIFY(V4L2_PIX_FMT_PJPG) XLAT(V4L2_PIX_FMT_SGBRG8), - #define XLAT_VAL_159 ((unsigned) (V4L2_PIX_FMT_SGBRG8)) - #define XLAT_STR_159 STRINGIFY(V4L2_PIX_FMT_SGBRG8) + #define XLAT_VAL_165 ((unsigned) (V4L2_PIX_FMT_SGBRG8)) + #define XLAT_STR_165 STRINGIFY(V4L2_PIX_FMT_SGBRG8) XLAT(V4L2_PIX_FMT_BGR666), - #define XLAT_VAL_160 ((unsigned) (V4L2_PIX_FMT_BGR666)) - #define XLAT_STR_160 STRINGIFY(V4L2_PIX_FMT_BGR666) + #define XLAT_VAL_166 ((unsigned) (V4L2_PIX_FMT_BGR666)) + #define XLAT_STR_166 STRINGIFY(V4L2_PIX_FMT_BGR666) XLAT(V4L2_PIX_FMT_FWHT_STATELESS), - #define XLAT_VAL_161 ((unsigned) (V4L2_PIX_FMT_FWHT_STATELESS)) - #define XLAT_STR_161 STRINGIFY(V4L2_PIX_FMT_FWHT_STATELESS) + #define XLAT_VAL_167 ((unsigned) (V4L2_PIX_FMT_FWHT_STATELESS)) + #define XLAT_STR_167 STRINGIFY(V4L2_PIX_FMT_FWHT_STATELESS) XLAT(V4L2_PIX_FMT_Y12I), - #define XLAT_VAL_162 ((unsigned) (V4L2_PIX_FMT_Y12I)) - #define XLAT_STR_162 STRINGIFY(V4L2_PIX_FMT_Y12I) + #define XLAT_VAL_168 ((unsigned) (V4L2_PIX_FMT_Y12I)) + #define XLAT_STR_168 STRINGIFY(V4L2_PIX_FMT_Y12I) XLAT(V4L2_PIX_FMT_S5C_UYVY_JPG), - #define XLAT_VAL_163 ((unsigned) (V4L2_PIX_FMT_S5C_UYVY_JPG)) - #define XLAT_STR_163 STRINGIFY(V4L2_PIX_FMT_S5C_UYVY_JPG) + #define XLAT_VAL_169 ((unsigned) (V4L2_PIX_FMT_S5C_UYVY_JPG)) + #define XLAT_STR_169 STRINGIFY(V4L2_PIX_FMT_S5C_UYVY_JPG) XLAT(V4L2_PIX_FMT_KONICA420), - #define XLAT_VAL_164 ((unsigned) (V4L2_PIX_FMT_KONICA420)) - #define XLAT_STR_164 STRINGIFY(V4L2_PIX_FMT_KONICA420) + #define XLAT_VAL_170 ((unsigned) (V4L2_PIX_FMT_KONICA420)) + #define XLAT_STR_170 STRINGIFY(V4L2_PIX_FMT_KONICA420) XLAT(V4L2_PIX_FMT_INZI), - #define XLAT_VAL_165 ((unsigned) (V4L2_PIX_FMT_INZI)) - #define XLAT_STR_165 STRINGIFY(V4L2_PIX_FMT_INZI) + #define XLAT_VAL_171 ((unsigned) (V4L2_PIX_FMT_INZI)) + #define XLAT_STR_171 STRINGIFY(V4L2_PIX_FMT_INZI) XLAT(V4L2_PIX_FMT_VC1_ANNEX_L), - #define XLAT_VAL_166 ((unsigned) (V4L2_PIX_FMT_VC1_ANNEX_L)) - #define XLAT_STR_166 STRINGIFY(V4L2_PIX_FMT_VC1_ANNEX_L) + #define XLAT_VAL_172 ((unsigned) (V4L2_PIX_FMT_VC1_ANNEX_L)) + #define XLAT_STR_172 STRINGIFY(V4L2_PIX_FMT_VC1_ANNEX_L) XLAT(V4L2_PIX_FMT_JPGL), - #define XLAT_VAL_167 ((unsigned) (V4L2_PIX_FMT_JPGL)) - #define XLAT_STR_167 STRINGIFY(V4L2_PIX_FMT_JPGL) + #define XLAT_VAL_173 ((unsigned) (V4L2_PIX_FMT_JPGL)) + #define XLAT_STR_173 STRINGIFY(V4L2_PIX_FMT_JPGL) XLAT(V4L2_PIX_FMT_RGB555), - #define XLAT_VAL_168 ((unsigned) (V4L2_PIX_FMT_RGB555)) - #define XLAT_STR_168 STRINGIFY(V4L2_PIX_FMT_RGB555) + #define XLAT_VAL_174 ((unsigned) (V4L2_PIX_FMT_RGB555)) + #define XLAT_STR_174 STRINGIFY(V4L2_PIX_FMT_RGB555) XLAT(V4L2_PIX_FMT_YUV555), - #define XLAT_VAL_169 ((unsigned) (V4L2_PIX_FMT_YUV555)) - #define XLAT_STR_169 STRINGIFY(V4L2_PIX_FMT_YUV555) + #define XLAT_VAL_175 ((unsigned) (V4L2_PIX_FMT_YUV555)) + #define XLAT_STR_175 STRINGIFY(V4L2_PIX_FMT_YUV555) XLAT(V4L2_PIX_FMT_Y10P), - #define XLAT_VAL_170 ((unsigned) (V4L2_PIX_FMT_Y10P)) - #define XLAT_STR_170 STRINGIFY(V4L2_PIX_FMT_Y10P) + #define XLAT_VAL_176 ((unsigned) (V4L2_PIX_FMT_Y10P)) + #define XLAT_STR_176 STRINGIFY(V4L2_PIX_FMT_Y10P) XLAT(V4L2_PIX_FMT_YUV411P), - #define XLAT_VAL_171 ((unsigned) (V4L2_PIX_FMT_YUV411P)) - #define XLAT_STR_171 STRINGIFY(V4L2_PIX_FMT_YUV411P) + #define XLAT_VAL_177 ((unsigned) (V4L2_PIX_FMT_YUV411P)) + #define XLAT_STR_177 STRINGIFY(V4L2_PIX_FMT_YUV411P) XLAT(V4L2_PIX_FMT_Y41P), - #define XLAT_VAL_172 ((unsigned) (V4L2_PIX_FMT_Y41P)) - #define XLAT_STR_172 STRINGIFY(V4L2_PIX_FMT_Y41P) + #define XLAT_VAL_178 ((unsigned) (V4L2_PIX_FMT_Y41P)) + #define XLAT_STR_178 STRINGIFY(V4L2_PIX_FMT_Y41P) XLAT(V4L2_PIX_FMT_YUV422P), - #define XLAT_VAL_173 ((unsigned) (V4L2_PIX_FMT_YUV422P)) - #define XLAT_STR_173 STRINGIFY(V4L2_PIX_FMT_YUV422P) + #define XLAT_VAL_179 ((unsigned) (V4L2_PIX_FMT_YUV422P)) + #define XLAT_STR_179 STRINGIFY(V4L2_PIX_FMT_YUV422P) XLAT(V4L2_PIX_FMT_RGB565), - #define XLAT_VAL_174 ((unsigned) (V4L2_PIX_FMT_RGB565)) - #define XLAT_STR_174 STRINGIFY(V4L2_PIX_FMT_RGB565) + #define XLAT_VAL_180 ((unsigned) (V4L2_PIX_FMT_RGB565)) + #define XLAT_STR_180 STRINGIFY(V4L2_PIX_FMT_RGB565) XLAT(V4L2_PIX_FMT_YUV565), - #define XLAT_VAL_175 ((unsigned) (V4L2_PIX_FMT_YUV565)) - #define XLAT_STR_175 STRINGIFY(V4L2_PIX_FMT_YUV565) + #define XLAT_VAL_181 ((unsigned) (V4L2_PIX_FMT_YUV565)) + #define XLAT_STR_181 STRINGIFY(V4L2_PIX_FMT_YUV565) XLAT(V4L2_PIX_FMT_RGB555X), - #define XLAT_VAL_176 ((unsigned) (V4L2_PIX_FMT_RGB555X)) - #define XLAT_STR_176 STRINGIFY(V4L2_PIX_FMT_RGB555X) + #define XLAT_VAL_182 ((unsigned) (V4L2_PIX_FMT_RGB555X)) + #define XLAT_STR_182 STRINGIFY(V4L2_PIX_FMT_RGB555X) XLAT(V4L2_PIX_FMT_RGB565X), - #define XLAT_VAL_177 ((unsigned) (V4L2_PIX_FMT_RGB565X)) - #define XLAT_STR_177 STRINGIFY(V4L2_PIX_FMT_RGB565X) + #define XLAT_VAL_183 ((unsigned) (V4L2_PIX_FMT_RGB565X)) + #define XLAT_STR_183 STRINGIFY(V4L2_PIX_FMT_RGB565X) XLAT(V4L2_PIX_FMT_MPEG2_SLICE), - #define XLAT_VAL_178 ((unsigned) (V4L2_PIX_FMT_MPEG2_SLICE)) - #define XLAT_STR_178 STRINGIFY(V4L2_PIX_FMT_MPEG2_SLICE) + #define XLAT_VAL_184 ((unsigned) (V4L2_PIX_FMT_MPEG2_SLICE)) + #define XLAT_STR_184 STRINGIFY(V4L2_PIX_FMT_MPEG2_SLICE) XLAT(V4L2_PIX_FMT_FWHT), - #define XLAT_VAL_179 ((unsigned) (V4L2_PIX_FMT_FWHT)) - #define XLAT_STR_179 STRINGIFY(V4L2_PIX_FMT_FWHT) + #define XLAT_VAL_185 ((unsigned) (V4L2_PIX_FMT_FWHT)) + #define XLAT_STR_185 STRINGIFY(V4L2_PIX_FMT_FWHT) XLAT(V4L2_PIX_FMT_YVYU), - #define XLAT_VAL_180 ((unsigned) (V4L2_PIX_FMT_YVYU)) - #define XLAT_STR_180 STRINGIFY(V4L2_PIX_FMT_YVYU) + #define XLAT_VAL_186 ((unsigned) (V4L2_PIX_FMT_YVYU)) + #define XLAT_STR_186 STRINGIFY(V4L2_PIX_FMT_YVYU) XLAT(V4L2_PIX_FMT_CIT_YYVYUY), - #define XLAT_VAL_181 ((unsigned) (V4L2_PIX_FMT_CIT_YYVYUY)) - #define XLAT_STR_181 STRINGIFY(V4L2_PIX_FMT_CIT_YYVYUY) + #define XLAT_VAL_187 ((unsigned) (V4L2_PIX_FMT_CIT_YYVYUY)) + #define XLAT_STR_187 STRINGIFY(V4L2_PIX_FMT_CIT_YYVYUY) XLAT(V4L2_PIX_FMT_AYUV32), - #define XLAT_VAL_182 ((unsigned) (V4L2_PIX_FMT_AYUV32)) - #define XLAT_STR_182 STRINGIFY(V4L2_PIX_FMT_AYUV32) + #define XLAT_VAL_188 ((unsigned) (V4L2_PIX_FMT_AYUV32)) + #define XLAT_STR_188 STRINGIFY(V4L2_PIX_FMT_AYUV32) XLAT(V4L2_PIX_FMT_XYUV32), - #define XLAT_VAL_183 ((unsigned) (V4L2_PIX_FMT_XYUV32)) - #define XLAT_STR_183 STRINGIFY(V4L2_PIX_FMT_XYUV32) + #define XLAT_VAL_189 ((unsigned) (V4L2_PIX_FMT_XYUV32)) + #define XLAT_STR_189 STRINGIFY(V4L2_PIX_FMT_XYUV32) XLAT(V4L2_PIX_FMT_YYUV), - #define XLAT_VAL_184 ((unsigned) (V4L2_PIX_FMT_YYUV)) - #define XLAT_STR_184 STRINGIFY(V4L2_PIX_FMT_YYUV) + #define XLAT_VAL_190 ((unsigned) (V4L2_PIX_FMT_YYUV)) + #define XLAT_STR_190 STRINGIFY(V4L2_PIX_FMT_YYUV) XLAT(V4L2_PIX_FMT_YUYV), - #define XLAT_VAL_185 ((unsigned) (V4L2_PIX_FMT_YUYV)) - #define XLAT_STR_185 STRINGIFY(V4L2_PIX_FMT_YUYV) + #define XLAT_VAL_191 ((unsigned) (V4L2_PIX_FMT_YUYV)) + #define XLAT_STR_191 STRINGIFY(V4L2_PIX_FMT_YUYV) XLAT(V4L2_PIX_FMT_SN9C2028), - #define XLAT_VAL_186 ((unsigned) (V4L2_PIX_FMT_SN9C2028)) - #define XLAT_STR_186 STRINGIFY(V4L2_PIX_FMT_SN9C2028) + #define XLAT_VAL_192 ((unsigned) (V4L2_PIX_FMT_SN9C2028)) + #define XLAT_STR_192 STRINGIFY(V4L2_PIX_FMT_SN9C2028) + XLAT(V4L2_PIX_FMT_YUVX32), + #define XLAT_VAL_193 ((unsigned) (V4L2_PIX_FMT_YUVX32)) + #define XLAT_STR_193 STRINGIFY(V4L2_PIX_FMT_YUVX32) XLAT(V4L2_PIX_FMT_VUYX32), - #define XLAT_VAL_187 ((unsigned) (V4L2_PIX_FMT_VUYX32)) - #define XLAT_STR_187 STRINGIFY(V4L2_PIX_FMT_VUYX32) + #define XLAT_VAL_194 ((unsigned) (V4L2_PIX_FMT_VUYX32)) + #define XLAT_STR_194 STRINGIFY(V4L2_PIX_FMT_VUYX32) XLAT(V4L2_PIX_FMT_GREY), - #define XLAT_VAL_188 ((unsigned) (V4L2_PIX_FMT_GREY)) - #define XLAT_STR_188 STRINGIFY(V4L2_PIX_FMT_GREY) + #define XLAT_VAL_195 ((unsigned) (V4L2_PIX_FMT_GREY)) + #define XLAT_STR_195 STRINGIFY(V4L2_PIX_FMT_GREY) XLAT(V4L2_PIX_FMT_VYUY), - #define XLAT_VAL_189 ((unsigned) (V4L2_PIX_FMT_VYUY)) - #define XLAT_STR_189 STRINGIFY(V4L2_PIX_FMT_VYUY) + #define XLAT_VAL_196 ((unsigned) (V4L2_PIX_FMT_VYUY)) + #define XLAT_STR_196 STRINGIFY(V4L2_PIX_FMT_VYUY) XLAT(V4L2_PIX_FMT_UYVY), - #define XLAT_VAL_190 ((unsigned) (V4L2_PIX_FMT_UYVY)) - #define XLAT_STR_190 STRINGIFY(V4L2_PIX_FMT_UYVY) + #define XLAT_VAL_197 ((unsigned) (V4L2_PIX_FMT_UYVY)) + #define XLAT_STR_197 STRINGIFY(V4L2_PIX_FMT_UYVY) XLAT(V4L2_PIX_FMT_IPU3_SBGGR10), - #define XLAT_VAL_191 ((unsigned) (V4L2_PIX_FMT_IPU3_SBGGR10)) - #define XLAT_STR_191 STRINGIFY(V4L2_PIX_FMT_IPU3_SBGGR10) + #define XLAT_VAL_198 ((unsigned) (V4L2_PIX_FMT_IPU3_SBGGR10)) + #define XLAT_STR_198 STRINGIFY(V4L2_PIX_FMT_IPU3_SBGGR10) XLAT(V4L2_PIX_FMT_DV), - #define XLAT_VAL_192 ((unsigned) (V4L2_PIX_FMT_DV)) - #define XLAT_STR_192 STRINGIFY(V4L2_PIX_FMT_DV) + #define XLAT_VAL_199 ((unsigned) (V4L2_PIX_FMT_DV)) + #define XLAT_STR_199 STRINGIFY(V4L2_PIX_FMT_DV) XLAT(V4L2_PIX_FMT_IPU3_SGBRG10), - #define XLAT_VAL_193 ((unsigned) (V4L2_PIX_FMT_IPU3_SGBRG10)) - #define XLAT_STR_193 STRINGIFY(V4L2_PIX_FMT_IPU3_SGBRG10) + #define XLAT_VAL_200 ((unsigned) (V4L2_PIX_FMT_IPU3_SGBRG10)) + #define XLAT_STR_200 STRINGIFY(V4L2_PIX_FMT_IPU3_SGBRG10) XLAT(V4L2_PIX_FMT_IPU3_SRGGB10), - #define XLAT_VAL_194 ((unsigned) (V4L2_PIX_FMT_IPU3_SRGGB10)) - #define XLAT_STR_194 STRINGIFY(V4L2_PIX_FMT_IPU3_SRGGB10) + #define XLAT_VAL_201 ((unsigned) (V4L2_PIX_FMT_IPU3_SRGGB10)) + #define XLAT_STR_201 STRINGIFY(V4L2_PIX_FMT_IPU3_SRGGB10) XLAT(V4L2_PIX_FMT_IPU3_Y10), - #define XLAT_VAL_195 ((unsigned) (V4L2_PIX_FMT_IPU3_Y10)) - #define XLAT_STR_195 STRINGIFY(V4L2_PIX_FMT_IPU3_Y10) + #define XLAT_VAL_202 ((unsigned) (V4L2_PIX_FMT_IPU3_Y10)) + #define XLAT_STR_202 STRINGIFY(V4L2_PIX_FMT_IPU3_Y10) XLAT(V4L2_PIX_FMT_Y16_BE), - #define XLAT_VAL_196 ((unsigned) (V4L2_PIX_FMT_Y16_BE)) - #define XLAT_STR_196 STRINGIFY(V4L2_PIX_FMT_Y16_BE) + #define XLAT_VAL_203 ((unsigned) (V4L2_PIX_FMT_Y16_BE)) + #define XLAT_STR_203 STRINGIFY(V4L2_PIX_FMT_Y16_BE) XLAT(V4L2_PIX_FMT_NV12M_10BE_8L128), - #define XLAT_VAL_197 ((unsigned) (V4L2_PIX_FMT_NV12M_10BE_8L128)) - #define XLAT_STR_197 STRINGIFY(V4L2_PIX_FMT_NV12M_10BE_8L128) + #define XLAT_VAL_204 ((unsigned) (V4L2_PIX_FMT_NV12M_10BE_8L128)) + #define XLAT_STR_204 STRINGIFY(V4L2_PIX_FMT_NV12M_10BE_8L128) + XLAT(V4L2_PIX_FMT_NV12_10BE_8L128), + #define XLAT_VAL_205 ((unsigned) (V4L2_PIX_FMT_NV12_10BE_8L128)) + #define XLAT_STR_205 STRINGIFY(V4L2_PIX_FMT_NV12_10BE_8L128) XLAT(V4L2_PIX_FMT_ARGB555X), - #define XLAT_VAL_198 ((unsigned) (V4L2_PIX_FMT_ARGB555X)) - #define XLAT_STR_198 STRINGIFY(V4L2_PIX_FMT_ARGB555X) + #define XLAT_VAL_206 ((unsigned) (V4L2_PIX_FMT_ARGB555X)) + #define XLAT_STR_206 STRINGIFY(V4L2_PIX_FMT_ARGB555X) XLAT(V4L2_PIX_FMT_XRGB555X), - #define XLAT_VAL_199 ((unsigned) (V4L2_PIX_FMT_XRGB555X)) - #define XLAT_STR_199 STRINGIFY(V4L2_PIX_FMT_XRGB555X) + #define XLAT_VAL_207 ((unsigned) (V4L2_PIX_FMT_XRGB555X)) + #define XLAT_STR_207 STRINGIFY(V4L2_PIX_FMT_XRGB555X) }; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static @@ -2824,6 +2912,30 @@ # ifdef XLAT_VAL_199 | XLAT_VAL_199 # endif +# ifdef XLAT_VAL_200 + | XLAT_VAL_200 +# endif +# ifdef XLAT_VAL_201 + | XLAT_VAL_201 +# endif +# ifdef XLAT_VAL_202 + | XLAT_VAL_202 +# endif +# ifdef XLAT_VAL_203 + | XLAT_VAL_203 +# endif +# ifdef XLAT_VAL_204 + | XLAT_VAL_204 +# endif +# ifdef XLAT_VAL_205 + | XLAT_VAL_205 +# endif +# ifdef XLAT_VAL_206 + | XLAT_VAL_206 +# endif +# ifdef XLAT_VAL_207 + | XLAT_VAL_207 +# endif , .flags_strsz = 0 # ifdef XLAT_STR_0 @@ -3426,6 +3538,30 @@ # ifdef XLAT_STR_199 + sizeof(XLAT_STR_199) # endif +# ifdef XLAT_STR_200 + + sizeof(XLAT_STR_200) +# endif +# ifdef XLAT_STR_201 + + sizeof(XLAT_STR_201) +# endif +# ifdef XLAT_STR_202 + + sizeof(XLAT_STR_202) +# endif +# ifdef XLAT_STR_203 + + sizeof(XLAT_STR_203) +# endif +# ifdef XLAT_STR_204 + + sizeof(XLAT_STR_204) +# endif +# ifdef XLAT_STR_205 + + sizeof(XLAT_STR_205) +# endif +# ifdef XLAT_STR_206 + + sizeof(XLAT_STR_206) +# endif +# ifdef XLAT_STR_207 + + sizeof(XLAT_STR_207) +# endif , } }; DIAG_POP_IGNORE_TAUTOLOGICAL_CONSTANT_COMPARE @@ -3830,6 +3966,22 @@ # undef XLAT_VAL_198 # undef XLAT_STR_199 # undef XLAT_VAL_199 +# undef XLAT_STR_200 +# undef XLAT_VAL_200 +# undef XLAT_STR_201 +# undef XLAT_VAL_201 +# undef XLAT_STR_202 +# undef XLAT_VAL_202 +# undef XLAT_STR_203 +# undef XLAT_VAL_203 +# undef XLAT_STR_204 +# undef XLAT_VAL_204 +# undef XLAT_STR_205 +# undef XLAT_VAL_205 +# undef XLAT_STR_206 +# undef XLAT_VAL_206 +# undef XLAT_STR_207 +# undef XLAT_VAL_207 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff -Nru strace-6.1/src/xlat/v4l2_pix_fmts.in strace-6.2/src/xlat/v4l2_pix_fmts.in --- strace-6.1/src/xlat/v4l2_pix_fmts.in 2022-08-09 08:01:25.000000000 +0200 +++ strace-6.2/src/xlat/v4l2_pix_fmts.in 2023-02-14 09:00:00.000000000 +0100 @@ -1,5 +1,5 @@ #unconditional -#sorted sed -rn 's/.*v4l2_fourcc(_be)?\('"'(.)', '(.)', '(.)', '(.)'"'\).*/\10\5\4\3\2\t\0/p' |LC_COLLATE=C sort -k1,1 -t' ' |cut -f2- +#sorted sed -En 's/.*v4l2_fourcc(_be)?\('"'(.)', '(.)', '(.)', '(.)'"'\).*/\10\5\4\3\2\t\0/p' |LC_COLLATE=C sort -k1,1 -t' ' |cut -f2- V4L2_PIX_FMT_Y10 V4L2_PIX_FMT_Y12 V4L2_PIX_FMT_Y4 @@ -9,6 +9,8 @@ V4L2_PIX_FMT_Z16 V4L2_PIX_FMT_UV8 V4L2_PIX_FMT_Y8I +V4L2_PIX_FMT_P010 +V4L2_PIX_FMT_P010_4L4 V4L2_PIX_FMT_MR97310A V4L2_PIX_FMT_SN9C10X V4L2_PIX_FMT_SGRBG10 @@ -56,6 +58,7 @@ V4L2_PIX_FMT_YUV420M V4L2_PIX_FMT_ARGB444 V4L2_PIX_FMT_XRGB444 +V4L2_PIX_FMT_NV12_8L128 V4L2_PIX_FMT_NV12_32L32 V4L2_PIX_FMT_NV12_4L4 V4L2_PIX_FMT_YUV420 @@ -109,6 +112,7 @@ V4L2_PIX_FMT_BGRX555 V4L2_PIX_FMT_RGBX555 V4L2_PIX_FMT_ET61X251 +V4L2_PIX_FMT_HEVC_SLICE V4L2_PIX_FMT_SGBRG16 V4L2_PIX_FMT_SRGGB16 V4L2_PIX_FMT_NV16M @@ -134,6 +138,7 @@ V4L2_PIX_FMT_SGRBG10P V4L2_PIX_FMT_CPIA1 V4L2_PIX_FMT_WNVA +V4L2_PIX_FMT_YUVA32 V4L2_PIX_FMT_VUYA32 V4L2_PIX_FMT_Y10BPACK V4L2_PIX_FMT_SRGGB8 @@ -157,6 +162,7 @@ V4L2_PIX_FMT_SGRBG8 V4L2_PIX_FMT_JPEG V4L2_PIX_FMT_MPEG +V4L2_PIX_FMT_AJPG V4L2_PIX_FMT_MJPEG V4L2_PIX_FMT_PJPG V4L2_PIX_FMT_SGBRG8 @@ -187,6 +193,7 @@ V4L2_PIX_FMT_YYUV V4L2_PIX_FMT_YUYV V4L2_PIX_FMT_SN9C2028 +V4L2_PIX_FMT_YUVX32 V4L2_PIX_FMT_VUYX32 V4L2_PIX_FMT_GREY V4L2_PIX_FMT_VYUY @@ -198,5 +205,6 @@ V4L2_PIX_FMT_IPU3_Y10 V4L2_PIX_FMT_Y16_BE V4L2_PIX_FMT_NV12M_10BE_8L128 +V4L2_PIX_FMT_NV12_10BE_8L128 V4L2_PIX_FMT_ARGB555X V4L2_PIX_FMT_XRGB555X diff -Nru strace-6.1/src/xlat/v4l2_sdr_fmts.in strace-6.2/src/xlat/v4l2_sdr_fmts.in --- strace-6.1/src/xlat/v4l2_sdr_fmts.in 2021-02-06 09:00:00.000000000 +0100 +++ strace-6.2/src/xlat/v4l2_sdr_fmts.in 2023-02-14 09:00:00.000000000 +0100 @@ -1,5 +1,5 @@ #unconditional -#sorted sed -rn 's/.*v4l2_fourcc(_be)?\('"'(.)', '(.)', '(.)', '(.)'"'\).*/\10\5\4\3\2\t\0/p' |LC_COLLATE=C sort -k1,1 -t' ' |cut -f2- +#sorted sed -En 's/.*v4l2_fourcc(_be)?\('"'(.)', '(.)', '(.)', '(.)'"'\).*/\10\5\4\3\2\t\0/p' |LC_COLLATE=C sort -k1,1 -t' ' |cut -f2- V4L2_SDR_FMT_PCU20BE V4L2_SDR_FMT_RU12LE V4L2_SDR_FMT_CS14LE diff -Nru strace-6.1/src/xlat.c strace-6.2/src/xlat.c --- strace-6.1/src/xlat.c 2022-10-31 09:00:00.000000000 +0100 +++ strace-6.2/src/xlat.c 2022-12-19 09:00:00.000000000 +0100 @@ -47,7 +47,7 @@ static void print_xlat_val(uint64_t val, enum xlat_style style) { - tprints(sprint_xlat_val(val, style)); + tprints_string(sprint_xlat_val(val, style)); } static int @@ -231,7 +231,7 @@ print_xlat_val(val, style); tprints_comment(str); } else { - tprints(str); + tprints_string(str); } goto printxvals_ex_end; @@ -438,10 +438,10 @@ && !flags) PRINT_VAL_U(0); if (n++) - tprint_or(); + tprint_flags_or(); else if (need_comment) tprint_comment_begin(); - tprints(xlat->data[idx].str); + tprints_string(xlat->data[idx].str); flags &= ~v; } if (!flags) @@ -452,7 +452,7 @@ if (n) { if (flags) { - tprint_or(); + tprint_flags_or(); print_xlat_val(flags, style); n++; } @@ -486,7 +486,7 @@ print_xlat_val(val, style); tprints_comment(str); } else { - tprints(str); + tprints_string(str); } break; } diff -Nru strace-6.1/strace.spec strace-6.2/strace.spec --- strace-6.1/strace.spec 2022-12-12 19:29:13.000000000 +0100 +++ strace-6.2/strace.spec 2023-02-26 22:21:08.000000000 +0100 @@ -1,6 +1,6 @@ Summary: Tracks and displays system calls associated with a running process Name: strace -Version: 6.1 +Version: 6.2 Release: 1%{?dist} # The test suite is GPLv2+, all the rest is LGPLv2.1+. %if 0%{?fedora} >= 35 || 0%{?centos} >= 9 || 0%{?rhel} >= 9 @@ -68,7 +68,7 @@ %prep %setup -q echo -n %version-%release > .tarball-version -echo -n 2022 > .year +echo -n 2023 > .year echo -n 2022-10-16 > doc/.strace.1.in.date echo -n 2022-01-01 > doc/.strace-log-merge.1.in.date @@ -122,8 +122,11 @@ %{_mandir}/man1/* %changelog -* Mon Dec 12 2022 strace-devel@lists.strace.io - 6.1-1 -- strace 6.1 snapshot. +* Sun Feb 26 2023 strace-devel@lists.strace.io - 6.2-1 +- strace 6.2 snapshot. + +* Mon Dec 12 2022 Dmitry V. Levin - 6.1-1 +- v6.0 -> v6.1. * Sat Oct 29 2022 Dmitry V. Levin - 6.0-1 - v5.19 -> v6.0. diff -Nru strace-6.1/strace.spec.in strace-6.2/strace.spec.in --- strace-6.1/strace.spec.in 2022-11-24 21:00:00.000000000 +0100 +++ strace-6.2/strace.spec.in 2022-12-13 09:00:00.000000000 +0100 @@ -125,6 +125,9 @@ * @RPM_CHANGELOGTIME@ @PACKAGE_BUGREPORT@ - @PACKAGE_VERSION@-1 - @PACKAGE_STRING@ snapshot. +* Mon Dec 12 2022 Dmitry V. Levin - 6.1-1 +- v6.0 -> v6.1. + * Sat Oct 29 2022 Dmitry V. Levin - 6.0-1 - v5.19 -> v6.0. diff -Nru strace-6.1/.tarball-version strace-6.2/.tarball-version --- strace-6.1/.tarball-version 2022-12-12 19:29:27.000000000 +0100 +++ strace-6.2/.tarball-version 2023-02-26 22:21:23.000000000 +0100 @@ -1 +1 @@ -6.1 +6.2 diff -Nru strace-6.1/tests/bpf.c strace-6.2/tests/bpf.c --- strace-6.1/tests/bpf.c 2022-12-11 09:00:00.000000000 +0100 +++ strace-6.2/tests/bpf.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check bpf syscall decoding. * * Copyright (c) 2015-2017 Dmitry V. Levin - * Copyright (c) 2015-2022 The strace developers. + * Copyright (c) 2015-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -272,7 +272,7 @@ attr->map_ifindex = ifindex_lo(); } -static_assert(ARRAY_SIZE(bpf_map_types_xdata) == 32, +static_assert(ARRAY_SIZE(bpf_map_types_xdata) == 33, "The map_type for tests 1 and 2 below needs to be updated"); static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { { @@ -283,7 +283,7 @@ }, { /* 1 */ .data = { .BPF_MAP_CREATE_data = { - .map_type = 31, + .map_type = 32, .key_size = 4, .value_size = 8, .max_entries = 256, @@ -293,7 +293,7 @@ .map_name = "0123456789abcde", } }, .size = offsetof(struct BPF_MAP_CREATE_struct, map_name) + 8, - .str = "map_type=BPF_MAP_TYPE_USER_RINGBUF, key_size=4" + .str = "map_type=BPF_MAP_TYPE_CGRP_STORAGE, key_size=4" ", value_size=8, max_entries=256" ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NO_COMMON_LRU" "|BPF_F_NUMA_NODE|BPF_F_RDONLY|BPF_F_WRONLY" @@ -305,7 +305,7 @@ }, { /* 2 */ .data = { .BPF_MAP_CREATE_data = { - .map_type = 32, + .map_type = 33, .key_size = 0xface1e55, .value_size = 0xbadc0ded, .max_entries = 0xbeefcafe, @@ -316,7 +316,7 @@ .map_ifindex = 3141592653, } }, .size = offsetofend(struct BPF_MAP_CREATE_struct, map_ifindex), - .str = "map_type=0x20 /* BPF_MAP_TYPE_??? */" + .str = "map_type=0x21 /* BPF_MAP_TYPE_??? */" ", key_size=4207812181, value_size=3134983661" ", max_entries=3203386110" ", map_flags=0xffffe000 /* BPF_F_??? */" diff -Nru strace-6.1/tests/fanotify_mark.c strace-6.2/tests/fanotify_mark.c --- strace-6.1/tests/fanotify_mark.c 2022-10-09 10:00:00.000000000 +0200 +++ strace-6.2/tests/fanotify_mark.c 2023-02-26 09:00:00.000000000 +0100 @@ -3,7 +3,7 @@ * * Copyright (c) 2015-2016 Dmitry V. Levin * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2015-2022 The strace developers. + * Copyright (c) 2015-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -51,12 +51,7 @@ || defined LINUX_MIPSN32 mask, # else -/* arch/parisc/kernel/sys_parisc32.c, commit ab8a261b */ -# ifdef HPPA - LL_VAL_TO_PAIR((mask << 32) | (mask >> 32)), -# else LL_VAL_TO_PAIR(mask), -# endif # endif dirfd, path); diff -Nru strace-6.1/tests/init.sh strace-6.2/tests/init.sh --- strace-6.1/tests/init.sh 2022-07-19 10:12:24.000000000 +0200 +++ strace-6.2/tests/init.sh 2023-02-26 09:00:00.000000000 +0100 @@ -1,7 +1,7 @@ #!/bin/sh # # Copyright (c) 2011-2016 Dmitry V. Levin -# Copyright (c) 2011-2022 The strace developers. +# Copyright (c) 2011-2023 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -38,7 +38,7 @@ # in the CONFIG_H variable). get_config_str() { - sed -r -n 's/#define[[:space:]]*'"$1"'[[:space:]]*"([^"]*)".*/\1/p' \ + sed -E -n 's/#define[[:space:]]*'"$1"'[[:space:]]*"([^"]*)".*/\1/p' \ "$CONFIG_H" } @@ -50,7 +50,7 @@ get_config_option() { local opt - opt=$(sed -r -n 's/#define[[:space:]]*'"$1"'[[:space:]]*([0-9]+)$/\1/p' \ + opt=$(sed -E -n 's/#define[[:space:]]*'"$1"'[[:space:]]*([0-9]+)$/\1/p' \ "$CONFIG_H") if [ -n "$opt" -a "$opt" -ne 0 ]; then printf "%s" "$2" diff -Nru strace-6.1/tests/ioctl_kd.c strace-6.2/tests/ioctl_kd.c --- strace-6.1/tests/ioctl_kd.c 2021-11-07 09:00:00.000000000 +0100 +++ strace-6.2/tests/ioctl_kd.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,6 +2,7 @@ * This file is part of ioctl_kd strace test. * * Copyright (c) 2019-2021 Eugene Syromyatnikov + * Copyright (c) 2019-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -359,6 +360,25 @@ errno = saved_errno; printf("}) = " RETVAL); } + + if (DEFAULT_STRLEN < sizeof(kbse->kb_string) && + (RETVAL_INJECTED || c == KDSKBSENT)) { + /* + * Check how struct kbsentry.kb_string is printed when it + * starts DEFAULT_STRLEN / 2 bytes before the page boundary. + */ + struct kbsentry *const k = + tail_alloc(get_page_size() + + DEFAULT_STRLEN / 2 + sizeof(k->kb_func)); + fill_memory_ex(k->kb_string, DEFAULT_STRLEN - 1, '0', 10); + k->kb_string[DEFAULT_STRLEN - 1] = '\0'; + + sys_ioctl(-1, c, (uintptr_t) k); + printf("ioctl(-1, " XLAT_FMT ", {kb_func=" + XLAT_KNOWN(0xff, "KVAL(K_UNDO)") + ", kb_string=\"%s\"}) = " RETVAL, + XLAT_SEL(c, s), k->kb_string); + } } /* KDGKBDIACR, KDSKBDIACR */ diff -Nru strace-6.1/tests/ioctl_termios.c strace-6.2/tests/ioctl_termios.c --- strace-6.1/tests/ioctl_termios.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/tests/ioctl_termios.c 2023-02-20 09:00:00.000000000 +0100 @@ -860,7 +860,8 @@ const char *cmd_str; bool write; bool can_fail; - } cmds[6]; + bool pass_invalid_fd; + } cmds[9]; struct { kernel_ulong_t data; const char *data_str; @@ -889,22 +890,33 @@ #endif { { - /* XXX */ + /* + * If the fd is valid and points to a tty, + * the potential ioctl command collision is resolved. + */ + { ARG_STR(TCSETS), true }, + { ARG_STR(TCSETSW), true }, + { ARG_STR(TCSETSF), true }, + + /* + * If the fd is invalid, it is impossible + * to distinguish the overlapping ioctl commands. + */ { TCSETS, #if IOCTL_CLASHED "SNDCTL_TMR_START or " #endif - "TCSETS", true }, + "TCSETS", true, true, true }, { TCSETSW, #if IOCTL_CLASHED "SNDCTL_TMR_STOP or " #endif - "TCSETSW", true }, + "TCSETSW", true, true, true }, { TCSETSF, #if IOCTL_CLASHED "SNDCTL_TMR_CONTINUE or " #endif - "TCSETSF", true }, + "TCSETSF", true, true, true }, { ARG_STR(TCGETS), false }, { ARG_STR(TIOCSLCKTRMIOS), true, true }, @@ -963,7 +975,7 @@ do_ioctl(checks[i].cmds[j].cmd, checks[i].cmds[j].cmd_str, - ret, + checks[i].cmds[j].pass_invalid_fd? -1: ret, checks[i].printer, checks[i].args[k].data, checks[i].args[k].valid, diff -Nru strace-6.1/tests/ioctl_v4l2-success.c strace-6.2/tests/ioctl_v4l2-success.c --- strace-6.1/tests/ioctl_v4l2-success.c 2021-06-29 07:00:00.000000000 +0200 +++ strace-6.2/tests/ioctl_v4l2-success.c 2023-02-26 09:00:00.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2021 The strace developers. + * Copyright (c) 2018-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -1080,7 +1080,7 @@ }; static const struct strval32 ctrl_flags[] = { { ARG_STR(0) }, - { ARG_XLAT_KNOWN(0x7ff, "V4L2_CTRL_FLAG_DISABLED" + { ARG_XLAT_KNOWN(0xfff, "V4L2_CTRL_FLAG_DISABLED" "|V4L2_CTRL_FLAG_GRABBED" "|V4L2_CTRL_FLAG_READ_ONLY" "|V4L2_CTRL_FLAG_UPDATE" @@ -1090,15 +1090,17 @@ "|V4L2_CTRL_FLAG_VOLATILE" "|V4L2_CTRL_FLAG_HAS_PAYLOAD" "|V4L2_CTRL_FLAG_EXECUTE_ON_WRITE" - "|V4L2_CTRL_FLAG_MODIFY_LAYOUT") }, + "|V4L2_CTRL_FLAG_MODIFY_LAYOUT" + "|V4L2_CTRL_FLAG_DYNAMIC_ARRAY") }, { ARG_XLAT_KNOWN(0xbeefface, "V4L2_CTRL_FLAG_GRABBED" "|V4L2_CTRL_FLAG_READ_ONLY" "|V4L2_CTRL_FLAG_UPDATE" "|V4L2_CTRL_FLAG_WRITE_ONLY" "|V4L2_CTRL_FLAG_VOLATILE" "|V4L2_CTRL_FLAG_EXECUTE_ON_WRITE" - "|0xbeeff800") }, - { ARG_XLAT_UNKNOWN(0xfffff800, "V4L2_CTRL_FLAG_???") }, + "|V4L2_CTRL_FLAG_DYNAMIC_ARRAY" + "|0xbeeff000") }, + { ARG_XLAT_UNKNOWN(0xfffff000, "V4L2_CTRL_FLAG_???") }, }; static const size_t qctrl_iters = MAX(MAX(ARRAY_SIZE(cids), ARRAY_SIZE(ctrl_types)), diff -Nru strace-6.1/tests/io_uring_register.c strace-6.2/tests/io_uring_register.c --- strace-6.1/tests/io_uring_register.c 2022-11-26 09:00:00.000000000 +0100 +++ strace-6.2/tests/io_uring_register.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check decoding of io_uring_register syscall. * * Copyright (c) 2019 Dmitry V. Levin - * Copyright (c) 2019-2022 The strace developers. + * Copyright (c) 2019-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -16,6 +16,9 @@ #include #include #include + +#include "kernel_time_types.h" +#define UAPI_LINUX_IO_URING_H_SKIP_LINUX_TIME_TYPES_H #include /* From tests/bpf.c */ diff -Nru strace-6.1/tests/io_uring_setup.c strace-6.2/tests/io_uring_setup.c --- strace-6.1/tests/io_uring_setup.c 2022-08-07 10:00:00.000000000 +0200 +++ strace-6.2/tests/io_uring_setup.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check decoding of io_uring_setup syscall. * * Copyright (c) 2019 Dmitry V. Levin - * Copyright (c) 2019-2022 The strace developers. + * Copyright (c) 2019-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -16,6 +16,9 @@ #include #include #include + +#include "kernel_time_types.h" +#define UAPI_LINUX_IO_URING_H_SKIP_LINUX_TIME_TYPES_H #include #include diff -Nru strace-6.1/tests/ksysent.sed strace-6.2/tests/ksysent.sed --- strace-6.1/tests/ksysent.sed 2019-09-25 03:02:03.000000000 +0200 +++ strace-6.2/tests/ksysent.sed 2023-02-26 09:00:00.000000000 +0100 @@ -1,6 +1,6 @@ -#!/bin/sed -rnf +#!/bin/sed -Enf # -# Copyright (c) 2015-2019 The strace developers. +# Copyright (c) 2015-2023 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later diff -Nru strace-6.1/tests/landlock_add_rule.c strace-6.2/tests/landlock_add_rule.c --- strace-6.1/tests/landlock_add_rule.c 2022-08-07 10:00:00.000000000 +0200 +++ strace-6.2/tests/landlock_add_rule.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check decoding of landlock_add_rule syscall. * * Copyright (c) 2021 Eugene Syromyatnikov - * Copyright (c) 2021-2022 The strace developers. + * Copyright (c) 2021-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -102,8 +102,8 @@ const char *str; } attr_vals[] = { { ARG_STR(LANDLOCK_ACCESS_FS_EXECUTE) }, - { ARG_ULL_STR(LANDLOCK_ACCESS_FS_EXECUTE|LANDLOCK_ACCESS_FS_READ_FILE|LANDLOCK_ACCESS_FS_READ_DIR|LANDLOCK_ACCESS_FS_REMOVE_FILE|LANDLOCK_ACCESS_FS_MAKE_CHAR|LANDLOCK_ACCESS_FS_MAKE_DIR|LANDLOCK_ACCESS_FS_MAKE_SOCK|LANDLOCK_ACCESS_FS_MAKE_FIFO|LANDLOCK_ACCESS_FS_MAKE_BLOCK|LANDLOCK_ACCESS_FS_MAKE_SYM|LANDLOCK_ACCESS_FS_REFER|0xdebeefeddecac000) }, - { ARG_ULL_STR(0xdebeefeddecac000) + { ARG_ULL_STR(LANDLOCK_ACCESS_FS_EXECUTE|LANDLOCK_ACCESS_FS_READ_FILE|LANDLOCK_ACCESS_FS_READ_DIR|LANDLOCK_ACCESS_FS_REMOVE_FILE|LANDLOCK_ACCESS_FS_MAKE_CHAR|LANDLOCK_ACCESS_FS_MAKE_DIR|LANDLOCK_ACCESS_FS_MAKE_SOCK|LANDLOCK_ACCESS_FS_MAKE_FIFO|LANDLOCK_ACCESS_FS_MAKE_BLOCK|LANDLOCK_ACCESS_FS_MAKE_SYM|LANDLOCK_ACCESS_FS_REFER|LANDLOCK_ACCESS_FS_TRUNCATE|0xdebeefeddeca8000) }, + { ARG_ULL_STR(0xdebeefeddeca8000) " /* LANDLOCK_ACCESS_FS_??? */" }, }; static const struct { diff -Nru strace-6.1/tests/landlock_create_ruleset.c strace-6.2/tests/landlock_create_ruleset.c --- strace-6.1/tests/landlock_create_ruleset.c 2022-08-07 10:00:00.000000000 +0200 +++ strace-6.2/tests/landlock_create_ruleset.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check decoding of landlock_create_ruleset syscall. * * Copyright (c) 2021 Eugene Syromyatnikov - * Copyright (c) 2021-2022 The strace developers. + * Copyright (c) 2021-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -123,8 +123,8 @@ const char *str; } attr_vals[] = { { ARG_STR(LANDLOCK_ACCESS_FS_EXECUTE) }, - { ARG_ULL_STR(LANDLOCK_ACCESS_FS_EXECUTE|LANDLOCK_ACCESS_FS_READ_FILE|LANDLOCK_ACCESS_FS_READ_DIR|LANDLOCK_ACCESS_FS_REMOVE_FILE|LANDLOCK_ACCESS_FS_MAKE_CHAR|LANDLOCK_ACCESS_FS_MAKE_DIR|LANDLOCK_ACCESS_FS_MAKE_SOCK|LANDLOCK_ACCESS_FS_MAKE_FIFO|LANDLOCK_ACCESS_FS_MAKE_BLOCK|LANDLOCK_ACCESS_FS_MAKE_SYM|LANDLOCK_ACCESS_FS_REFER|0xdebeefeddecac000) }, - { ARG_ULL_STR(0xdebeefeddecac000) + { ARG_ULL_STR(LANDLOCK_ACCESS_FS_EXECUTE|LANDLOCK_ACCESS_FS_READ_FILE|LANDLOCK_ACCESS_FS_READ_DIR|LANDLOCK_ACCESS_FS_REMOVE_FILE|LANDLOCK_ACCESS_FS_MAKE_CHAR|LANDLOCK_ACCESS_FS_MAKE_DIR|LANDLOCK_ACCESS_FS_MAKE_SOCK|LANDLOCK_ACCESS_FS_MAKE_FIFO|LANDLOCK_ACCESS_FS_MAKE_BLOCK|LANDLOCK_ACCESS_FS_MAKE_SYM|LANDLOCK_ACCESS_FS_REFER|LANDLOCK_ACCESS_FS_TRUNCATE|0xdebeefeddeca8000) }, + { ARG_ULL_STR(0xdebeefeddeca8000) " /* LANDLOCK_ACCESS_FS_??? */" }, }; static const kernel_ulong_t sizes[] = { 8, 12, 16 }; diff -Nru strace-6.1/tests/Makefile.am strace-6.2/tests/Makefile.am --- strace-6.1/tests/Makefile.am 2022-08-29 20:24:41.000000000 +0200 +++ strace-6.2/tests/Makefile.am 2023-02-26 09:00:00.000000000 +0100 @@ -1,7 +1,7 @@ # Automake input for strace tests. # # Copyright (c) 2011-2016 Dmitry V. Levin -# Copyright (c) 2011-2022 The strace developers. +# Copyright (c) 2011-2023 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -152,9 +152,7 @@ fsync-y \ get_process_reaper \ getpgrp--pidns-translation \ - getpid \ getpid--pidns-translation \ - getppid \ getsid--pidns-translation \ gettid \ gettid--pidns-translation \ @@ -376,7 +374,9 @@ stack-fcall \ stack-fcall-attach \ stack-fcall-mangled \ + status-detached-threads \ status-none-threads \ + status-successful-threads \ status-unfinished-threads \ strace--decode-pids-comm \ strace-Y-0123456789 \ @@ -435,7 +435,9 @@ pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 stat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 statfs_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 +status_detached_threads_LDADD = -lpthread $(LDADD) status_none_threads_LDADD = -lpthread $(LDADD) +status_successful_threads_LDADD = -lpthread $(LDADD) status_unfinished_threads_LDADD = -lpthread $(LDADD) threads_execve_LDADD = -lpthread $(clock_LIBS) $(LDADD) threads_execve__quiet_thread_execve_LDADD = -lpthread $(clock_LIBS) $(LDADD) @@ -600,7 +602,9 @@ sigblock.test \ sigign.test \ status-detached.test \ + status-detached-threads.test \ status-none-threads.test \ + status-successful-threads.test \ status-unfinished-threads.test \ strace--tips.test \ strace--tips-full.test \ @@ -794,7 +798,7 @@ ksysent.h: $(srcdir)/ksysent.sed echo '#include ' | \ $(CPP) $(AM_CPPFLAGS) $(CPPFLAGS) -dM - > $@.t1 - LC_COLLATE=C sed -r -n -f $(srcdir)/ksysent.sed < $@.t1 > $@.t2 + LC_COLLATE=C sed -E -n -f $(srcdir)/ksysent.sed < $@.t1 > $@.t2 mv -f $@.t2 $@ rm -f $@.t1 diff -Nru strace-6.1/tests/Makefile.in strace-6.2/tests/Makefile.in --- strace-6.1/tests/Makefile.in 2022-12-12 19:29:03.000000000 +0100 +++ strace-6.2/tests/Makefile.in 2023-02-26 22:20:59.000000000 +0100 @@ -17,7 +17,7 @@ # Automake input for strace tests. # # Copyright (c) 2011-2016 Dmitry V. Levin -# Copyright (c) 2011-2022 The strace developers. +# Copyright (c) 2011-2023 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -134,8 +134,8 @@ filter-unavailable$(EXEEXT) filter_seccomp-flag$(EXEEXT) \ filter_seccomp-perf$(EXEEXT) fork--pidns-translation$(EXEEXT) \ fork-f$(EXEEXT) fsync-y$(EXEEXT) get_process_reaper$(EXEEXT) \ - getpgrp--pidns-translation$(EXEEXT) getpid$(EXEEXT) \ - getpid--pidns-translation$(EXEEXT) getppid$(EXEEXT) \ + getpgrp--pidns-translation$(EXEEXT) \ + getpid--pidns-translation$(EXEEXT) \ getsid--pidns-translation$(EXEEXT) gettid$(EXEEXT) \ gettid--pidns-translation$(EXEEXT) inject-nf$(EXEEXT) \ int_0x80$(EXEEXT) io_uring_register-success$(EXEEXT) \ @@ -308,7 +308,9 @@ sockopt-sol_socket-success-Xraw$(EXEEXT) \ sockopt-sol_socket-success-Xverbose$(EXEEXT) \ stack-fcall$(EXEEXT) stack-fcall-attach$(EXEEXT) \ - stack-fcall-mangled$(EXEEXT) status-none-threads$(EXEEXT) \ + stack-fcall-mangled$(EXEEXT) status-detached-threads$(EXEEXT) \ + status-none-threads$(EXEEXT) \ + status-successful-threads$(EXEEXT) \ status-unfinished-threads$(EXEEXT) \ strace--decode-pids-comm$(EXEEXT) strace-Y-0123456789$(EXEEXT) \ strace-p-Y-p2$(EXEEXT) strace-p1-Y-p$(EXEEXT) \ @@ -5503,6 +5505,9 @@ status_all_OBJECTS = status-all.$(OBJEXT) status_all_LDADD = $(LDADD) status_all_DEPENDENCIES = libtests.a $(am__DEPENDENCIES_1) +status_detached_threads_SOURCES = status-detached-threads.c +status_detached_threads_OBJECTS = status-detached-threads.$(OBJEXT) +status_detached_threads_DEPENDENCIES = $(am__DEPENDENCIES_2) status_failed_SOURCES = status-failed.c status_failed_OBJECTS = status-failed.$(OBJEXT) status_failed_LDADD = $(LDADD) @@ -5539,6 +5544,10 @@ status_successful_status_LDADD = $(LDADD) status_successful_status_DEPENDENCIES = libtests.a \ $(am__DEPENDENCIES_1) +status_successful_threads_SOURCES = status-successful-threads.c +status_successful_threads_OBJECTS = \ + status-successful-threads.$(OBJEXT) +status_successful_threads_DEPENDENCIES = $(am__DEPENDENCIES_2) status_unfinished_SOURCES = status-unfinished.c status_unfinished_OBJECTS = status-unfinished.$(OBJEXT) status_unfinished_LDADD = $(LDADD) @@ -6776,12 +6785,15 @@ ./$(DEPDIR)/stack-fcall-mangled.Po ./$(DEPDIR)/stack-fcall.Po \ ./$(DEPDIR)/stat.Po ./$(DEPDIR)/stat64-stat64.Po \ ./$(DEPDIR)/statfs-statfs.Po ./$(DEPDIR)/statfs64.Po \ - ./$(DEPDIR)/status-all.Po ./$(DEPDIR)/status-failed-long.Po \ + ./$(DEPDIR)/status-all.Po \ + ./$(DEPDIR)/status-detached-threads.Po \ + ./$(DEPDIR)/status-failed-long.Po \ ./$(DEPDIR)/status-failed-status.Po \ ./$(DEPDIR)/status-failed.Po ./$(DEPDIR)/status-none-f.Po \ ./$(DEPDIR)/status-none-threads.Po ./$(DEPDIR)/status-none.Po \ ./$(DEPDIR)/status-successful-long.Po \ ./$(DEPDIR)/status-successful-status.Po \ + ./$(DEPDIR)/status-successful-threads.Po \ ./$(DEPDIR)/status-successful.Po \ ./$(DEPDIR)/status-unfinished-threads.Po \ ./$(DEPDIR)/status-unfinished.Po ./$(DEPDIR)/statx.Po \ @@ -7255,10 +7267,11 @@ sockopt-sol_socket-success-Xverbose.c sockopt-timestamp.c \ splice.c $(stack_fcall_SOURCES) $(stack_fcall_attach_SOURCES) \ $(stack_fcall_mangled_SOURCES) stat.c stat64.c statfs.c \ - statfs64.c status-all.c status-failed.c status-failed-long.c \ - status-failed-status.c status-none.c status-none-f.c \ - status-none-threads.c status-successful.c \ - status-successful-long.c status-successful-status.c \ + statfs64.c status-all.c status-detached-threads.c \ + status-failed.c status-failed-long.c status-failed-status.c \ + status-none.c status-none-f.c status-none-threads.c \ + status-successful.c status-successful-long.c \ + status-successful-status.c status-successful-threads.c \ status-unfinished.c status-unfinished-threads.c statx.c \ strace--decode-pids-comm.c strace--strings-in-hex.c \ strace--strings-in-hex-all.c \ @@ -7683,10 +7696,11 @@ sockopt-sol_socket-success-Xverbose.c sockopt-timestamp.c \ splice.c $(stack_fcall_SOURCES) $(stack_fcall_attach_SOURCES) \ $(stack_fcall_mangled_SOURCES) stat.c stat64.c statfs.c \ - statfs64.c status-all.c status-failed.c status-failed-long.c \ - status-failed-status.c status-none.c status-none-f.c \ - status-none-threads.c status-successful.c \ - status-successful-long.c status-successful-status.c \ + statfs64.c status-all.c status-detached-threads.c \ + status-failed.c status-failed-long.c status-failed-status.c \ + status-none.c status-none-f.c status-none-threads.c \ + status-successful.c status-successful-long.c \ + status-successful-status.c status-successful-threads.c \ status-unfinished.c status-unfinished-threads.c statx.c \ strace--decode-pids-comm.c strace--strings-in-hex.c \ strace--strings-in-hex-all.c \ @@ -9164,7 +9178,9 @@ pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 stat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 statfs_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 +status_detached_threads_LDADD = -lpthread $(LDADD) status_none_threads_LDADD = -lpthread $(LDADD) +status_successful_threads_LDADD = -lpthread $(LDADD) status_unfinished_threads_LDADD = -lpthread $(LDADD) threads_execve_LDADD = -lpthread $(clock_LIBS) $(LDADD) threads_execve__quiet_thread_execve_LDADD = -lpthread $(clock_LIBS) $(LDADD) @@ -9957,7 +9973,9 @@ sigblock.test \ sigign.test \ status-detached.test \ + status-detached-threads.test \ status-none-threads.test \ + status-successful-threads.test \ status-unfinished-threads.test \ strace--tips.test \ strace--tips-full.test \ @@ -14387,6 +14405,10 @@ @rm -f status-all$(EXEEXT) $(AM_V_CCLD)$(LINK) $(status_all_OBJECTS) $(status_all_LDADD) $(LIBS) +status-detached-threads$(EXEEXT): $(status_detached_threads_OBJECTS) $(status_detached_threads_DEPENDENCIES) $(EXTRA_status_detached_threads_DEPENDENCIES) + @rm -f status-detached-threads$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_detached_threads_OBJECTS) $(status_detached_threads_LDADD) $(LIBS) + status-failed$(EXEEXT): $(status_failed_OBJECTS) $(status_failed_DEPENDENCIES) $(EXTRA_status_failed_DEPENDENCIES) @rm -f status-failed$(EXEEXT) $(AM_V_CCLD)$(LINK) $(status_failed_OBJECTS) $(status_failed_LDADD) $(LIBS) @@ -14423,6 +14445,10 @@ @rm -f status-successful-status$(EXEEXT) $(AM_V_CCLD)$(LINK) $(status_successful_status_OBJECTS) $(status_successful_status_LDADD) $(LIBS) +status-successful-threads$(EXEEXT): $(status_successful_threads_OBJECTS) $(status_successful_threads_DEPENDENCIES) $(EXTRA_status_successful_threads_DEPENDENCIES) + @rm -f status-successful-threads$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_successful_threads_OBJECTS) $(status_successful_threads_LDADD) $(LIBS) + status-unfinished$(EXEEXT): $(status_unfinished_OBJECTS) $(status_unfinished_DEPENDENCIES) $(EXTRA_status_unfinished_DEPENDENCIES) @rm -f status-unfinished$(EXEEXT) $(AM_V_CCLD)$(LINK) $(status_unfinished_OBJECTS) $(status_unfinished_LDADD) $(LIBS) @@ -15918,6 +15944,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/statfs-statfs.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/statfs64.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-all.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-detached-threads.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-failed-long.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-failed-status.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-failed.Po@am__quote@ # am--include-marker @@ -15926,6 +15953,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-none.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-successful-long.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-successful-status.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-successful-threads.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-successful.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-unfinished-threads.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-unfinished.Po@am__quote@ # am--include-marker @@ -18257,6 +18285,7 @@ -rm -f ./$(DEPDIR)/statfs-statfs.Po -rm -f ./$(DEPDIR)/statfs64.Po -rm -f ./$(DEPDIR)/status-all.Po + -rm -f ./$(DEPDIR)/status-detached-threads.Po -rm -f ./$(DEPDIR)/status-failed-long.Po -rm -f ./$(DEPDIR)/status-failed-status.Po -rm -f ./$(DEPDIR)/status-failed.Po @@ -18265,6 +18294,7 @@ -rm -f ./$(DEPDIR)/status-none.Po -rm -f ./$(DEPDIR)/status-successful-long.Po -rm -f ./$(DEPDIR)/status-successful-status.Po + -rm -f ./$(DEPDIR)/status-successful-threads.Po -rm -f ./$(DEPDIR)/status-successful.Po -rm -f ./$(DEPDIR)/status-unfinished-threads.Po -rm -f ./$(DEPDIR)/status-unfinished.Po @@ -19504,6 +19534,7 @@ -rm -f ./$(DEPDIR)/statfs-statfs.Po -rm -f ./$(DEPDIR)/statfs64.Po -rm -f ./$(DEPDIR)/status-all.Po + -rm -f ./$(DEPDIR)/status-detached-threads.Po -rm -f ./$(DEPDIR)/status-failed-long.Po -rm -f ./$(DEPDIR)/status-failed-status.Po -rm -f ./$(DEPDIR)/status-failed.Po @@ -19512,6 +19543,7 @@ -rm -f ./$(DEPDIR)/status-none.Po -rm -f ./$(DEPDIR)/status-successful-long.Po -rm -f ./$(DEPDIR)/status-successful-status.Po + -rm -f ./$(DEPDIR)/status-successful-threads.Po -rm -f ./$(DEPDIR)/status-successful.Po -rm -f ./$(DEPDIR)/status-unfinished-threads.Po -rm -f ./$(DEPDIR)/status-unfinished.Po @@ -22999,7 +23031,7 @@ ksysent.h: $(srcdir)/ksysent.sed echo '#include ' | \ $(CPP) $(AM_CPPFLAGS) $(CPPFLAGS) -dM - > $@.t1 - LC_COLLATE=C sed -r -n -f $(srcdir)/ksysent.sed < $@.t1 > $@.t2 + LC_COLLATE=C sed -E -n -f $(srcdir)/ksysent.sed < $@.t1 > $@.t2 mv -f $@.t2 $@ rm -f $@.t1 diff -Nru strace-6.1/tests/membarrier.c strace-6.2/tests/membarrier.c --- strace-6.1/tests/membarrier.c 2022-03-26 09:00:00.000000000 +0100 +++ strace-6.2/tests/membarrier.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check decoding of membarrier syscall. * * Copyright (c) 2015-2017 Dmitry V. Levin - * Copyright (c) 2015-2022 The strace developers. + * Copyright (c) 2015-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -80,6 +80,16 @@ "MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ|" "MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ"; break; + case 2|4|8|16|128|256|512: + text = "MEMBARRIER_CMD_GLOBAL_EXPEDITED|" + "MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED|" + "MEMBARRIER_CMD_PRIVATE_EXPEDITED|" + "MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED|" + "MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ|" + "MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ|" + "MEMBARRIER_CMD_GET_REGISTRATIONS"; + break; + default: error_msg_and_fail("membarrier returned %#x, does" " the test have to be updated?", rc); diff -Nru strace-6.1/tests/msg_control.c strace-6.2/tests/msg_control.c --- strace-6.1/tests/msg_control.c 2021-11-05 09:00:00.000000000 +0100 +++ strace-6.2/tests/msg_control.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check decoding of struct msghdr ancillary data. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2021 The strace developers. + * Copyright (c) 2016-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -20,11 +20,7 @@ #include #include -#if defined HAVE_STRUCT___KERNEL_SOCK_TIMEVAL \ - || defined HAVE_STRUCT___KERNEL_TIMESPEC -# include -#endif - +#include "kernel_time_types.h" #include "kernel_timeval.h" #include "kernel_old_timespec.h" @@ -361,7 +357,6 @@ (unsigned long) len, rc, errno2name()); } -#ifdef HAVE_STRUCT___KERNEL_SOCK_TIMEVAL static void test_scm_timestamp_new(struct msghdr *const mh, void *const page) { @@ -408,9 +403,7 @@ (unsigned) cmsg->cmsg_len, (unsigned long) len, sprintrc(rc)); } -#endif /* HAVE_STRUCT___KERNEL_SOCK_TIMEVAL */ -#ifdef HAVE_STRUCT___KERNEL_TIMESPEC static void test_scm_timestampns_new(struct msghdr *const mh, void *const page) { @@ -512,7 +505,6 @@ (unsigned) cmsg->cmsg_len, (unsigned long) len, sprintrc(rc)); } -#endif /* HAVE_STRUCT___KERNEL_TIMESPEC */ static void print_security(const struct cmsghdr *const cmsg, const size_t cmsg_len) @@ -662,13 +654,9 @@ test_scm_timestamp_old(mh, page); test_scm_timestampns_old(mh, page); test_scm_timestamping_old(mh, page); -#ifdef HAVE_STRUCT___KERNEL_SOCK_TIMEVAL test_scm_timestamp_new(mh, page); -#endif -#ifdef HAVE_STRUCT___KERNEL_TIMESPEC test_scm_timestampns_new(mh, page); test_scm_timestamping_new(mh, page); -#endif test_unknown_type(mh, page, ARG_STR(SOL_SOCKET), "SCM_???"); } diff -Nru strace-6.1/tests/nlattr_ifla_brport.c strace-6.2/tests/nlattr_ifla_brport.c --- strace-6.1/tests/nlattr_ifla_brport.c 2022-06-18 20:00:00.000000000 +0200 +++ strace-6.2/tests/nlattr_ifla_brport.c 2023-02-26 09:00:00.000000000 +0100 @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2022 The strace developers. + * Copyright (c) 2017-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -39,7 +39,7 @@ { ENUM_KNOWN(0, IFLA_BRPORT_UNSPEC) }, { ENUM_KNOWN(0x18, IFLA_BRPORT_FLUSH) }, { ENUM_KNOWN(0x1a, IFLA_BRPORT_PAD) }, - { ARG_XLAT_UNKNOWN(0x28, "IFLA_BRPORT_???") }, + { ARG_XLAT_UNKNOWN(0x29, "IFLA_BRPORT_???") }, { ARG_XLAT_UNKNOWN(0xbad, "IFLA_BRPORT_???") }, }; for (size_t i = 0; i < ARRAY_SIZE(un_attrs); i++) { @@ -75,6 +75,7 @@ { ENUM_KNOWN(0x23, IFLA_BRPORT_MRP_RING_OPEN) }, { ENUM_KNOWN(0x24, IFLA_BRPORT_MRP_IN_OPEN) }, { ENUM_KNOWN(0x27, IFLA_BRPORT_LOCKED) }, + { ENUM_KNOWN(0x28, IFLA_BRPORT_MAB) }, }; void *nlh_u8 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN * 2 + sizeof(uint8_t)); diff -Nru strace-6.1/tests/nlattr_ifla_linkinfo.c strace-6.2/tests/nlattr_ifla_linkinfo.c --- strace-6.1/tests/nlattr_ifla_linkinfo.c 2022-08-11 12:07:09.000000000 +0200 +++ strace-6.2/tests/nlattr_ifla_linkinfo.c 2023-02-26 09:00:00.000000000 +0100 @@ -1,7 +1,7 @@ /* * IFLA_LINKINFO netlink attribute decoding check. * - * Copyright (c) 2018-2022 The strace developers. + * Copyright (c) 2018-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -897,7 +897,7 @@ { 0, "IFLA_BRPORT_UNSPEC" }, { 24, "IFLA_BRPORT_FLUSH" }, { 26, "IFLA_BRPORT_PAD" }, - { 40, "0x28 /* IFLA_BRPORT_??? */" }, + { 41, "0x29 /* IFLA_BRPORT_??? */" }, { 2989, "0xbad /* IFLA_BRPORT_??? */" }, }; @@ -940,6 +940,7 @@ { ARG_STR(IFLA_BRPORT_MRP_RING_OPEN) }, { ARG_STR(IFLA_BRPORT_MRP_IN_OPEN) }, { ARG_STR(IFLA_BRPORT_LOCKED) }, + { ARG_STR(IFLA_BRPORT_MAB) }, }; for (size_t k = 0; k < ARRAY_SIZE(u8_brport_attrs); k++) { diff -Nru strace-6.1/tests/nlattr_ndmsg.c strace-6.2/tests/nlattr_ndmsg.c --- strace-6.1/tests/nlattr_ndmsg.c 2022-08-07 10:00:00.000000000 +0200 +++ strace-6.2/tests/nlattr_ndmsg.c 2023-02-26 09:00:00.000000000 +0100 @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2022 The strace developers. + * Copyright (c) 2017-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -186,8 +186,10 @@ static const struct strval32 ntfe_flags[] = { { ARG_STR(0) }, { ARG_XLAT_KNOWN(0x1, "NTF_EXT_MANAGED") }, - { ARG_XLAT_KNOWN(0xdeadbeef, "NTF_EXT_MANAGED|0xdeadbeee") }, - { ARG_XLAT_UNKNOWN(0xfeedcafe, "NTF_EXT_???") }, + { ARG_XLAT_KNOWN(0x2, "NTF_EXT_LOCKED") }, + { ARG_XLAT_KNOWN(0xdeadbeef, "NTF_EXT_MANAGED|NTF_EXT_LOCKED" + "|0xdeadbeec") }, + { ARG_XLAT_UNKNOWN(0xfeedcafc, "NTF_EXT_???") }, }; for (size_t i = 0; i < ARRAY_SIZE(ntfe_flags); i++) { diff -Nru strace-6.1/tests/pc.test strace-6.2/tests/pc.test --- strace-6.1/tests/pc.test 2020-12-31 09:00:00.000000000 +0100 +++ strace-6.2/tests/pc.test 2023-02-26 09:00:00.000000000 +0100 @@ -3,7 +3,7 @@ # Check -i option. # # Copyright (c) 2015 Dmitry V. Levin -# Copyright (c) 2015-2020 The strace developers. +# Copyright (c) 2015-2023 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -18,19 +18,20 @@ $STRACE $args 2> "$LOG" || dump_log_and_fail_with "$STRACE $args failed" -len="$(sed -r -n 's/^\[[[:xdigit:]]+\] write\(-1, 0x8, ([[:digit:]]{1,2})\)[[:space:]]+= -1 .*/\1/p' "$LOG")" && +len="$(sed -E -n 's/^\[[[:xdigit:]]+\] write\(-1, 0x8, ([[:digit:]]{1,2})\)[[:space:]]+= -1 .*/\1/p' "$LOG")" && [ -n "$len" ] && -pid="$(sed -r -n 's/^\[[[:xdigit:]]{'"$len"'}\] --- SIGCHLD \{si_signo=SIGCHLD, si_code=CLD_(KILLED|DUMPED), si_pid=([[:digit:]]+), .*/\2/p' "$LOG")" && +pid="$(sed -E -n 's/^\[[[:xdigit:]]{'"$len"'}\] --- SIGCHLD \{si_signo=SIGCHLD, si_code=CLD_(KILLED|DUMPED), si_pid=([[:digit:]]+), .*/\2/p' "$LOG")" && [ -n "$pid" ] && -ip="$(sed -r -n 's/^\[pid +'"$pid"'\] \[([[:xdigit:]]{'"$len"'})] --- SIGSEGV \{.*\} ---$/\1/p' "$LOG")" && +ip="$(sed -E -n 's/^\[pid +'"$pid"'\] \[([[:xdigit:]]{'"$len"'})] --- SIGSEGV \{.*\} ---$/\1/p' "$LOG")" && [ -n "$ip" ] && -addr="$(echo "$ip" |sed -r 's/^0+//')" && +# strip the last nibble of the address. On hppa the lowest 2 bits encode the address space. +addr="$(echo "$ip" |sed -E 's/^0+//')" && addr=${addr%?} && [ -n "$addr" ] || dump_log_and_fail_with cat > "$EXP" << __EOF__ \\[[[:xdigit:]]{$len}\\] munmap\\(0x[[:xdigit:]]+, 0\\) += -1 .* -\\[pid +$pid\\] \\[$ip\\] --- SIGSEGV \\{si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x$addr\\} --- +\\[pid +$pid\\] \\[$ip\\] --- SIGSEGV \\{si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x$addr[[:xdigit:]]\\} --- \\[pid +$pid\\] \\[\\?{$len}\\] \\+\\+\\+ killed by SIGSEGV( \\(core dumped\\))? \\+\\+\\+ \\[\\?{$len}\\] \\+\\+\\+ exited with 0 \\+\\+\\+ __EOF__ diff -Nru strace-6.1/tests/ptrace.c strace-6.2/tests/ptrace.c --- strace-6.1/tests/ptrace.c 2022-10-03 10:00:00.000000000 +0200 +++ strace-6.2/tests/ptrace.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check decoding of ptrace syscall. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2022 The strace developers. + * Copyright (c) 2016-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -1836,7 +1836,7 @@ { ARG_XLAT_KNOWN(0x4, "TRAP_HWBKPT") }, #endif { ARG_XLAT_KNOWN(0x5, "TRAP_UNK"), "" -#ifdef __alpha__ +#if defined __alpha__ && defined HAVE_SIGINFO_T_SI_TRAPNO ", si_trapno=0 /* GEN_??? */" }, { ARG_XLAT_KNOWN(0x5, "TRAP_UNK"), @@ -1847,7 +1847,7 @@ ", si_trapno=-26 /* GEN_??? */" }, { ARG_XLAT_KNOWN(0x5, "TRAP_UNK"), "" ", si_trapno=-1234567890 /* GEN_??? */" -#endif /* __alpha__ */ +#endif /* __alpha__ && HAVE_SIGINFO_T_SI_TRAPNO */ }, { ARG_XLAT_KNOWN(0x6, "TRAP_PERF"), "" #ifdef HAVE_SIGINFO_T_SI_PERF_DATA @@ -1917,7 +1917,7 @@ switch (sip->si_code) { case 5: /* TRAP_UNK */ -#ifdef __alpha__ +#if defined __alpha__ && defined HAVE_SIGINFO_T_SI_TRAPNO sip->si_trapno = trap_unk_vecs[trap_unk_pos]; #endif trap_unk_pos = (trap_unk_pos + 1) @@ -1981,7 +1981,7 @@ do_ptrace(PTRACE_SETSIGINFO, pid, bad_request, (uintptr_t) sip); printf("ptrace(" XLAT_FMT ", %d, %#lx, {si_signo=" XLAT_FMT_U ", si_code=" XLAT_FMT ", si_errno=" XLAT_FMT_U ", si_addr=%p" -#ifdef __alpha__ +#if defined __alpha__ && defined HAVE_SIGINFO_T_SI_TRAPNO ", si_trapno=" XLAT_KNOWN(-7, "GEN_FLTINE") #endif "}) = %s\n", diff -Nru strace-6.1/tests/ptrace_syscall_info.c strace-6.2/tests/ptrace_syscall_info.c --- strace-6.1/tests/ptrace_syscall_info.c 2021-10-08 03:50:59.000000000 +0200 +++ strace-6.2/tests/ptrace_syscall_info.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check decoding of ptrace PTRACE_GET_SYSCALL_INFO request. * * Copyright (c) 2018 Dmitry V. Levin - * Copyright (c) 2018-2021 The strace developers. + * Copyright (c) 2018-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -132,52 +132,48 @@ memset((void *) buf, -1, size); long rc = do_ptrace(PTRACE_GET_SYSCALL_INFO, pid, size, buf); - if (rc < 0) { - printf("ptrace(" XLAT_FMT ", %d, %u, %#lx) = %s\n", - XLAT_ARGS(PTRACE_GET_SYSCALL_INFO), pid, - (unsigned int) size, buf, errstr); - return false; - } - if (rc < (long) expected_none_size) - FAIL("signal stop mismatch"); - printf("ptrace(" XLAT_FMT ", %d, %u, ", XLAT_ARGS(PTRACE_GET_SYSCALL_INFO), pid, size); - if (!size) { + if (rc < (long) expected_none_size || size == 0) printf("%#lx) = %s\n", buf, errstr); + + if (rc < 0) + return false; + if (rc < (long) expected_none_size) + FAIL("signal stop mismatch"); + if (size == 0) continue; - } /* copy to a local structure to avoid unaligned access */ struct_ptrace_syscall_info info; memcpy(&info, (void *) buf, MIN(size, expected_none_size)); + printf("{op=" XLAT_FMT, XLAT_ARGS(PTRACE_SYSCALL_INFO_NONE)); if (info.op != PTRACE_SYSCALL_INFO_NONE) FAIL("signal stop mismatch"); - printf("{op=" XLAT_FMT, XLAT_ARGS(PTRACE_SYSCALL_INFO_NONE)); if (size < offsetofend(struct_ptrace_syscall_info, arch)) goto printed_none; - if (!info.arch) - FAIL("signal stop mismatch"); printf(", arch="); printxval(audit_arch, info.arch, "AUDIT_ARCH_???"); + if (!info.arch) + FAIL("signal stop mismatch"); if (size < offsetofend(struct_ptrace_syscall_info, instruction_pointer)) goto printed_none; - if (!info.instruction_pointer) - FAIL("signal stop mismatch"); printf(", instruction_pointer=%#llx", (unsigned long long) info.instruction_pointer); + if (!info.instruction_pointer) + FAIL("signal stop mismatch"); if (size < offsetofend(struct_ptrace_syscall_info, stack_pointer)) goto printed_none; - if (!info.stack_pointer) - FAIL("signal stop mismatch"); printf(", stack_pointer=%#llx", (unsigned long long) info.stack_pointer); + if (!info.stack_pointer) + FAIL("signal stop mismatch"); printed_none: printf("}) = %s\n", errstr); @@ -195,59 +191,58 @@ memset((void *) buf, -1, size); long rc = do_ptrace(PTRACE_GET_SYSCALL_INFO, pid, size, buf); - if (rc < 0) - PFAIL("PTRACE_GET_SYSCALL_INFO"); - - if (rc < (long) expected_entry_size) - FAIL("#%d: entry stop mismatch", ptrace_stop); - printf("ptrace(" XLAT_FMT ", %d, %u, ", XLAT_ARGS(PTRACE_GET_SYSCALL_INFO), pid, size); - if (!size) { + if (rc < (long) expected_entry_size || size == 0) printf("%#lx) = %s\n", buf, errstr); + + if (rc < 0) + FAIL("PTRACE_GET_SYSCALL_INFO"); + if (rc < (long) expected_entry_size) + FAIL("#%d: entry stop mismatch", ptrace_stop); + if (size == 0) continue; - } /* copy to a local structure to avoid unaligned access */ struct_ptrace_syscall_info info; memcpy(&info, (void *) buf, MIN(size, expected_entry_size)); + printf("{op=" XLAT_FMT, XLAT_ARGS(PTRACE_SYSCALL_INFO_ENTRY)); if (info.op != PTRACE_SYSCALL_INFO_ENTRY) FAIL("#%d: entry stop mismatch", ptrace_stop); - printf("{op=" XLAT_FMT, XLAT_ARGS(PTRACE_SYSCALL_INFO_ENTRY)); if (size < offsetofend(struct_ptrace_syscall_info, arch)) goto printed_entry_common; - if (!info.arch) - FAIL("#%d: entry stop mismatch", ptrace_stop); printf(", arch="); printxval(audit_arch, info.arch, "AUDIT_ARCH_???"); + if (!info.arch) + FAIL("#%d: entry stop mismatch", ptrace_stop); if (size < offsetofend(struct_ptrace_syscall_info, instruction_pointer)) goto printed_entry_common; - if (!info.instruction_pointer) - FAIL("#%d: entry stop mismatch", ptrace_stop); printf(", instruction_pointer=%#llx", (unsigned long long) info.instruction_pointer); + if (!info.instruction_pointer) + FAIL("#%d: entry stop mismatch", ptrace_stop); if (size < offsetofend(struct_ptrace_syscall_info, stack_pointer)) goto printed_entry_common; - if (!info.stack_pointer) - FAIL("#%d: entry stop mismatch", ptrace_stop); printf(", stack_pointer=%#llx", (unsigned long long) info.stack_pointer); + if (!info.stack_pointer) + FAIL("#%d: entry stop mismatch", ptrace_stop); if (size < offsetofend(struct_ptrace_syscall_info, entry.nr)) goto printed_entry_common; - const unsigned long *exp_args = args[ptrace_stop / 2]; - if (info.entry.nr != exp_args[0]) - FAIL("#%d: entry stop mismatch", ptrace_stop); printf(", entry={nr=" NABBR("%llu") VERB(" /* ") NRAW("__NR_%s") VERB(" */"), XLAT_SEL((unsigned long long) info.entry.nr, sc_names[ptrace_stop / 2])); + const unsigned long *exp_args = args[ptrace_stop / 2]; + if (info.entry.nr != exp_args[0]) + FAIL("#%d: entry stop mismatch", ptrace_stop); for (unsigned int i = 0; i < ARRAY_SIZE(info.entry.args); ++i) { const unsigned int i_size = @@ -263,10 +258,10 @@ #else # define CAST #endif - if (CAST info.entry.args[i] != exp_args[i + 1]) - FAIL("#%d: entry stop mismatch", ptrace_stop); printf("%s%#llx", (i ? ", " : ", args=["), (unsigned long long) info.entry.args[i]); + if (CAST info.entry.args[i] != exp_args[i + 1]) + FAIL("#%d: entry stop mismatch", ptrace_stop); } printf("]"); @@ -287,49 +282,48 @@ memset((void *) buf, -1, size); long rc = do_ptrace(PTRACE_GET_SYSCALL_INFO, pid, size, buf); - if (rc < 0) - PFAIL("PTRACE_GET_SYSCALL_INFO"); - - if (rc < (long) expected_exit_size) - FAIL("#%d: exit stop mismatch", ptrace_stop); - printf("ptrace(" XLAT_FMT ", %d, %u, ", XLAT_ARGS(PTRACE_GET_SYSCALL_INFO), pid, size); - if (!size) { + if (rc < (long) expected_exit_size || size == 0) printf("%#lx) = %s\n", buf, errstr); + + if (rc < 0) + FAIL("PTRACE_GET_SYSCALL_INFO"); + if (rc < (long) expected_exit_size) + FAIL("#%d: exit stop mismatch", ptrace_stop); + if (size == 0) continue; - } /* copy to a local structure to avoid unaligned access */ struct_ptrace_syscall_info info; memcpy(&info, (void *) buf, MIN(size, expected_exit_size)); + printf("{op=" XLAT_FMT, XLAT_ARGS(PTRACE_SYSCALL_INFO_EXIT)); if (info.op != PTRACE_SYSCALL_INFO_EXIT) FAIL("#%d: exit stop mismatch", ptrace_stop); - printf("{op=" XLAT_FMT, XLAT_ARGS(PTRACE_SYSCALL_INFO_EXIT)); if (size < offsetofend(struct_ptrace_syscall_info, arch)) goto printed_exit_common; - if (!info.arch) - FAIL("#%d: exit stop mismatch", ptrace_stop); printf(", arch="); printxval(audit_arch, info.arch, "AUDIT_ARCH_???"); + if (!info.arch) + FAIL("#%d: exit stop mismatch", ptrace_stop); if (size < offsetofend(struct_ptrace_syscall_info, instruction_pointer)) goto printed_exit_common; - if (!info.instruction_pointer) - FAIL("#%d: exit stop mismatch", ptrace_stop); printf(", instruction_pointer=%#llx", (unsigned long long) info.instruction_pointer); + if (!info.instruction_pointer) + FAIL("#%d: exit stop mismatch", ptrace_stop); if (size < offsetofend(struct_ptrace_syscall_info, stack_pointer)) goto printed_exit_common; - if (!info.stack_pointer) - FAIL("#%d: exit stop mismatch", ptrace_stop); printf(", stack_pointer=%#llx", (unsigned long long) info.stack_pointer); + if (!info.stack_pointer) + FAIL("#%d: exit stop mismatch", ptrace_stop); const struct { unsigned int is_error; @@ -342,20 +336,20 @@ if (size < offsetofend(struct_ptrace_syscall_info, exit.rval)) goto printed_exit_common; - if (info.exit.rval != exp_param->rval) - FAIL("#%d: exit stop mismatch", ptrace_stop); if (size >= expected_exit_size && info.exit.is_error) { printf(", exit={rval=" XLAT_FMT_D, XLAT_SEL(exp_param->rval, exp_param->str)); } else { printf(", exit={rval=%lld", (long long) info.exit.rval); } + if (info.exit.rval != exp_param->rval) + FAIL("#%d: exit stop mismatch", ptrace_stop); if (size >= expected_exit_size) { - if (info.exit.is_error != exp_param->is_error) - FAIL("#%d: exit stop mismatch", ptrace_stop); printf(", is_error=%u", (unsigned int) info.exit.is_error); + if (info.exit.is_error != exp_param->is_error) + FAIL("#%d: exit stop mismatch", ptrace_stop); } printf("}"); diff -Nru strace-6.1/tests/sockopt-timestamp.c strace-6.2/tests/sockopt-timestamp.c --- strace-6.1/tests/sockopt-timestamp.c 2021-08-31 10:00:00.000000000 +0200 +++ strace-6.2/tests/sockopt-timestamp.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check decoding of timestamp control messages. * * Copyright (c) 2019 Dmitry V. Levin - * Copyright (c) 2019-2021 The strace developers. + * Copyright (c) 2019-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -19,11 +19,7 @@ # include # include -# if defined HAVE_STRUCT___KERNEL_SOCK_TIMEVAL \ - || defined HAVE_STRUCT___KERNEL_TIMESPEC -# include -# endif - +# include "kernel_time_types.h" # include "kernel_timeval.h" # include "kernel_old_timespec.h" @@ -110,7 +106,6 @@ (long long) ts.tv_sec, (long long) ts.tv_nsec); } -# ifdef HAVE_STRUCT___KERNEL_SOCK_TIMEVAL static void print_timestamp_new(const struct cmsghdr *c) { @@ -129,9 +124,7 @@ printf("{tv_sec=%lld, tv_usec=%lld}", (long long) tv.tv_sec, (long long) tv.tv_usec); } -# endif /* HAVE_STRUCT___KERNEL_SOCK_TIMEVAL */ -# ifdef HAVE_STRUCT___KERNEL_TIMESPEC static void print_timestampns_new(const struct cmsghdr *c) { @@ -150,7 +143,6 @@ printf("{tv_sec=%lld, tv_nsec=%lld}", (long long) ts.tv_sec, (long long) ts.tv_nsec); } -# endif /* HAVE_STRUCT___KERNEL_TIMESPEC */ static unsigned int test_sockopt(int so_val, const char *str, void (*fun)(const struct cmsghdr *)) @@ -243,12 +235,8 @@ } tests[] = { { SO_TIMESTAMP_OLD, "SO_TIMESTAMP_OLD", print_timestamp_old }, { SO_TIMESTAMPNS_OLD, "SO_TIMESTAMPNS_OLD", print_timestampns_old }, -# ifdef HAVE_STRUCT___KERNEL_SOCK_TIMEVAL { SO_TIMESTAMP_NEW, "SO_TIMESTAMP_NEW", print_timestamp_new }, -# endif -# ifdef HAVE_STRUCT___KERNEL_TIMESPEC { SO_TIMESTAMPNS_NEW, "SO_TIMESTAMPNS_NEW", print_timestampns_new }, -# endif }; unsigned int tested = 0; for (unsigned int i = 0; i < ARRAY_SIZE(tests); ++i) diff -Nru strace-6.1/tests/status-detached-threads.c strace-6.2/tests/status-detached-threads.c --- strace-6.1/tests/status-detached-threads.c 1970-01-01 01:00:00.000000000 +0100 +++ strace-6.2/tests/status-detached-threads.c 2022-12-28 09:00:00.000000000 +0100 @@ -0,0 +1,56 @@ +/* + * Check status=detached filtering when a non-leader thread invokes execve. + * + * Copyright (c) 2019 Paul Chaignon + * Copyright (c) 2022 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#include +#include +#include +#include +#include + +static void * +thread(void *arg) +{ + struct timespec ts = { .tv_nsec = 100000000 }; + nanosleep(&ts, 0); + + char *argv[] = {((char **) arg)[0], (char *) "0", NULL}; + pid_t pid = getpid(); + pid_t tid = syscall(__NR_gettid); + + printf("%-5d execve(\"%s\", [\"%s\", \"0\"], NULL \n" + "%-5d +++ superseded by execve in pid %u +++\n" + "%-5d +++ exited with 0 +++\n", + tid, argv[0], argv[0], pid, pid, tid, pid); + + execve(argv[0], argv, NULL); + perror_msg_and_fail("execve"); +} + +int +main(int ac, char **av) +{ + setvbuf(stdout, NULL, _IONBF, 0); + + if (ac > 1) + return 0; + + pthread_t t; + errno = pthread_create(&t, NULL, thread, av); + if (errno) + perror_msg_and_fail("pthread_create"); + + struct timespec ts = { .tv_sec = 123 }; + nanosleep(&ts, 0); + + return 1; +} diff -Nru strace-6.1/tests/status-detached-threads.test strace-6.2/tests/status-detached-threads.test --- strace-6.1/tests/status-detached-threads.test 1970-01-01 01:00:00.000000000 +0100 +++ strace-6.2/tests/status-detached-threads.test 2022-12-28 09:00:00.000000000 +0100 @@ -0,0 +1,16 @@ +#!/bin/sh +# +# Check status=detached filtering when a non-leader thread invokes execve. +# +# Copyright (c) 2019-2022 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +# Check that PTRACE_EVENT_EXEC support in kernel is good enough. +# The kernel before commit v3.1-rc1~308^2~7 reported 0 instead of old pid. +require_min_kernel_version_or_skip 3.1 + +run_strace_match_diff -f --status=detached --trace=execve,/sleep diff -Nru strace-6.1/tests/status-successful-threads.c strace-6.2/tests/status-successful-threads.c --- strace-6.1/tests/status-successful-threads.c 1970-01-01 01:00:00.000000000 +0100 +++ strace-6.2/tests/status-successful-threads.c 2022-12-29 09:00:00.000000000 +0100 @@ -0,0 +1,71 @@ +/* + * Check status=successful filtering when a non-leader thread invokes execve. + * + * Copyright (c) 2019 Paul Chaignon + * Copyright (c) 2022 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#include +#include +#include +#include +#include + +static pid_t leader; + +static void * +thread_exec(void *arg) +{ + pid_t tid = syscall(__NR_gettid); + printf("%-5d +++ superseded by execve in pid %u +++\n", + leader, tid); + + char *argv[] = {((char **) arg)[0], (char *) "0", NULL}; + execve(argv[0], argv, NULL); + perror_msg_and_fail("execve"); +} + +int +main(int ac, char **av) +{ + if (ac > 1) + return 0; + + int fds[2]; + if (pipe(fds)) + perror_msg_and_fail("pipe"); + + pid_t child = fork(); + if (child < 0) + perror_msg_and_fail("fork"); + + leader = getpid(); + setvbuf(stdout, NULL, _IONBF, 0); + + if (!child) { + close(fds[0]); + pthread_t thre; + errno = pthread_create(&thre, NULL, thread_exec, av); + if (errno) + perror_msg_and_fail("pthread_create"); + for (;;) { /* wait for execve */ } + return 1; + } + + close(fds[1]); + unsigned int len = sizeof(fds[1]); + struct iovec rio = { .iov_base = &fds[1], .iov_len = len }; + if (readv(fds[0], &rio, 1)) + perror_msg_and_fail("readv"); + + printf("%-5d readv(%d, [{iov_base=\"\", iov_len=%u}], 1) = 0\n" + "%-5d +++ exited with 0 +++\n", + leader, fds[0], len, leader); + return 0; +} diff -Nru strace-6.1/tests/status-successful-threads.test strace-6.2/tests/status-successful-threads.test --- strace-6.1/tests/status-successful-threads.test 1970-01-01 01:00:00.000000000 +0100 +++ strace-6.2/tests/status-successful-threads.test 2022-12-29 09:00:00.000000000 +0100 @@ -0,0 +1,16 @@ +#!/bin/sh +# +# Check status=successful filtering when a non-leader thread invokes execve. +# +# Copyright (c) 2019-2022 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +# Check that PTRACE_EVENT_EXEC support in kernel is good enough. +# The kernel before commit v3.1-rc1~308^2~7 reported 0 instead of old pid. +require_min_kernel_version_or_skip 3.1 + +run_strace_match_diff -f -z --signal=none --trace=readv diff -Nru strace-6.1/tests/strace-S.test strace-6.2/tests/strace-S.test --- strace-6.1/tests/strace-S.test 2020-03-23 04:19:09.000000000 +0100 +++ strace-6.2/tests/strace-S.test 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ # # Check -S option. # -# Copyright (c) 2016-2020 The strace developers. +# Copyright (c) 2016-2023 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -19,7 +19,7 @@ sedexpr="$1"; shift run_strace -c -w $sortby ../readv > /dev/null - sed -r -n -e "$sedexpr" < "$LOG" > "$OUT" + sed -E -n -e "$sedexpr" < "$LOG" > "$OUT" [ -s "$OUT" ] || fail_ "$STRACE $args output mismatch" diff -Nru strace-6.1/tests-m32/bpf.c strace-6.2/tests-m32/bpf.c --- strace-6.1/tests-m32/bpf.c 2022-12-11 09:00:00.000000000 +0100 +++ strace-6.2/tests-m32/bpf.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check bpf syscall decoding. * * Copyright (c) 2015-2017 Dmitry V. Levin - * Copyright (c) 2015-2022 The strace developers. + * Copyright (c) 2015-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -272,7 +272,7 @@ attr->map_ifindex = ifindex_lo(); } -static_assert(ARRAY_SIZE(bpf_map_types_xdata) == 32, +static_assert(ARRAY_SIZE(bpf_map_types_xdata) == 33, "The map_type for tests 1 and 2 below needs to be updated"); static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { { @@ -283,7 +283,7 @@ }, { /* 1 */ .data = { .BPF_MAP_CREATE_data = { - .map_type = 31, + .map_type = 32, .key_size = 4, .value_size = 8, .max_entries = 256, @@ -293,7 +293,7 @@ .map_name = "0123456789abcde", } }, .size = offsetof(struct BPF_MAP_CREATE_struct, map_name) + 8, - .str = "map_type=BPF_MAP_TYPE_USER_RINGBUF, key_size=4" + .str = "map_type=BPF_MAP_TYPE_CGRP_STORAGE, key_size=4" ", value_size=8, max_entries=256" ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NO_COMMON_LRU" "|BPF_F_NUMA_NODE|BPF_F_RDONLY|BPF_F_WRONLY" @@ -305,7 +305,7 @@ }, { /* 2 */ .data = { .BPF_MAP_CREATE_data = { - .map_type = 32, + .map_type = 33, .key_size = 0xface1e55, .value_size = 0xbadc0ded, .max_entries = 0xbeefcafe, @@ -316,7 +316,7 @@ .map_ifindex = 3141592653, } }, .size = offsetofend(struct BPF_MAP_CREATE_struct, map_ifindex), - .str = "map_type=0x20 /* BPF_MAP_TYPE_??? */" + .str = "map_type=0x21 /* BPF_MAP_TYPE_??? */" ", key_size=4207812181, value_size=3134983661" ", max_entries=3203386110" ", map_flags=0xffffe000 /* BPF_F_??? */" diff -Nru strace-6.1/tests-m32/fanotify_mark.c strace-6.2/tests-m32/fanotify_mark.c --- strace-6.1/tests-m32/fanotify_mark.c 2022-10-09 10:00:00.000000000 +0200 +++ strace-6.2/tests-m32/fanotify_mark.c 2023-02-26 09:00:00.000000000 +0100 @@ -3,7 +3,7 @@ * * Copyright (c) 2015-2016 Dmitry V. Levin * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2015-2022 The strace developers. + * Copyright (c) 2015-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -51,12 +51,7 @@ || defined LINUX_MIPSN32 mask, # else -/* arch/parisc/kernel/sys_parisc32.c, commit ab8a261b */ -# ifdef HPPA - LL_VAL_TO_PAIR((mask << 32) | (mask >> 32)), -# else LL_VAL_TO_PAIR(mask), -# endif # endif dirfd, path); diff -Nru strace-6.1/tests-m32/init.sh strace-6.2/tests-m32/init.sh --- strace-6.1/tests-m32/init.sh 2022-07-19 10:12:24.000000000 +0200 +++ strace-6.2/tests-m32/init.sh 2023-02-26 09:00:00.000000000 +0100 @@ -1,7 +1,7 @@ #!/bin/sh # # Copyright (c) 2011-2016 Dmitry V. Levin -# Copyright (c) 2011-2022 The strace developers. +# Copyright (c) 2011-2023 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -38,7 +38,7 @@ # in the CONFIG_H variable). get_config_str() { - sed -r -n 's/#define[[:space:]]*'"$1"'[[:space:]]*"([^"]*)".*/\1/p' \ + sed -E -n 's/#define[[:space:]]*'"$1"'[[:space:]]*"([^"]*)".*/\1/p' \ "$CONFIG_H" } @@ -50,7 +50,7 @@ get_config_option() { local opt - opt=$(sed -r -n 's/#define[[:space:]]*'"$1"'[[:space:]]*([0-9]+)$/\1/p' \ + opt=$(sed -E -n 's/#define[[:space:]]*'"$1"'[[:space:]]*([0-9]+)$/\1/p' \ "$CONFIG_H") if [ -n "$opt" -a "$opt" -ne 0 ]; then printf "%s" "$2" diff -Nru strace-6.1/tests-m32/ioctl_kd.c strace-6.2/tests-m32/ioctl_kd.c --- strace-6.1/tests-m32/ioctl_kd.c 2021-11-07 09:00:00.000000000 +0100 +++ strace-6.2/tests-m32/ioctl_kd.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,6 +2,7 @@ * This file is part of ioctl_kd strace test. * * Copyright (c) 2019-2021 Eugene Syromyatnikov + * Copyright (c) 2019-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -359,6 +360,25 @@ errno = saved_errno; printf("}) = " RETVAL); } + + if (DEFAULT_STRLEN < sizeof(kbse->kb_string) && + (RETVAL_INJECTED || c == KDSKBSENT)) { + /* + * Check how struct kbsentry.kb_string is printed when it + * starts DEFAULT_STRLEN / 2 bytes before the page boundary. + */ + struct kbsentry *const k = + tail_alloc(get_page_size() + + DEFAULT_STRLEN / 2 + sizeof(k->kb_func)); + fill_memory_ex(k->kb_string, DEFAULT_STRLEN - 1, '0', 10); + k->kb_string[DEFAULT_STRLEN - 1] = '\0'; + + sys_ioctl(-1, c, (uintptr_t) k); + printf("ioctl(-1, " XLAT_FMT ", {kb_func=" + XLAT_KNOWN(0xff, "KVAL(K_UNDO)") + ", kb_string=\"%s\"}) = " RETVAL, + XLAT_SEL(c, s), k->kb_string); + } } /* KDGKBDIACR, KDSKBDIACR */ diff -Nru strace-6.1/tests-m32/ioctl_termios.c strace-6.2/tests-m32/ioctl_termios.c --- strace-6.1/tests-m32/ioctl_termios.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/tests-m32/ioctl_termios.c 2023-02-20 09:00:00.000000000 +0100 @@ -860,7 +860,8 @@ const char *cmd_str; bool write; bool can_fail; - } cmds[6]; + bool pass_invalid_fd; + } cmds[9]; struct { kernel_ulong_t data; const char *data_str; @@ -889,22 +890,33 @@ #endif { { - /* XXX */ + /* + * If the fd is valid and points to a tty, + * the potential ioctl command collision is resolved. + */ + { ARG_STR(TCSETS), true }, + { ARG_STR(TCSETSW), true }, + { ARG_STR(TCSETSF), true }, + + /* + * If the fd is invalid, it is impossible + * to distinguish the overlapping ioctl commands. + */ { TCSETS, #if IOCTL_CLASHED "SNDCTL_TMR_START or " #endif - "TCSETS", true }, + "TCSETS", true, true, true }, { TCSETSW, #if IOCTL_CLASHED "SNDCTL_TMR_STOP or " #endif - "TCSETSW", true }, + "TCSETSW", true, true, true }, { TCSETSF, #if IOCTL_CLASHED "SNDCTL_TMR_CONTINUE or " #endif - "TCSETSF", true }, + "TCSETSF", true, true, true }, { ARG_STR(TCGETS), false }, { ARG_STR(TIOCSLCKTRMIOS), true, true }, @@ -963,7 +975,7 @@ do_ioctl(checks[i].cmds[j].cmd, checks[i].cmds[j].cmd_str, - ret, + checks[i].cmds[j].pass_invalid_fd? -1: ret, checks[i].printer, checks[i].args[k].data, checks[i].args[k].valid, diff -Nru strace-6.1/tests-m32/ioctl_v4l2-success.c strace-6.2/tests-m32/ioctl_v4l2-success.c --- strace-6.1/tests-m32/ioctl_v4l2-success.c 2021-06-29 07:00:00.000000000 +0200 +++ strace-6.2/tests-m32/ioctl_v4l2-success.c 2023-02-26 09:00:00.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2021 The strace developers. + * Copyright (c) 2018-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -1080,7 +1080,7 @@ }; static const struct strval32 ctrl_flags[] = { { ARG_STR(0) }, - { ARG_XLAT_KNOWN(0x7ff, "V4L2_CTRL_FLAG_DISABLED" + { ARG_XLAT_KNOWN(0xfff, "V4L2_CTRL_FLAG_DISABLED" "|V4L2_CTRL_FLAG_GRABBED" "|V4L2_CTRL_FLAG_READ_ONLY" "|V4L2_CTRL_FLAG_UPDATE" @@ -1090,15 +1090,17 @@ "|V4L2_CTRL_FLAG_VOLATILE" "|V4L2_CTRL_FLAG_HAS_PAYLOAD" "|V4L2_CTRL_FLAG_EXECUTE_ON_WRITE" - "|V4L2_CTRL_FLAG_MODIFY_LAYOUT") }, + "|V4L2_CTRL_FLAG_MODIFY_LAYOUT" + "|V4L2_CTRL_FLAG_DYNAMIC_ARRAY") }, { ARG_XLAT_KNOWN(0xbeefface, "V4L2_CTRL_FLAG_GRABBED" "|V4L2_CTRL_FLAG_READ_ONLY" "|V4L2_CTRL_FLAG_UPDATE" "|V4L2_CTRL_FLAG_WRITE_ONLY" "|V4L2_CTRL_FLAG_VOLATILE" "|V4L2_CTRL_FLAG_EXECUTE_ON_WRITE" - "|0xbeeff800") }, - { ARG_XLAT_UNKNOWN(0xfffff800, "V4L2_CTRL_FLAG_???") }, + "|V4L2_CTRL_FLAG_DYNAMIC_ARRAY" + "|0xbeeff000") }, + { ARG_XLAT_UNKNOWN(0xfffff000, "V4L2_CTRL_FLAG_???") }, }; static const size_t qctrl_iters = MAX(MAX(ARRAY_SIZE(cids), ARRAY_SIZE(ctrl_types)), diff -Nru strace-6.1/tests-m32/io_uring_register.c strace-6.2/tests-m32/io_uring_register.c --- strace-6.1/tests-m32/io_uring_register.c 2022-11-26 09:00:00.000000000 +0100 +++ strace-6.2/tests-m32/io_uring_register.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check decoding of io_uring_register syscall. * * Copyright (c) 2019 Dmitry V. Levin - * Copyright (c) 2019-2022 The strace developers. + * Copyright (c) 2019-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -16,6 +16,9 @@ #include #include #include + +#include "kernel_time_types.h" +#define UAPI_LINUX_IO_URING_H_SKIP_LINUX_TIME_TYPES_H #include /* From tests/bpf.c */ diff -Nru strace-6.1/tests-m32/io_uring_setup.c strace-6.2/tests-m32/io_uring_setup.c --- strace-6.1/tests-m32/io_uring_setup.c 2022-08-07 10:00:00.000000000 +0200 +++ strace-6.2/tests-m32/io_uring_setup.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check decoding of io_uring_setup syscall. * * Copyright (c) 2019 Dmitry V. Levin - * Copyright (c) 2019-2022 The strace developers. + * Copyright (c) 2019-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -16,6 +16,9 @@ #include #include #include + +#include "kernel_time_types.h" +#define UAPI_LINUX_IO_URING_H_SKIP_LINUX_TIME_TYPES_H #include #include diff -Nru strace-6.1/tests-m32/ksysent.sed strace-6.2/tests-m32/ksysent.sed --- strace-6.1/tests-m32/ksysent.sed 2019-09-25 03:02:03.000000000 +0200 +++ strace-6.2/tests-m32/ksysent.sed 2023-02-26 09:00:00.000000000 +0100 @@ -1,6 +1,6 @@ -#!/bin/sed -rnf +#!/bin/sed -Enf # -# Copyright (c) 2015-2019 The strace developers. +# Copyright (c) 2015-2023 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later diff -Nru strace-6.1/tests-m32/landlock_add_rule.c strace-6.2/tests-m32/landlock_add_rule.c --- strace-6.1/tests-m32/landlock_add_rule.c 2022-08-07 10:00:00.000000000 +0200 +++ strace-6.2/tests-m32/landlock_add_rule.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check decoding of landlock_add_rule syscall. * * Copyright (c) 2021 Eugene Syromyatnikov - * Copyright (c) 2021-2022 The strace developers. + * Copyright (c) 2021-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -102,8 +102,8 @@ const char *str; } attr_vals[] = { { ARG_STR(LANDLOCK_ACCESS_FS_EXECUTE) }, - { ARG_ULL_STR(LANDLOCK_ACCESS_FS_EXECUTE|LANDLOCK_ACCESS_FS_READ_FILE|LANDLOCK_ACCESS_FS_READ_DIR|LANDLOCK_ACCESS_FS_REMOVE_FILE|LANDLOCK_ACCESS_FS_MAKE_CHAR|LANDLOCK_ACCESS_FS_MAKE_DIR|LANDLOCK_ACCESS_FS_MAKE_SOCK|LANDLOCK_ACCESS_FS_MAKE_FIFO|LANDLOCK_ACCESS_FS_MAKE_BLOCK|LANDLOCK_ACCESS_FS_MAKE_SYM|LANDLOCK_ACCESS_FS_REFER|0xdebeefeddecac000) }, - { ARG_ULL_STR(0xdebeefeddecac000) + { ARG_ULL_STR(LANDLOCK_ACCESS_FS_EXECUTE|LANDLOCK_ACCESS_FS_READ_FILE|LANDLOCK_ACCESS_FS_READ_DIR|LANDLOCK_ACCESS_FS_REMOVE_FILE|LANDLOCK_ACCESS_FS_MAKE_CHAR|LANDLOCK_ACCESS_FS_MAKE_DIR|LANDLOCK_ACCESS_FS_MAKE_SOCK|LANDLOCK_ACCESS_FS_MAKE_FIFO|LANDLOCK_ACCESS_FS_MAKE_BLOCK|LANDLOCK_ACCESS_FS_MAKE_SYM|LANDLOCK_ACCESS_FS_REFER|LANDLOCK_ACCESS_FS_TRUNCATE|0xdebeefeddeca8000) }, + { ARG_ULL_STR(0xdebeefeddeca8000) " /* LANDLOCK_ACCESS_FS_??? */" }, }; static const struct { diff -Nru strace-6.1/tests-m32/landlock_create_ruleset.c strace-6.2/tests-m32/landlock_create_ruleset.c --- strace-6.1/tests-m32/landlock_create_ruleset.c 2022-08-07 10:00:00.000000000 +0200 +++ strace-6.2/tests-m32/landlock_create_ruleset.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check decoding of landlock_create_ruleset syscall. * * Copyright (c) 2021 Eugene Syromyatnikov - * Copyright (c) 2021-2022 The strace developers. + * Copyright (c) 2021-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -123,8 +123,8 @@ const char *str; } attr_vals[] = { { ARG_STR(LANDLOCK_ACCESS_FS_EXECUTE) }, - { ARG_ULL_STR(LANDLOCK_ACCESS_FS_EXECUTE|LANDLOCK_ACCESS_FS_READ_FILE|LANDLOCK_ACCESS_FS_READ_DIR|LANDLOCK_ACCESS_FS_REMOVE_FILE|LANDLOCK_ACCESS_FS_MAKE_CHAR|LANDLOCK_ACCESS_FS_MAKE_DIR|LANDLOCK_ACCESS_FS_MAKE_SOCK|LANDLOCK_ACCESS_FS_MAKE_FIFO|LANDLOCK_ACCESS_FS_MAKE_BLOCK|LANDLOCK_ACCESS_FS_MAKE_SYM|LANDLOCK_ACCESS_FS_REFER|0xdebeefeddecac000) }, - { ARG_ULL_STR(0xdebeefeddecac000) + { ARG_ULL_STR(LANDLOCK_ACCESS_FS_EXECUTE|LANDLOCK_ACCESS_FS_READ_FILE|LANDLOCK_ACCESS_FS_READ_DIR|LANDLOCK_ACCESS_FS_REMOVE_FILE|LANDLOCK_ACCESS_FS_MAKE_CHAR|LANDLOCK_ACCESS_FS_MAKE_DIR|LANDLOCK_ACCESS_FS_MAKE_SOCK|LANDLOCK_ACCESS_FS_MAKE_FIFO|LANDLOCK_ACCESS_FS_MAKE_BLOCK|LANDLOCK_ACCESS_FS_MAKE_SYM|LANDLOCK_ACCESS_FS_REFER|LANDLOCK_ACCESS_FS_TRUNCATE|0xdebeefeddeca8000) }, + { ARG_ULL_STR(0xdebeefeddeca8000) " /* LANDLOCK_ACCESS_FS_??? */" }, }; static const kernel_ulong_t sizes[] = { 8, 12, 16 }; diff -Nru strace-6.1/tests-m32/Makefile.am strace-6.2/tests-m32/Makefile.am --- strace-6.1/tests-m32/Makefile.am 2022-12-12 19:28:55.000000000 +0100 +++ strace-6.2/tests-m32/Makefile.am 2023-02-26 22:20:51.000000000 +0100 @@ -1,7 +1,7 @@ # Automake input for strace tests. # # Copyright (c) 2011-2016 Dmitry V. Levin -# Copyright (c) 2011-2022 The strace developers. +# Copyright (c) 2011-2023 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -152,9 +152,7 @@ fsync-y \ get_process_reaper \ getpgrp--pidns-translation \ - getpid \ getpid--pidns-translation \ - getppid \ getsid--pidns-translation \ gettid \ gettid--pidns-translation \ @@ -376,7 +374,9 @@ stack-fcall \ stack-fcall-attach \ stack-fcall-mangled \ + status-detached-threads \ status-none-threads \ + status-successful-threads \ status-unfinished-threads \ strace--decode-pids-comm \ strace-Y-0123456789 \ @@ -435,7 +435,9 @@ pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 stat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 statfs_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 +status_detached_threads_LDADD = -lpthread $(LDADD) status_none_threads_LDADD = -lpthread $(LDADD) +status_successful_threads_LDADD = -lpthread $(LDADD) status_unfinished_threads_LDADD = -lpthread $(LDADD) threads_execve_LDADD = -lpthread $(clock_LIBS) $(LDADD) threads_execve__quiet_thread_execve_LDADD = -lpthread $(clock_LIBS) $(LDADD) @@ -600,7 +602,9 @@ sigblock.test \ sigign.test \ status-detached.test \ + status-detached-threads.test \ status-none-threads.test \ + status-successful-threads.test \ status-unfinished-threads.test \ strace--tips.test \ strace--tips-full.test \ @@ -794,7 +798,7 @@ ksysent.h: $(srcdir)/ksysent.sed echo '#include ' | \ $(CPP) $(AM_CPPFLAGS) $(CPPFLAGS) -dM - > $@.t1 - LC_COLLATE=C sed -r -n -f $(srcdir)/ksysent.sed < $@.t1 > $@.t2 + LC_COLLATE=C sed -E -n -f $(srcdir)/ksysent.sed < $@.t1 > $@.t2 mv -f $@.t2 $@ rm -f $@.t1 diff -Nru strace-6.1/tests-m32/Makefile.in strace-6.2/tests-m32/Makefile.in --- strace-6.1/tests-m32/Makefile.in 2022-12-12 19:29:02.000000000 +0100 +++ strace-6.2/tests-m32/Makefile.in 2023-02-26 22:20:57.000000000 +0100 @@ -17,7 +17,7 @@ # Automake input for strace tests. # # Copyright (c) 2011-2016 Dmitry V. Levin -# Copyright (c) 2011-2022 The strace developers. +# Copyright (c) 2011-2023 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -134,8 +134,8 @@ filter-unavailable$(EXEEXT) filter_seccomp-flag$(EXEEXT) \ filter_seccomp-perf$(EXEEXT) fork--pidns-translation$(EXEEXT) \ fork-f$(EXEEXT) fsync-y$(EXEEXT) get_process_reaper$(EXEEXT) \ - getpgrp--pidns-translation$(EXEEXT) getpid$(EXEEXT) \ - getpid--pidns-translation$(EXEEXT) getppid$(EXEEXT) \ + getpgrp--pidns-translation$(EXEEXT) \ + getpid--pidns-translation$(EXEEXT) \ getsid--pidns-translation$(EXEEXT) gettid$(EXEEXT) \ gettid--pidns-translation$(EXEEXT) inject-nf$(EXEEXT) \ int_0x80$(EXEEXT) io_uring_register-success$(EXEEXT) \ @@ -308,7 +308,9 @@ sockopt-sol_socket-success-Xraw$(EXEEXT) \ sockopt-sol_socket-success-Xverbose$(EXEEXT) \ stack-fcall$(EXEEXT) stack-fcall-attach$(EXEEXT) \ - stack-fcall-mangled$(EXEEXT) status-none-threads$(EXEEXT) \ + stack-fcall-mangled$(EXEEXT) status-detached-threads$(EXEEXT) \ + status-none-threads$(EXEEXT) \ + status-successful-threads$(EXEEXT) \ status-unfinished-threads$(EXEEXT) \ strace--decode-pids-comm$(EXEEXT) strace-Y-0123456789$(EXEEXT) \ strace-p-Y-p2$(EXEEXT) strace-p1-Y-p$(EXEEXT) \ @@ -5504,6 +5506,9 @@ status_all_OBJECTS = status-all.$(OBJEXT) status_all_LDADD = $(LDADD) status_all_DEPENDENCIES = libtests.a $(am__DEPENDENCIES_1) +status_detached_threads_SOURCES = status-detached-threads.c +status_detached_threads_OBJECTS = status-detached-threads.$(OBJEXT) +status_detached_threads_DEPENDENCIES = $(am__DEPENDENCIES_2) status_failed_SOURCES = status-failed.c status_failed_OBJECTS = status-failed.$(OBJEXT) status_failed_LDADD = $(LDADD) @@ -5540,6 +5545,10 @@ status_successful_status_LDADD = $(LDADD) status_successful_status_DEPENDENCIES = libtests.a \ $(am__DEPENDENCIES_1) +status_successful_threads_SOURCES = status-successful-threads.c +status_successful_threads_OBJECTS = \ + status-successful-threads.$(OBJEXT) +status_successful_threads_DEPENDENCIES = $(am__DEPENDENCIES_2) status_unfinished_SOURCES = status-unfinished.c status_unfinished_OBJECTS = status-unfinished.$(OBJEXT) status_unfinished_LDADD = $(LDADD) @@ -6777,12 +6786,15 @@ ./$(DEPDIR)/stack-fcall-mangled.Po ./$(DEPDIR)/stack-fcall.Po \ ./$(DEPDIR)/stat.Po ./$(DEPDIR)/stat64-stat64.Po \ ./$(DEPDIR)/statfs-statfs.Po ./$(DEPDIR)/statfs64.Po \ - ./$(DEPDIR)/status-all.Po ./$(DEPDIR)/status-failed-long.Po \ + ./$(DEPDIR)/status-all.Po \ + ./$(DEPDIR)/status-detached-threads.Po \ + ./$(DEPDIR)/status-failed-long.Po \ ./$(DEPDIR)/status-failed-status.Po \ ./$(DEPDIR)/status-failed.Po ./$(DEPDIR)/status-none-f.Po \ ./$(DEPDIR)/status-none-threads.Po ./$(DEPDIR)/status-none.Po \ ./$(DEPDIR)/status-successful-long.Po \ ./$(DEPDIR)/status-successful-status.Po \ + ./$(DEPDIR)/status-successful-threads.Po \ ./$(DEPDIR)/status-successful.Po \ ./$(DEPDIR)/status-unfinished-threads.Po \ ./$(DEPDIR)/status-unfinished.Po ./$(DEPDIR)/statx.Po \ @@ -7256,10 +7268,11 @@ sockopt-sol_socket-success-Xverbose.c sockopt-timestamp.c \ splice.c $(stack_fcall_SOURCES) $(stack_fcall_attach_SOURCES) \ $(stack_fcall_mangled_SOURCES) stat.c stat64.c statfs.c \ - statfs64.c status-all.c status-failed.c status-failed-long.c \ - status-failed-status.c status-none.c status-none-f.c \ - status-none-threads.c status-successful.c \ - status-successful-long.c status-successful-status.c \ + statfs64.c status-all.c status-detached-threads.c \ + status-failed.c status-failed-long.c status-failed-status.c \ + status-none.c status-none-f.c status-none-threads.c \ + status-successful.c status-successful-long.c \ + status-successful-status.c status-successful-threads.c \ status-unfinished.c status-unfinished-threads.c statx.c \ strace--decode-pids-comm.c strace--strings-in-hex.c \ strace--strings-in-hex-all.c \ @@ -7684,10 +7697,11 @@ sockopt-sol_socket-success-Xverbose.c sockopt-timestamp.c \ splice.c $(stack_fcall_SOURCES) $(stack_fcall_attach_SOURCES) \ $(stack_fcall_mangled_SOURCES) stat.c stat64.c statfs.c \ - statfs64.c status-all.c status-failed.c status-failed-long.c \ - status-failed-status.c status-none.c status-none-f.c \ - status-none-threads.c status-successful.c \ - status-successful-long.c status-successful-status.c \ + statfs64.c status-all.c status-detached-threads.c \ + status-failed.c status-failed-long.c status-failed-status.c \ + status-none.c status-none-f.c status-none-threads.c \ + status-successful.c status-successful-long.c \ + status-successful-status.c status-successful-threads.c \ status-unfinished.c status-unfinished-threads.c statx.c \ strace--decode-pids-comm.c strace--strings-in-hex.c \ strace--strings-in-hex-all.c \ @@ -9165,7 +9179,9 @@ pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 stat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 statfs_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 +status_detached_threads_LDADD = -lpthread $(LDADD) status_none_threads_LDADD = -lpthread $(LDADD) +status_successful_threads_LDADD = -lpthread $(LDADD) status_unfinished_threads_LDADD = -lpthread $(LDADD) threads_execve_LDADD = -lpthread $(clock_LIBS) $(LDADD) threads_execve__quiet_thread_execve_LDADD = -lpthread $(clock_LIBS) $(LDADD) @@ -9958,7 +9974,9 @@ sigblock.test \ sigign.test \ status-detached.test \ + status-detached-threads.test \ status-none-threads.test \ + status-successful-threads.test \ status-unfinished-threads.test \ strace--tips.test \ strace--tips-full.test \ @@ -14388,6 +14406,10 @@ @rm -f status-all$(EXEEXT) $(AM_V_CCLD)$(LINK) $(status_all_OBJECTS) $(status_all_LDADD) $(LIBS) +status-detached-threads$(EXEEXT): $(status_detached_threads_OBJECTS) $(status_detached_threads_DEPENDENCIES) $(EXTRA_status_detached_threads_DEPENDENCIES) + @rm -f status-detached-threads$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_detached_threads_OBJECTS) $(status_detached_threads_LDADD) $(LIBS) + status-failed$(EXEEXT): $(status_failed_OBJECTS) $(status_failed_DEPENDENCIES) $(EXTRA_status_failed_DEPENDENCIES) @rm -f status-failed$(EXEEXT) $(AM_V_CCLD)$(LINK) $(status_failed_OBJECTS) $(status_failed_LDADD) $(LIBS) @@ -14424,6 +14446,10 @@ @rm -f status-successful-status$(EXEEXT) $(AM_V_CCLD)$(LINK) $(status_successful_status_OBJECTS) $(status_successful_status_LDADD) $(LIBS) +status-successful-threads$(EXEEXT): $(status_successful_threads_OBJECTS) $(status_successful_threads_DEPENDENCIES) $(EXTRA_status_successful_threads_DEPENDENCIES) + @rm -f status-successful-threads$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_successful_threads_OBJECTS) $(status_successful_threads_LDADD) $(LIBS) + status-unfinished$(EXEEXT): $(status_unfinished_OBJECTS) $(status_unfinished_DEPENDENCIES) $(EXTRA_status_unfinished_DEPENDENCIES) @rm -f status-unfinished$(EXEEXT) $(AM_V_CCLD)$(LINK) $(status_unfinished_OBJECTS) $(status_unfinished_LDADD) $(LIBS) @@ -15919,6 +15945,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/statfs-statfs.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/statfs64.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-all.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-detached-threads.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-failed-long.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-failed-status.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-failed.Po@am__quote@ # am--include-marker @@ -15927,6 +15954,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-none.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-successful-long.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-successful-status.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-successful-threads.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-successful.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-unfinished-threads.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-unfinished.Po@am__quote@ # am--include-marker @@ -18258,6 +18286,7 @@ -rm -f ./$(DEPDIR)/statfs-statfs.Po -rm -f ./$(DEPDIR)/statfs64.Po -rm -f ./$(DEPDIR)/status-all.Po + -rm -f ./$(DEPDIR)/status-detached-threads.Po -rm -f ./$(DEPDIR)/status-failed-long.Po -rm -f ./$(DEPDIR)/status-failed-status.Po -rm -f ./$(DEPDIR)/status-failed.Po @@ -18266,6 +18295,7 @@ -rm -f ./$(DEPDIR)/status-none.Po -rm -f ./$(DEPDIR)/status-successful-long.Po -rm -f ./$(DEPDIR)/status-successful-status.Po + -rm -f ./$(DEPDIR)/status-successful-threads.Po -rm -f ./$(DEPDIR)/status-successful.Po -rm -f ./$(DEPDIR)/status-unfinished-threads.Po -rm -f ./$(DEPDIR)/status-unfinished.Po @@ -19505,6 +19535,7 @@ -rm -f ./$(DEPDIR)/statfs-statfs.Po -rm -f ./$(DEPDIR)/statfs64.Po -rm -f ./$(DEPDIR)/status-all.Po + -rm -f ./$(DEPDIR)/status-detached-threads.Po -rm -f ./$(DEPDIR)/status-failed-long.Po -rm -f ./$(DEPDIR)/status-failed-status.Po -rm -f ./$(DEPDIR)/status-failed.Po @@ -19513,6 +19544,7 @@ -rm -f ./$(DEPDIR)/status-none.Po -rm -f ./$(DEPDIR)/status-successful-long.Po -rm -f ./$(DEPDIR)/status-successful-status.Po + -rm -f ./$(DEPDIR)/status-successful-threads.Po -rm -f ./$(DEPDIR)/status-successful.Po -rm -f ./$(DEPDIR)/status-unfinished-threads.Po -rm -f ./$(DEPDIR)/status-unfinished.Po @@ -23000,7 +23032,7 @@ ksysent.h: $(srcdir)/ksysent.sed echo '#include ' | \ $(CPP) $(AM_CPPFLAGS) $(CPPFLAGS) -dM - > $@.t1 - LC_COLLATE=C sed -r -n -f $(srcdir)/ksysent.sed < $@.t1 > $@.t2 + LC_COLLATE=C sed -E -n -f $(srcdir)/ksysent.sed < $@.t1 > $@.t2 mv -f $@.t2 $@ rm -f $@.t1 diff -Nru strace-6.1/tests-m32/membarrier.c strace-6.2/tests-m32/membarrier.c --- strace-6.1/tests-m32/membarrier.c 2022-03-26 09:00:00.000000000 +0100 +++ strace-6.2/tests-m32/membarrier.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check decoding of membarrier syscall. * * Copyright (c) 2015-2017 Dmitry V. Levin - * Copyright (c) 2015-2022 The strace developers. + * Copyright (c) 2015-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -80,6 +80,16 @@ "MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ|" "MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ"; break; + case 2|4|8|16|128|256|512: + text = "MEMBARRIER_CMD_GLOBAL_EXPEDITED|" + "MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED|" + "MEMBARRIER_CMD_PRIVATE_EXPEDITED|" + "MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED|" + "MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ|" + "MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ|" + "MEMBARRIER_CMD_GET_REGISTRATIONS"; + break; + default: error_msg_and_fail("membarrier returned %#x, does" " the test have to be updated?", rc); diff -Nru strace-6.1/tests-m32/msg_control.c strace-6.2/tests-m32/msg_control.c --- strace-6.1/tests-m32/msg_control.c 2021-11-05 09:00:00.000000000 +0100 +++ strace-6.2/tests-m32/msg_control.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check decoding of struct msghdr ancillary data. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2021 The strace developers. + * Copyright (c) 2016-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -20,11 +20,7 @@ #include #include -#if defined HAVE_STRUCT___KERNEL_SOCK_TIMEVAL \ - || defined HAVE_STRUCT___KERNEL_TIMESPEC -# include -#endif - +#include "kernel_time_types.h" #include "kernel_timeval.h" #include "kernel_old_timespec.h" @@ -361,7 +357,6 @@ (unsigned long) len, rc, errno2name()); } -#ifdef HAVE_STRUCT___KERNEL_SOCK_TIMEVAL static void test_scm_timestamp_new(struct msghdr *const mh, void *const page) { @@ -408,9 +403,7 @@ (unsigned) cmsg->cmsg_len, (unsigned long) len, sprintrc(rc)); } -#endif /* HAVE_STRUCT___KERNEL_SOCK_TIMEVAL */ -#ifdef HAVE_STRUCT___KERNEL_TIMESPEC static void test_scm_timestampns_new(struct msghdr *const mh, void *const page) { @@ -512,7 +505,6 @@ (unsigned) cmsg->cmsg_len, (unsigned long) len, sprintrc(rc)); } -#endif /* HAVE_STRUCT___KERNEL_TIMESPEC */ static void print_security(const struct cmsghdr *const cmsg, const size_t cmsg_len) @@ -662,13 +654,9 @@ test_scm_timestamp_old(mh, page); test_scm_timestampns_old(mh, page); test_scm_timestamping_old(mh, page); -#ifdef HAVE_STRUCT___KERNEL_SOCK_TIMEVAL test_scm_timestamp_new(mh, page); -#endif -#ifdef HAVE_STRUCT___KERNEL_TIMESPEC test_scm_timestampns_new(mh, page); test_scm_timestamping_new(mh, page); -#endif test_unknown_type(mh, page, ARG_STR(SOL_SOCKET), "SCM_???"); } diff -Nru strace-6.1/tests-m32/nlattr_ifla_brport.c strace-6.2/tests-m32/nlattr_ifla_brport.c --- strace-6.1/tests-m32/nlattr_ifla_brport.c 2022-06-18 20:00:00.000000000 +0200 +++ strace-6.2/tests-m32/nlattr_ifla_brport.c 2023-02-26 09:00:00.000000000 +0100 @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2022 The strace developers. + * Copyright (c) 2017-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -39,7 +39,7 @@ { ENUM_KNOWN(0, IFLA_BRPORT_UNSPEC) }, { ENUM_KNOWN(0x18, IFLA_BRPORT_FLUSH) }, { ENUM_KNOWN(0x1a, IFLA_BRPORT_PAD) }, - { ARG_XLAT_UNKNOWN(0x28, "IFLA_BRPORT_???") }, + { ARG_XLAT_UNKNOWN(0x29, "IFLA_BRPORT_???") }, { ARG_XLAT_UNKNOWN(0xbad, "IFLA_BRPORT_???") }, }; for (size_t i = 0; i < ARRAY_SIZE(un_attrs); i++) { @@ -75,6 +75,7 @@ { ENUM_KNOWN(0x23, IFLA_BRPORT_MRP_RING_OPEN) }, { ENUM_KNOWN(0x24, IFLA_BRPORT_MRP_IN_OPEN) }, { ENUM_KNOWN(0x27, IFLA_BRPORT_LOCKED) }, + { ENUM_KNOWN(0x28, IFLA_BRPORT_MAB) }, }; void *nlh_u8 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN * 2 + sizeof(uint8_t)); diff -Nru strace-6.1/tests-m32/nlattr_ifla_linkinfo.c strace-6.2/tests-m32/nlattr_ifla_linkinfo.c --- strace-6.1/tests-m32/nlattr_ifla_linkinfo.c 2022-08-11 12:07:09.000000000 +0200 +++ strace-6.2/tests-m32/nlattr_ifla_linkinfo.c 2023-02-26 09:00:00.000000000 +0100 @@ -1,7 +1,7 @@ /* * IFLA_LINKINFO netlink attribute decoding check. * - * Copyright (c) 2018-2022 The strace developers. + * Copyright (c) 2018-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -897,7 +897,7 @@ { 0, "IFLA_BRPORT_UNSPEC" }, { 24, "IFLA_BRPORT_FLUSH" }, { 26, "IFLA_BRPORT_PAD" }, - { 40, "0x28 /* IFLA_BRPORT_??? */" }, + { 41, "0x29 /* IFLA_BRPORT_??? */" }, { 2989, "0xbad /* IFLA_BRPORT_??? */" }, }; @@ -940,6 +940,7 @@ { ARG_STR(IFLA_BRPORT_MRP_RING_OPEN) }, { ARG_STR(IFLA_BRPORT_MRP_IN_OPEN) }, { ARG_STR(IFLA_BRPORT_LOCKED) }, + { ARG_STR(IFLA_BRPORT_MAB) }, }; for (size_t k = 0; k < ARRAY_SIZE(u8_brport_attrs); k++) { diff -Nru strace-6.1/tests-m32/nlattr_ndmsg.c strace-6.2/tests-m32/nlattr_ndmsg.c --- strace-6.1/tests-m32/nlattr_ndmsg.c 2022-08-07 10:00:00.000000000 +0200 +++ strace-6.2/tests-m32/nlattr_ndmsg.c 2023-02-26 09:00:00.000000000 +0100 @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2022 The strace developers. + * Copyright (c) 2017-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -186,8 +186,10 @@ static const struct strval32 ntfe_flags[] = { { ARG_STR(0) }, { ARG_XLAT_KNOWN(0x1, "NTF_EXT_MANAGED") }, - { ARG_XLAT_KNOWN(0xdeadbeef, "NTF_EXT_MANAGED|0xdeadbeee") }, - { ARG_XLAT_UNKNOWN(0xfeedcafe, "NTF_EXT_???") }, + { ARG_XLAT_KNOWN(0x2, "NTF_EXT_LOCKED") }, + { ARG_XLAT_KNOWN(0xdeadbeef, "NTF_EXT_MANAGED|NTF_EXT_LOCKED" + "|0xdeadbeec") }, + { ARG_XLAT_UNKNOWN(0xfeedcafc, "NTF_EXT_???") }, }; for (size_t i = 0; i < ARRAY_SIZE(ntfe_flags); i++) { diff -Nru strace-6.1/tests-m32/pc.test strace-6.2/tests-m32/pc.test --- strace-6.1/tests-m32/pc.test 2020-12-31 09:00:00.000000000 +0100 +++ strace-6.2/tests-m32/pc.test 2023-02-26 09:00:00.000000000 +0100 @@ -3,7 +3,7 @@ # Check -i option. # # Copyright (c) 2015 Dmitry V. Levin -# Copyright (c) 2015-2020 The strace developers. +# Copyright (c) 2015-2023 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -18,19 +18,20 @@ $STRACE $args 2> "$LOG" || dump_log_and_fail_with "$STRACE $args failed" -len="$(sed -r -n 's/^\[[[:xdigit:]]+\] write\(-1, 0x8, ([[:digit:]]{1,2})\)[[:space:]]+= -1 .*/\1/p' "$LOG")" && +len="$(sed -E -n 's/^\[[[:xdigit:]]+\] write\(-1, 0x8, ([[:digit:]]{1,2})\)[[:space:]]+= -1 .*/\1/p' "$LOG")" && [ -n "$len" ] && -pid="$(sed -r -n 's/^\[[[:xdigit:]]{'"$len"'}\] --- SIGCHLD \{si_signo=SIGCHLD, si_code=CLD_(KILLED|DUMPED), si_pid=([[:digit:]]+), .*/\2/p' "$LOG")" && +pid="$(sed -E -n 's/^\[[[:xdigit:]]{'"$len"'}\] --- SIGCHLD \{si_signo=SIGCHLD, si_code=CLD_(KILLED|DUMPED), si_pid=([[:digit:]]+), .*/\2/p' "$LOG")" && [ -n "$pid" ] && -ip="$(sed -r -n 's/^\[pid +'"$pid"'\] \[([[:xdigit:]]{'"$len"'})] --- SIGSEGV \{.*\} ---$/\1/p' "$LOG")" && +ip="$(sed -E -n 's/^\[pid +'"$pid"'\] \[([[:xdigit:]]{'"$len"'})] --- SIGSEGV \{.*\} ---$/\1/p' "$LOG")" && [ -n "$ip" ] && -addr="$(echo "$ip" |sed -r 's/^0+//')" && +# strip the last nibble of the address. On hppa the lowest 2 bits encode the address space. +addr="$(echo "$ip" |sed -E 's/^0+//')" && addr=${addr%?} && [ -n "$addr" ] || dump_log_and_fail_with cat > "$EXP" << __EOF__ \\[[[:xdigit:]]{$len}\\] munmap\\(0x[[:xdigit:]]+, 0\\) += -1 .* -\\[pid +$pid\\] \\[$ip\\] --- SIGSEGV \\{si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x$addr\\} --- +\\[pid +$pid\\] \\[$ip\\] --- SIGSEGV \\{si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x$addr[[:xdigit:]]\\} --- \\[pid +$pid\\] \\[\\?{$len}\\] \\+\\+\\+ killed by SIGSEGV( \\(core dumped\\))? \\+\\+\\+ \\[\\?{$len}\\] \\+\\+\\+ exited with 0 \\+\\+\\+ __EOF__ diff -Nru strace-6.1/tests-m32/ptrace.c strace-6.2/tests-m32/ptrace.c --- strace-6.1/tests-m32/ptrace.c 2022-10-03 10:00:00.000000000 +0200 +++ strace-6.2/tests-m32/ptrace.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check decoding of ptrace syscall. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2022 The strace developers. + * Copyright (c) 2016-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -1836,7 +1836,7 @@ { ARG_XLAT_KNOWN(0x4, "TRAP_HWBKPT") }, #endif { ARG_XLAT_KNOWN(0x5, "TRAP_UNK"), "" -#ifdef __alpha__ +#if defined __alpha__ && defined HAVE_SIGINFO_T_SI_TRAPNO ", si_trapno=0 /* GEN_??? */" }, { ARG_XLAT_KNOWN(0x5, "TRAP_UNK"), @@ -1847,7 +1847,7 @@ ", si_trapno=-26 /* GEN_??? */" }, { ARG_XLAT_KNOWN(0x5, "TRAP_UNK"), "" ", si_trapno=-1234567890 /* GEN_??? */" -#endif /* __alpha__ */ +#endif /* __alpha__ && HAVE_SIGINFO_T_SI_TRAPNO */ }, { ARG_XLAT_KNOWN(0x6, "TRAP_PERF"), "" #ifdef HAVE_SIGINFO_T_SI_PERF_DATA @@ -1917,7 +1917,7 @@ switch (sip->si_code) { case 5: /* TRAP_UNK */ -#ifdef __alpha__ +#if defined __alpha__ && defined HAVE_SIGINFO_T_SI_TRAPNO sip->si_trapno = trap_unk_vecs[trap_unk_pos]; #endif trap_unk_pos = (trap_unk_pos + 1) @@ -1981,7 +1981,7 @@ do_ptrace(PTRACE_SETSIGINFO, pid, bad_request, (uintptr_t) sip); printf("ptrace(" XLAT_FMT ", %d, %#lx, {si_signo=" XLAT_FMT_U ", si_code=" XLAT_FMT ", si_errno=" XLAT_FMT_U ", si_addr=%p" -#ifdef __alpha__ +#if defined __alpha__ && defined HAVE_SIGINFO_T_SI_TRAPNO ", si_trapno=" XLAT_KNOWN(-7, "GEN_FLTINE") #endif "}) = %s\n", diff -Nru strace-6.1/tests-m32/ptrace_syscall_info.c strace-6.2/tests-m32/ptrace_syscall_info.c --- strace-6.1/tests-m32/ptrace_syscall_info.c 2021-10-08 03:50:59.000000000 +0200 +++ strace-6.2/tests-m32/ptrace_syscall_info.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check decoding of ptrace PTRACE_GET_SYSCALL_INFO request. * * Copyright (c) 2018 Dmitry V. Levin - * Copyright (c) 2018-2021 The strace developers. + * Copyright (c) 2018-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -132,52 +132,48 @@ memset((void *) buf, -1, size); long rc = do_ptrace(PTRACE_GET_SYSCALL_INFO, pid, size, buf); - if (rc < 0) { - printf("ptrace(" XLAT_FMT ", %d, %u, %#lx) = %s\n", - XLAT_ARGS(PTRACE_GET_SYSCALL_INFO), pid, - (unsigned int) size, buf, errstr); - return false; - } - if (rc < (long) expected_none_size) - FAIL("signal stop mismatch"); - printf("ptrace(" XLAT_FMT ", %d, %u, ", XLAT_ARGS(PTRACE_GET_SYSCALL_INFO), pid, size); - if (!size) { + if (rc < (long) expected_none_size || size == 0) printf("%#lx) = %s\n", buf, errstr); + + if (rc < 0) + return false; + if (rc < (long) expected_none_size) + FAIL("signal stop mismatch"); + if (size == 0) continue; - } /* copy to a local structure to avoid unaligned access */ struct_ptrace_syscall_info info; memcpy(&info, (void *) buf, MIN(size, expected_none_size)); + printf("{op=" XLAT_FMT, XLAT_ARGS(PTRACE_SYSCALL_INFO_NONE)); if (info.op != PTRACE_SYSCALL_INFO_NONE) FAIL("signal stop mismatch"); - printf("{op=" XLAT_FMT, XLAT_ARGS(PTRACE_SYSCALL_INFO_NONE)); if (size < offsetofend(struct_ptrace_syscall_info, arch)) goto printed_none; - if (!info.arch) - FAIL("signal stop mismatch"); printf(", arch="); printxval(audit_arch, info.arch, "AUDIT_ARCH_???"); + if (!info.arch) + FAIL("signal stop mismatch"); if (size < offsetofend(struct_ptrace_syscall_info, instruction_pointer)) goto printed_none; - if (!info.instruction_pointer) - FAIL("signal stop mismatch"); printf(", instruction_pointer=%#llx", (unsigned long long) info.instruction_pointer); + if (!info.instruction_pointer) + FAIL("signal stop mismatch"); if (size < offsetofend(struct_ptrace_syscall_info, stack_pointer)) goto printed_none; - if (!info.stack_pointer) - FAIL("signal stop mismatch"); printf(", stack_pointer=%#llx", (unsigned long long) info.stack_pointer); + if (!info.stack_pointer) + FAIL("signal stop mismatch"); printed_none: printf("}) = %s\n", errstr); @@ -195,59 +191,58 @@ memset((void *) buf, -1, size); long rc = do_ptrace(PTRACE_GET_SYSCALL_INFO, pid, size, buf); - if (rc < 0) - PFAIL("PTRACE_GET_SYSCALL_INFO"); - - if (rc < (long) expected_entry_size) - FAIL("#%d: entry stop mismatch", ptrace_stop); - printf("ptrace(" XLAT_FMT ", %d, %u, ", XLAT_ARGS(PTRACE_GET_SYSCALL_INFO), pid, size); - if (!size) { + if (rc < (long) expected_entry_size || size == 0) printf("%#lx) = %s\n", buf, errstr); + + if (rc < 0) + FAIL("PTRACE_GET_SYSCALL_INFO"); + if (rc < (long) expected_entry_size) + FAIL("#%d: entry stop mismatch", ptrace_stop); + if (size == 0) continue; - } /* copy to a local structure to avoid unaligned access */ struct_ptrace_syscall_info info; memcpy(&info, (void *) buf, MIN(size, expected_entry_size)); + printf("{op=" XLAT_FMT, XLAT_ARGS(PTRACE_SYSCALL_INFO_ENTRY)); if (info.op != PTRACE_SYSCALL_INFO_ENTRY) FAIL("#%d: entry stop mismatch", ptrace_stop); - printf("{op=" XLAT_FMT, XLAT_ARGS(PTRACE_SYSCALL_INFO_ENTRY)); if (size < offsetofend(struct_ptrace_syscall_info, arch)) goto printed_entry_common; - if (!info.arch) - FAIL("#%d: entry stop mismatch", ptrace_stop); printf(", arch="); printxval(audit_arch, info.arch, "AUDIT_ARCH_???"); + if (!info.arch) + FAIL("#%d: entry stop mismatch", ptrace_stop); if (size < offsetofend(struct_ptrace_syscall_info, instruction_pointer)) goto printed_entry_common; - if (!info.instruction_pointer) - FAIL("#%d: entry stop mismatch", ptrace_stop); printf(", instruction_pointer=%#llx", (unsigned long long) info.instruction_pointer); + if (!info.instruction_pointer) + FAIL("#%d: entry stop mismatch", ptrace_stop); if (size < offsetofend(struct_ptrace_syscall_info, stack_pointer)) goto printed_entry_common; - if (!info.stack_pointer) - FAIL("#%d: entry stop mismatch", ptrace_stop); printf(", stack_pointer=%#llx", (unsigned long long) info.stack_pointer); + if (!info.stack_pointer) + FAIL("#%d: entry stop mismatch", ptrace_stop); if (size < offsetofend(struct_ptrace_syscall_info, entry.nr)) goto printed_entry_common; - const unsigned long *exp_args = args[ptrace_stop / 2]; - if (info.entry.nr != exp_args[0]) - FAIL("#%d: entry stop mismatch", ptrace_stop); printf(", entry={nr=" NABBR("%llu") VERB(" /* ") NRAW("__NR_%s") VERB(" */"), XLAT_SEL((unsigned long long) info.entry.nr, sc_names[ptrace_stop / 2])); + const unsigned long *exp_args = args[ptrace_stop / 2]; + if (info.entry.nr != exp_args[0]) + FAIL("#%d: entry stop mismatch", ptrace_stop); for (unsigned int i = 0; i < ARRAY_SIZE(info.entry.args); ++i) { const unsigned int i_size = @@ -263,10 +258,10 @@ #else # define CAST #endif - if (CAST info.entry.args[i] != exp_args[i + 1]) - FAIL("#%d: entry stop mismatch", ptrace_stop); printf("%s%#llx", (i ? ", " : ", args=["), (unsigned long long) info.entry.args[i]); + if (CAST info.entry.args[i] != exp_args[i + 1]) + FAIL("#%d: entry stop mismatch", ptrace_stop); } printf("]"); @@ -287,49 +282,48 @@ memset((void *) buf, -1, size); long rc = do_ptrace(PTRACE_GET_SYSCALL_INFO, pid, size, buf); - if (rc < 0) - PFAIL("PTRACE_GET_SYSCALL_INFO"); - - if (rc < (long) expected_exit_size) - FAIL("#%d: exit stop mismatch", ptrace_stop); - printf("ptrace(" XLAT_FMT ", %d, %u, ", XLAT_ARGS(PTRACE_GET_SYSCALL_INFO), pid, size); - if (!size) { + if (rc < (long) expected_exit_size || size == 0) printf("%#lx) = %s\n", buf, errstr); + + if (rc < 0) + FAIL("PTRACE_GET_SYSCALL_INFO"); + if (rc < (long) expected_exit_size) + FAIL("#%d: exit stop mismatch", ptrace_stop); + if (size == 0) continue; - } /* copy to a local structure to avoid unaligned access */ struct_ptrace_syscall_info info; memcpy(&info, (void *) buf, MIN(size, expected_exit_size)); + printf("{op=" XLAT_FMT, XLAT_ARGS(PTRACE_SYSCALL_INFO_EXIT)); if (info.op != PTRACE_SYSCALL_INFO_EXIT) FAIL("#%d: exit stop mismatch", ptrace_stop); - printf("{op=" XLAT_FMT, XLAT_ARGS(PTRACE_SYSCALL_INFO_EXIT)); if (size < offsetofend(struct_ptrace_syscall_info, arch)) goto printed_exit_common; - if (!info.arch) - FAIL("#%d: exit stop mismatch", ptrace_stop); printf(", arch="); printxval(audit_arch, info.arch, "AUDIT_ARCH_???"); + if (!info.arch) + FAIL("#%d: exit stop mismatch", ptrace_stop); if (size < offsetofend(struct_ptrace_syscall_info, instruction_pointer)) goto printed_exit_common; - if (!info.instruction_pointer) - FAIL("#%d: exit stop mismatch", ptrace_stop); printf(", instruction_pointer=%#llx", (unsigned long long) info.instruction_pointer); + if (!info.instruction_pointer) + FAIL("#%d: exit stop mismatch", ptrace_stop); if (size < offsetofend(struct_ptrace_syscall_info, stack_pointer)) goto printed_exit_common; - if (!info.stack_pointer) - FAIL("#%d: exit stop mismatch", ptrace_stop); printf(", stack_pointer=%#llx", (unsigned long long) info.stack_pointer); + if (!info.stack_pointer) + FAIL("#%d: exit stop mismatch", ptrace_stop); const struct { unsigned int is_error; @@ -342,20 +336,20 @@ if (size < offsetofend(struct_ptrace_syscall_info, exit.rval)) goto printed_exit_common; - if (info.exit.rval != exp_param->rval) - FAIL("#%d: exit stop mismatch", ptrace_stop); if (size >= expected_exit_size && info.exit.is_error) { printf(", exit={rval=" XLAT_FMT_D, XLAT_SEL(exp_param->rval, exp_param->str)); } else { printf(", exit={rval=%lld", (long long) info.exit.rval); } + if (info.exit.rval != exp_param->rval) + FAIL("#%d: exit stop mismatch", ptrace_stop); if (size >= expected_exit_size) { - if (info.exit.is_error != exp_param->is_error) - FAIL("#%d: exit stop mismatch", ptrace_stop); printf(", is_error=%u", (unsigned int) info.exit.is_error); + if (info.exit.is_error != exp_param->is_error) + FAIL("#%d: exit stop mismatch", ptrace_stop); } printf("}"); diff -Nru strace-6.1/tests-m32/sockopt-timestamp.c strace-6.2/tests-m32/sockopt-timestamp.c --- strace-6.1/tests-m32/sockopt-timestamp.c 2021-08-31 10:00:00.000000000 +0200 +++ strace-6.2/tests-m32/sockopt-timestamp.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check decoding of timestamp control messages. * * Copyright (c) 2019 Dmitry V. Levin - * Copyright (c) 2019-2021 The strace developers. + * Copyright (c) 2019-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -19,11 +19,7 @@ # include # include -# if defined HAVE_STRUCT___KERNEL_SOCK_TIMEVAL \ - || defined HAVE_STRUCT___KERNEL_TIMESPEC -# include -# endif - +# include "kernel_time_types.h" # include "kernel_timeval.h" # include "kernel_old_timespec.h" @@ -110,7 +106,6 @@ (long long) ts.tv_sec, (long long) ts.tv_nsec); } -# ifdef HAVE_STRUCT___KERNEL_SOCK_TIMEVAL static void print_timestamp_new(const struct cmsghdr *c) { @@ -129,9 +124,7 @@ printf("{tv_sec=%lld, tv_usec=%lld}", (long long) tv.tv_sec, (long long) tv.tv_usec); } -# endif /* HAVE_STRUCT___KERNEL_SOCK_TIMEVAL */ -# ifdef HAVE_STRUCT___KERNEL_TIMESPEC static void print_timestampns_new(const struct cmsghdr *c) { @@ -150,7 +143,6 @@ printf("{tv_sec=%lld, tv_nsec=%lld}", (long long) ts.tv_sec, (long long) ts.tv_nsec); } -# endif /* HAVE_STRUCT___KERNEL_TIMESPEC */ static unsigned int test_sockopt(int so_val, const char *str, void (*fun)(const struct cmsghdr *)) @@ -243,12 +235,8 @@ } tests[] = { { SO_TIMESTAMP_OLD, "SO_TIMESTAMP_OLD", print_timestamp_old }, { SO_TIMESTAMPNS_OLD, "SO_TIMESTAMPNS_OLD", print_timestampns_old }, -# ifdef HAVE_STRUCT___KERNEL_SOCK_TIMEVAL { SO_TIMESTAMP_NEW, "SO_TIMESTAMP_NEW", print_timestamp_new }, -# endif -# ifdef HAVE_STRUCT___KERNEL_TIMESPEC { SO_TIMESTAMPNS_NEW, "SO_TIMESTAMPNS_NEW", print_timestampns_new }, -# endif }; unsigned int tested = 0; for (unsigned int i = 0; i < ARRAY_SIZE(tests); ++i) diff -Nru strace-6.1/tests-m32/status-detached-threads.c strace-6.2/tests-m32/status-detached-threads.c --- strace-6.1/tests-m32/status-detached-threads.c 1970-01-01 01:00:00.000000000 +0100 +++ strace-6.2/tests-m32/status-detached-threads.c 2022-12-28 09:00:00.000000000 +0100 @@ -0,0 +1,56 @@ +/* + * Check status=detached filtering when a non-leader thread invokes execve. + * + * Copyright (c) 2019 Paul Chaignon + * Copyright (c) 2022 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#include +#include +#include +#include +#include + +static void * +thread(void *arg) +{ + struct timespec ts = { .tv_nsec = 100000000 }; + nanosleep(&ts, 0); + + char *argv[] = {((char **) arg)[0], (char *) "0", NULL}; + pid_t pid = getpid(); + pid_t tid = syscall(__NR_gettid); + + printf("%-5d execve(\"%s\", [\"%s\", \"0\"], NULL \n" + "%-5d +++ superseded by execve in pid %u +++\n" + "%-5d +++ exited with 0 +++\n", + tid, argv[0], argv[0], pid, pid, tid, pid); + + execve(argv[0], argv, NULL); + perror_msg_and_fail("execve"); +} + +int +main(int ac, char **av) +{ + setvbuf(stdout, NULL, _IONBF, 0); + + if (ac > 1) + return 0; + + pthread_t t; + errno = pthread_create(&t, NULL, thread, av); + if (errno) + perror_msg_and_fail("pthread_create"); + + struct timespec ts = { .tv_sec = 123 }; + nanosleep(&ts, 0); + + return 1; +} diff -Nru strace-6.1/tests-m32/status-detached-threads.test strace-6.2/tests-m32/status-detached-threads.test --- strace-6.1/tests-m32/status-detached-threads.test 1970-01-01 01:00:00.000000000 +0100 +++ strace-6.2/tests-m32/status-detached-threads.test 2022-12-28 09:00:00.000000000 +0100 @@ -0,0 +1,16 @@ +#!/bin/sh +# +# Check status=detached filtering when a non-leader thread invokes execve. +# +# Copyright (c) 2019-2022 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +# Check that PTRACE_EVENT_EXEC support in kernel is good enough. +# The kernel before commit v3.1-rc1~308^2~7 reported 0 instead of old pid. +require_min_kernel_version_or_skip 3.1 + +run_strace_match_diff -f --status=detached --trace=execve,/sleep diff -Nru strace-6.1/tests-m32/status-successful-threads.c strace-6.2/tests-m32/status-successful-threads.c --- strace-6.1/tests-m32/status-successful-threads.c 1970-01-01 01:00:00.000000000 +0100 +++ strace-6.2/tests-m32/status-successful-threads.c 2022-12-29 09:00:00.000000000 +0100 @@ -0,0 +1,71 @@ +/* + * Check status=successful filtering when a non-leader thread invokes execve. + * + * Copyright (c) 2019 Paul Chaignon + * Copyright (c) 2022 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#include +#include +#include +#include +#include + +static pid_t leader; + +static void * +thread_exec(void *arg) +{ + pid_t tid = syscall(__NR_gettid); + printf("%-5d +++ superseded by execve in pid %u +++\n", + leader, tid); + + char *argv[] = {((char **) arg)[0], (char *) "0", NULL}; + execve(argv[0], argv, NULL); + perror_msg_and_fail("execve"); +} + +int +main(int ac, char **av) +{ + if (ac > 1) + return 0; + + int fds[2]; + if (pipe(fds)) + perror_msg_and_fail("pipe"); + + pid_t child = fork(); + if (child < 0) + perror_msg_and_fail("fork"); + + leader = getpid(); + setvbuf(stdout, NULL, _IONBF, 0); + + if (!child) { + close(fds[0]); + pthread_t thre; + errno = pthread_create(&thre, NULL, thread_exec, av); + if (errno) + perror_msg_and_fail("pthread_create"); + for (;;) { /* wait for execve */ } + return 1; + } + + close(fds[1]); + unsigned int len = sizeof(fds[1]); + struct iovec rio = { .iov_base = &fds[1], .iov_len = len }; + if (readv(fds[0], &rio, 1)) + perror_msg_and_fail("readv"); + + printf("%-5d readv(%d, [{iov_base=\"\", iov_len=%u}], 1) = 0\n" + "%-5d +++ exited with 0 +++\n", + leader, fds[0], len, leader); + return 0; +} diff -Nru strace-6.1/tests-m32/status-successful-threads.test strace-6.2/tests-m32/status-successful-threads.test --- strace-6.1/tests-m32/status-successful-threads.test 1970-01-01 01:00:00.000000000 +0100 +++ strace-6.2/tests-m32/status-successful-threads.test 2022-12-29 09:00:00.000000000 +0100 @@ -0,0 +1,16 @@ +#!/bin/sh +# +# Check status=successful filtering when a non-leader thread invokes execve. +# +# Copyright (c) 2019-2022 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +# Check that PTRACE_EVENT_EXEC support in kernel is good enough. +# The kernel before commit v3.1-rc1~308^2~7 reported 0 instead of old pid. +require_min_kernel_version_or_skip 3.1 + +run_strace_match_diff -f -z --signal=none --trace=readv diff -Nru strace-6.1/tests-m32/strace-S.test strace-6.2/tests-m32/strace-S.test --- strace-6.1/tests-m32/strace-S.test 2020-03-23 04:19:09.000000000 +0100 +++ strace-6.2/tests-m32/strace-S.test 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ # # Check -S option. # -# Copyright (c) 2016-2020 The strace developers. +# Copyright (c) 2016-2023 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -19,7 +19,7 @@ sedexpr="$1"; shift run_strace -c -w $sortby ../readv > /dev/null - sed -r -n -e "$sedexpr" < "$LOG" > "$OUT" + sed -E -n -e "$sedexpr" < "$LOG" > "$OUT" [ -s "$OUT" ] || fail_ "$STRACE $args output mismatch" diff -Nru strace-6.1/tests-mx32/bpf.c strace-6.2/tests-mx32/bpf.c --- strace-6.1/tests-mx32/bpf.c 2022-12-11 09:00:00.000000000 +0100 +++ strace-6.2/tests-mx32/bpf.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check bpf syscall decoding. * * Copyright (c) 2015-2017 Dmitry V. Levin - * Copyright (c) 2015-2022 The strace developers. + * Copyright (c) 2015-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -272,7 +272,7 @@ attr->map_ifindex = ifindex_lo(); } -static_assert(ARRAY_SIZE(bpf_map_types_xdata) == 32, +static_assert(ARRAY_SIZE(bpf_map_types_xdata) == 33, "The map_type for tests 1 and 2 below needs to be updated"); static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { { @@ -283,7 +283,7 @@ }, { /* 1 */ .data = { .BPF_MAP_CREATE_data = { - .map_type = 31, + .map_type = 32, .key_size = 4, .value_size = 8, .max_entries = 256, @@ -293,7 +293,7 @@ .map_name = "0123456789abcde", } }, .size = offsetof(struct BPF_MAP_CREATE_struct, map_name) + 8, - .str = "map_type=BPF_MAP_TYPE_USER_RINGBUF, key_size=4" + .str = "map_type=BPF_MAP_TYPE_CGRP_STORAGE, key_size=4" ", value_size=8, max_entries=256" ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NO_COMMON_LRU" "|BPF_F_NUMA_NODE|BPF_F_RDONLY|BPF_F_WRONLY" @@ -305,7 +305,7 @@ }, { /* 2 */ .data = { .BPF_MAP_CREATE_data = { - .map_type = 32, + .map_type = 33, .key_size = 0xface1e55, .value_size = 0xbadc0ded, .max_entries = 0xbeefcafe, @@ -316,7 +316,7 @@ .map_ifindex = 3141592653, } }, .size = offsetofend(struct BPF_MAP_CREATE_struct, map_ifindex), - .str = "map_type=0x20 /* BPF_MAP_TYPE_??? */" + .str = "map_type=0x21 /* BPF_MAP_TYPE_??? */" ", key_size=4207812181, value_size=3134983661" ", max_entries=3203386110" ", map_flags=0xffffe000 /* BPF_F_??? */" diff -Nru strace-6.1/tests-mx32/fanotify_mark.c strace-6.2/tests-mx32/fanotify_mark.c --- strace-6.1/tests-mx32/fanotify_mark.c 2022-10-09 10:00:00.000000000 +0200 +++ strace-6.2/tests-mx32/fanotify_mark.c 2023-02-26 09:00:00.000000000 +0100 @@ -3,7 +3,7 @@ * * Copyright (c) 2015-2016 Dmitry V. Levin * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2015-2022 The strace developers. + * Copyright (c) 2015-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -51,12 +51,7 @@ || defined LINUX_MIPSN32 mask, # else -/* arch/parisc/kernel/sys_parisc32.c, commit ab8a261b */ -# ifdef HPPA - LL_VAL_TO_PAIR((mask << 32) | (mask >> 32)), -# else LL_VAL_TO_PAIR(mask), -# endif # endif dirfd, path); diff -Nru strace-6.1/tests-mx32/init.sh strace-6.2/tests-mx32/init.sh --- strace-6.1/tests-mx32/init.sh 2022-07-19 10:12:24.000000000 +0200 +++ strace-6.2/tests-mx32/init.sh 2023-02-26 09:00:00.000000000 +0100 @@ -1,7 +1,7 @@ #!/bin/sh # # Copyright (c) 2011-2016 Dmitry V. Levin -# Copyright (c) 2011-2022 The strace developers. +# Copyright (c) 2011-2023 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -38,7 +38,7 @@ # in the CONFIG_H variable). get_config_str() { - sed -r -n 's/#define[[:space:]]*'"$1"'[[:space:]]*"([^"]*)".*/\1/p' \ + sed -E -n 's/#define[[:space:]]*'"$1"'[[:space:]]*"([^"]*)".*/\1/p' \ "$CONFIG_H" } @@ -50,7 +50,7 @@ get_config_option() { local opt - opt=$(sed -r -n 's/#define[[:space:]]*'"$1"'[[:space:]]*([0-9]+)$/\1/p' \ + opt=$(sed -E -n 's/#define[[:space:]]*'"$1"'[[:space:]]*([0-9]+)$/\1/p' \ "$CONFIG_H") if [ -n "$opt" -a "$opt" -ne 0 ]; then printf "%s" "$2" diff -Nru strace-6.1/tests-mx32/ioctl_kd.c strace-6.2/tests-mx32/ioctl_kd.c --- strace-6.1/tests-mx32/ioctl_kd.c 2021-11-07 09:00:00.000000000 +0100 +++ strace-6.2/tests-mx32/ioctl_kd.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,6 +2,7 @@ * This file is part of ioctl_kd strace test. * * Copyright (c) 2019-2021 Eugene Syromyatnikov + * Copyright (c) 2019-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -359,6 +360,25 @@ errno = saved_errno; printf("}) = " RETVAL); } + + if (DEFAULT_STRLEN < sizeof(kbse->kb_string) && + (RETVAL_INJECTED || c == KDSKBSENT)) { + /* + * Check how struct kbsentry.kb_string is printed when it + * starts DEFAULT_STRLEN / 2 bytes before the page boundary. + */ + struct kbsentry *const k = + tail_alloc(get_page_size() + + DEFAULT_STRLEN / 2 + sizeof(k->kb_func)); + fill_memory_ex(k->kb_string, DEFAULT_STRLEN - 1, '0', 10); + k->kb_string[DEFAULT_STRLEN - 1] = '\0'; + + sys_ioctl(-1, c, (uintptr_t) k); + printf("ioctl(-1, " XLAT_FMT ", {kb_func=" + XLAT_KNOWN(0xff, "KVAL(K_UNDO)") + ", kb_string=\"%s\"}) = " RETVAL, + XLAT_SEL(c, s), k->kb_string); + } } /* KDGKBDIACR, KDSKBDIACR */ diff -Nru strace-6.1/tests-mx32/ioctl_termios.c strace-6.2/tests-mx32/ioctl_termios.c --- strace-6.1/tests-mx32/ioctl_termios.c 2022-12-12 09:00:00.000000000 +0100 +++ strace-6.2/tests-mx32/ioctl_termios.c 2023-02-20 09:00:00.000000000 +0100 @@ -860,7 +860,8 @@ const char *cmd_str; bool write; bool can_fail; - } cmds[6]; + bool pass_invalid_fd; + } cmds[9]; struct { kernel_ulong_t data; const char *data_str; @@ -889,22 +890,33 @@ #endif { { - /* XXX */ + /* + * If the fd is valid and points to a tty, + * the potential ioctl command collision is resolved. + */ + { ARG_STR(TCSETS), true }, + { ARG_STR(TCSETSW), true }, + { ARG_STR(TCSETSF), true }, + + /* + * If the fd is invalid, it is impossible + * to distinguish the overlapping ioctl commands. + */ { TCSETS, #if IOCTL_CLASHED "SNDCTL_TMR_START or " #endif - "TCSETS", true }, + "TCSETS", true, true, true }, { TCSETSW, #if IOCTL_CLASHED "SNDCTL_TMR_STOP or " #endif - "TCSETSW", true }, + "TCSETSW", true, true, true }, { TCSETSF, #if IOCTL_CLASHED "SNDCTL_TMR_CONTINUE or " #endif - "TCSETSF", true }, + "TCSETSF", true, true, true }, { ARG_STR(TCGETS), false }, { ARG_STR(TIOCSLCKTRMIOS), true, true }, @@ -963,7 +975,7 @@ do_ioctl(checks[i].cmds[j].cmd, checks[i].cmds[j].cmd_str, - ret, + checks[i].cmds[j].pass_invalid_fd? -1: ret, checks[i].printer, checks[i].args[k].data, checks[i].args[k].valid, diff -Nru strace-6.1/tests-mx32/ioctl_v4l2-success.c strace-6.2/tests-mx32/ioctl_v4l2-success.c --- strace-6.1/tests-mx32/ioctl_v4l2-success.c 2021-06-29 07:00:00.000000000 +0200 +++ strace-6.2/tests-mx32/ioctl_v4l2-success.c 2023-02-26 09:00:00.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2021 The strace developers. + * Copyright (c) 2018-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -1080,7 +1080,7 @@ }; static const struct strval32 ctrl_flags[] = { { ARG_STR(0) }, - { ARG_XLAT_KNOWN(0x7ff, "V4L2_CTRL_FLAG_DISABLED" + { ARG_XLAT_KNOWN(0xfff, "V4L2_CTRL_FLAG_DISABLED" "|V4L2_CTRL_FLAG_GRABBED" "|V4L2_CTRL_FLAG_READ_ONLY" "|V4L2_CTRL_FLAG_UPDATE" @@ -1090,15 +1090,17 @@ "|V4L2_CTRL_FLAG_VOLATILE" "|V4L2_CTRL_FLAG_HAS_PAYLOAD" "|V4L2_CTRL_FLAG_EXECUTE_ON_WRITE" - "|V4L2_CTRL_FLAG_MODIFY_LAYOUT") }, + "|V4L2_CTRL_FLAG_MODIFY_LAYOUT" + "|V4L2_CTRL_FLAG_DYNAMIC_ARRAY") }, { ARG_XLAT_KNOWN(0xbeefface, "V4L2_CTRL_FLAG_GRABBED" "|V4L2_CTRL_FLAG_READ_ONLY" "|V4L2_CTRL_FLAG_UPDATE" "|V4L2_CTRL_FLAG_WRITE_ONLY" "|V4L2_CTRL_FLAG_VOLATILE" "|V4L2_CTRL_FLAG_EXECUTE_ON_WRITE" - "|0xbeeff800") }, - { ARG_XLAT_UNKNOWN(0xfffff800, "V4L2_CTRL_FLAG_???") }, + "|V4L2_CTRL_FLAG_DYNAMIC_ARRAY" + "|0xbeeff000") }, + { ARG_XLAT_UNKNOWN(0xfffff000, "V4L2_CTRL_FLAG_???") }, }; static const size_t qctrl_iters = MAX(MAX(ARRAY_SIZE(cids), ARRAY_SIZE(ctrl_types)), diff -Nru strace-6.1/tests-mx32/io_uring_register.c strace-6.2/tests-mx32/io_uring_register.c --- strace-6.1/tests-mx32/io_uring_register.c 2022-11-26 09:00:00.000000000 +0100 +++ strace-6.2/tests-mx32/io_uring_register.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check decoding of io_uring_register syscall. * * Copyright (c) 2019 Dmitry V. Levin - * Copyright (c) 2019-2022 The strace developers. + * Copyright (c) 2019-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -16,6 +16,9 @@ #include #include #include + +#include "kernel_time_types.h" +#define UAPI_LINUX_IO_URING_H_SKIP_LINUX_TIME_TYPES_H #include /* From tests/bpf.c */ diff -Nru strace-6.1/tests-mx32/io_uring_setup.c strace-6.2/tests-mx32/io_uring_setup.c --- strace-6.1/tests-mx32/io_uring_setup.c 2022-08-07 10:00:00.000000000 +0200 +++ strace-6.2/tests-mx32/io_uring_setup.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check decoding of io_uring_setup syscall. * * Copyright (c) 2019 Dmitry V. Levin - * Copyright (c) 2019-2022 The strace developers. + * Copyright (c) 2019-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -16,6 +16,9 @@ #include #include #include + +#include "kernel_time_types.h" +#define UAPI_LINUX_IO_URING_H_SKIP_LINUX_TIME_TYPES_H #include #include diff -Nru strace-6.1/tests-mx32/ksysent.sed strace-6.2/tests-mx32/ksysent.sed --- strace-6.1/tests-mx32/ksysent.sed 2019-09-25 03:02:03.000000000 +0200 +++ strace-6.2/tests-mx32/ksysent.sed 2023-02-26 09:00:00.000000000 +0100 @@ -1,6 +1,6 @@ -#!/bin/sed -rnf +#!/bin/sed -Enf # -# Copyright (c) 2015-2019 The strace developers. +# Copyright (c) 2015-2023 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later diff -Nru strace-6.1/tests-mx32/landlock_add_rule.c strace-6.2/tests-mx32/landlock_add_rule.c --- strace-6.1/tests-mx32/landlock_add_rule.c 2022-08-07 10:00:00.000000000 +0200 +++ strace-6.2/tests-mx32/landlock_add_rule.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check decoding of landlock_add_rule syscall. * * Copyright (c) 2021 Eugene Syromyatnikov - * Copyright (c) 2021-2022 The strace developers. + * Copyright (c) 2021-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -102,8 +102,8 @@ const char *str; } attr_vals[] = { { ARG_STR(LANDLOCK_ACCESS_FS_EXECUTE) }, - { ARG_ULL_STR(LANDLOCK_ACCESS_FS_EXECUTE|LANDLOCK_ACCESS_FS_READ_FILE|LANDLOCK_ACCESS_FS_READ_DIR|LANDLOCK_ACCESS_FS_REMOVE_FILE|LANDLOCK_ACCESS_FS_MAKE_CHAR|LANDLOCK_ACCESS_FS_MAKE_DIR|LANDLOCK_ACCESS_FS_MAKE_SOCK|LANDLOCK_ACCESS_FS_MAKE_FIFO|LANDLOCK_ACCESS_FS_MAKE_BLOCK|LANDLOCK_ACCESS_FS_MAKE_SYM|LANDLOCK_ACCESS_FS_REFER|0xdebeefeddecac000) }, - { ARG_ULL_STR(0xdebeefeddecac000) + { ARG_ULL_STR(LANDLOCK_ACCESS_FS_EXECUTE|LANDLOCK_ACCESS_FS_READ_FILE|LANDLOCK_ACCESS_FS_READ_DIR|LANDLOCK_ACCESS_FS_REMOVE_FILE|LANDLOCK_ACCESS_FS_MAKE_CHAR|LANDLOCK_ACCESS_FS_MAKE_DIR|LANDLOCK_ACCESS_FS_MAKE_SOCK|LANDLOCK_ACCESS_FS_MAKE_FIFO|LANDLOCK_ACCESS_FS_MAKE_BLOCK|LANDLOCK_ACCESS_FS_MAKE_SYM|LANDLOCK_ACCESS_FS_REFER|LANDLOCK_ACCESS_FS_TRUNCATE|0xdebeefeddeca8000) }, + { ARG_ULL_STR(0xdebeefeddeca8000) " /* LANDLOCK_ACCESS_FS_??? */" }, }; static const struct { diff -Nru strace-6.1/tests-mx32/landlock_create_ruleset.c strace-6.2/tests-mx32/landlock_create_ruleset.c --- strace-6.1/tests-mx32/landlock_create_ruleset.c 2022-08-07 10:00:00.000000000 +0200 +++ strace-6.2/tests-mx32/landlock_create_ruleset.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check decoding of landlock_create_ruleset syscall. * * Copyright (c) 2021 Eugene Syromyatnikov - * Copyright (c) 2021-2022 The strace developers. + * Copyright (c) 2021-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -123,8 +123,8 @@ const char *str; } attr_vals[] = { { ARG_STR(LANDLOCK_ACCESS_FS_EXECUTE) }, - { ARG_ULL_STR(LANDLOCK_ACCESS_FS_EXECUTE|LANDLOCK_ACCESS_FS_READ_FILE|LANDLOCK_ACCESS_FS_READ_DIR|LANDLOCK_ACCESS_FS_REMOVE_FILE|LANDLOCK_ACCESS_FS_MAKE_CHAR|LANDLOCK_ACCESS_FS_MAKE_DIR|LANDLOCK_ACCESS_FS_MAKE_SOCK|LANDLOCK_ACCESS_FS_MAKE_FIFO|LANDLOCK_ACCESS_FS_MAKE_BLOCK|LANDLOCK_ACCESS_FS_MAKE_SYM|LANDLOCK_ACCESS_FS_REFER|0xdebeefeddecac000) }, - { ARG_ULL_STR(0xdebeefeddecac000) + { ARG_ULL_STR(LANDLOCK_ACCESS_FS_EXECUTE|LANDLOCK_ACCESS_FS_READ_FILE|LANDLOCK_ACCESS_FS_READ_DIR|LANDLOCK_ACCESS_FS_REMOVE_FILE|LANDLOCK_ACCESS_FS_MAKE_CHAR|LANDLOCK_ACCESS_FS_MAKE_DIR|LANDLOCK_ACCESS_FS_MAKE_SOCK|LANDLOCK_ACCESS_FS_MAKE_FIFO|LANDLOCK_ACCESS_FS_MAKE_BLOCK|LANDLOCK_ACCESS_FS_MAKE_SYM|LANDLOCK_ACCESS_FS_REFER|LANDLOCK_ACCESS_FS_TRUNCATE|0xdebeefeddeca8000) }, + { ARG_ULL_STR(0xdebeefeddeca8000) " /* LANDLOCK_ACCESS_FS_??? */" }, }; static const kernel_ulong_t sizes[] = { 8, 12, 16 }; diff -Nru strace-6.1/tests-mx32/Makefile.am strace-6.2/tests-mx32/Makefile.am --- strace-6.1/tests-mx32/Makefile.am 2022-12-12 19:28:56.000000000 +0100 +++ strace-6.2/tests-mx32/Makefile.am 2023-02-26 22:20:52.000000000 +0100 @@ -1,7 +1,7 @@ # Automake input for strace tests. # # Copyright (c) 2011-2016 Dmitry V. Levin -# Copyright (c) 2011-2022 The strace developers. +# Copyright (c) 2011-2023 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -152,9 +152,7 @@ fsync-y \ get_process_reaper \ getpgrp--pidns-translation \ - getpid \ getpid--pidns-translation \ - getppid \ getsid--pidns-translation \ gettid \ gettid--pidns-translation \ @@ -376,7 +374,9 @@ stack-fcall \ stack-fcall-attach \ stack-fcall-mangled \ + status-detached-threads \ status-none-threads \ + status-successful-threads \ status-unfinished-threads \ strace--decode-pids-comm \ strace-Y-0123456789 \ @@ -435,7 +435,9 @@ pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 stat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 statfs_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 +status_detached_threads_LDADD = -lpthread $(LDADD) status_none_threads_LDADD = -lpthread $(LDADD) +status_successful_threads_LDADD = -lpthread $(LDADD) status_unfinished_threads_LDADD = -lpthread $(LDADD) threads_execve_LDADD = -lpthread $(clock_LIBS) $(LDADD) threads_execve__quiet_thread_execve_LDADD = -lpthread $(clock_LIBS) $(LDADD) @@ -600,7 +602,9 @@ sigblock.test \ sigign.test \ status-detached.test \ + status-detached-threads.test \ status-none-threads.test \ + status-successful-threads.test \ status-unfinished-threads.test \ strace--tips.test \ strace--tips-full.test \ @@ -794,7 +798,7 @@ ksysent.h: $(srcdir)/ksysent.sed echo '#include ' | \ $(CPP) $(AM_CPPFLAGS) $(CPPFLAGS) -dM - > $@.t1 - LC_COLLATE=C sed -r -n -f $(srcdir)/ksysent.sed < $@.t1 > $@.t2 + LC_COLLATE=C sed -E -n -f $(srcdir)/ksysent.sed < $@.t1 > $@.t2 mv -f $@.t2 $@ rm -f $@.t1 diff -Nru strace-6.1/tests-mx32/Makefile.in strace-6.2/tests-mx32/Makefile.in --- strace-6.1/tests-mx32/Makefile.in 2022-12-12 19:29:03.000000000 +0100 +++ strace-6.2/tests-mx32/Makefile.in 2023-02-26 22:20:58.000000000 +0100 @@ -17,7 +17,7 @@ # Automake input for strace tests. # # Copyright (c) 2011-2016 Dmitry V. Levin -# Copyright (c) 2011-2022 The strace developers. +# Copyright (c) 2011-2023 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -134,8 +134,8 @@ filter-unavailable$(EXEEXT) filter_seccomp-flag$(EXEEXT) \ filter_seccomp-perf$(EXEEXT) fork--pidns-translation$(EXEEXT) \ fork-f$(EXEEXT) fsync-y$(EXEEXT) get_process_reaper$(EXEEXT) \ - getpgrp--pidns-translation$(EXEEXT) getpid$(EXEEXT) \ - getpid--pidns-translation$(EXEEXT) getppid$(EXEEXT) \ + getpgrp--pidns-translation$(EXEEXT) \ + getpid--pidns-translation$(EXEEXT) \ getsid--pidns-translation$(EXEEXT) gettid$(EXEEXT) \ gettid--pidns-translation$(EXEEXT) inject-nf$(EXEEXT) \ int_0x80$(EXEEXT) io_uring_register-success$(EXEEXT) \ @@ -308,7 +308,9 @@ sockopt-sol_socket-success-Xraw$(EXEEXT) \ sockopt-sol_socket-success-Xverbose$(EXEEXT) \ stack-fcall$(EXEEXT) stack-fcall-attach$(EXEEXT) \ - stack-fcall-mangled$(EXEEXT) status-none-threads$(EXEEXT) \ + stack-fcall-mangled$(EXEEXT) status-detached-threads$(EXEEXT) \ + status-none-threads$(EXEEXT) \ + status-successful-threads$(EXEEXT) \ status-unfinished-threads$(EXEEXT) \ strace--decode-pids-comm$(EXEEXT) strace-Y-0123456789$(EXEEXT) \ strace-p-Y-p2$(EXEEXT) strace-p1-Y-p$(EXEEXT) \ @@ -5504,6 +5506,9 @@ status_all_OBJECTS = status-all.$(OBJEXT) status_all_LDADD = $(LDADD) status_all_DEPENDENCIES = libtests.a $(am__DEPENDENCIES_1) +status_detached_threads_SOURCES = status-detached-threads.c +status_detached_threads_OBJECTS = status-detached-threads.$(OBJEXT) +status_detached_threads_DEPENDENCIES = $(am__DEPENDENCIES_2) status_failed_SOURCES = status-failed.c status_failed_OBJECTS = status-failed.$(OBJEXT) status_failed_LDADD = $(LDADD) @@ -5540,6 +5545,10 @@ status_successful_status_LDADD = $(LDADD) status_successful_status_DEPENDENCIES = libtests.a \ $(am__DEPENDENCIES_1) +status_successful_threads_SOURCES = status-successful-threads.c +status_successful_threads_OBJECTS = \ + status-successful-threads.$(OBJEXT) +status_successful_threads_DEPENDENCIES = $(am__DEPENDENCIES_2) status_unfinished_SOURCES = status-unfinished.c status_unfinished_OBJECTS = status-unfinished.$(OBJEXT) status_unfinished_LDADD = $(LDADD) @@ -6777,12 +6786,15 @@ ./$(DEPDIR)/stack-fcall-mangled.Po ./$(DEPDIR)/stack-fcall.Po \ ./$(DEPDIR)/stat.Po ./$(DEPDIR)/stat64-stat64.Po \ ./$(DEPDIR)/statfs-statfs.Po ./$(DEPDIR)/statfs64.Po \ - ./$(DEPDIR)/status-all.Po ./$(DEPDIR)/status-failed-long.Po \ + ./$(DEPDIR)/status-all.Po \ + ./$(DEPDIR)/status-detached-threads.Po \ + ./$(DEPDIR)/status-failed-long.Po \ ./$(DEPDIR)/status-failed-status.Po \ ./$(DEPDIR)/status-failed.Po ./$(DEPDIR)/status-none-f.Po \ ./$(DEPDIR)/status-none-threads.Po ./$(DEPDIR)/status-none.Po \ ./$(DEPDIR)/status-successful-long.Po \ ./$(DEPDIR)/status-successful-status.Po \ + ./$(DEPDIR)/status-successful-threads.Po \ ./$(DEPDIR)/status-successful.Po \ ./$(DEPDIR)/status-unfinished-threads.Po \ ./$(DEPDIR)/status-unfinished.Po ./$(DEPDIR)/statx.Po \ @@ -7256,10 +7268,11 @@ sockopt-sol_socket-success-Xverbose.c sockopt-timestamp.c \ splice.c $(stack_fcall_SOURCES) $(stack_fcall_attach_SOURCES) \ $(stack_fcall_mangled_SOURCES) stat.c stat64.c statfs.c \ - statfs64.c status-all.c status-failed.c status-failed-long.c \ - status-failed-status.c status-none.c status-none-f.c \ - status-none-threads.c status-successful.c \ - status-successful-long.c status-successful-status.c \ + statfs64.c status-all.c status-detached-threads.c \ + status-failed.c status-failed-long.c status-failed-status.c \ + status-none.c status-none-f.c status-none-threads.c \ + status-successful.c status-successful-long.c \ + status-successful-status.c status-successful-threads.c \ status-unfinished.c status-unfinished-threads.c statx.c \ strace--decode-pids-comm.c strace--strings-in-hex.c \ strace--strings-in-hex-all.c \ @@ -7684,10 +7697,11 @@ sockopt-sol_socket-success-Xverbose.c sockopt-timestamp.c \ splice.c $(stack_fcall_SOURCES) $(stack_fcall_attach_SOURCES) \ $(stack_fcall_mangled_SOURCES) stat.c stat64.c statfs.c \ - statfs64.c status-all.c status-failed.c status-failed-long.c \ - status-failed-status.c status-none.c status-none-f.c \ - status-none-threads.c status-successful.c \ - status-successful-long.c status-successful-status.c \ + statfs64.c status-all.c status-detached-threads.c \ + status-failed.c status-failed-long.c status-failed-status.c \ + status-none.c status-none-f.c status-none-threads.c \ + status-successful.c status-successful-long.c \ + status-successful-status.c status-successful-threads.c \ status-unfinished.c status-unfinished-threads.c statx.c \ strace--decode-pids-comm.c strace--strings-in-hex.c \ strace--strings-in-hex-all.c \ @@ -9165,7 +9179,9 @@ pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 stat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 statfs_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 +status_detached_threads_LDADD = -lpthread $(LDADD) status_none_threads_LDADD = -lpthread $(LDADD) +status_successful_threads_LDADD = -lpthread $(LDADD) status_unfinished_threads_LDADD = -lpthread $(LDADD) threads_execve_LDADD = -lpthread $(clock_LIBS) $(LDADD) threads_execve__quiet_thread_execve_LDADD = -lpthread $(clock_LIBS) $(LDADD) @@ -9958,7 +9974,9 @@ sigblock.test \ sigign.test \ status-detached.test \ + status-detached-threads.test \ status-none-threads.test \ + status-successful-threads.test \ status-unfinished-threads.test \ strace--tips.test \ strace--tips-full.test \ @@ -14388,6 +14406,10 @@ @rm -f status-all$(EXEEXT) $(AM_V_CCLD)$(LINK) $(status_all_OBJECTS) $(status_all_LDADD) $(LIBS) +status-detached-threads$(EXEEXT): $(status_detached_threads_OBJECTS) $(status_detached_threads_DEPENDENCIES) $(EXTRA_status_detached_threads_DEPENDENCIES) + @rm -f status-detached-threads$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_detached_threads_OBJECTS) $(status_detached_threads_LDADD) $(LIBS) + status-failed$(EXEEXT): $(status_failed_OBJECTS) $(status_failed_DEPENDENCIES) $(EXTRA_status_failed_DEPENDENCIES) @rm -f status-failed$(EXEEXT) $(AM_V_CCLD)$(LINK) $(status_failed_OBJECTS) $(status_failed_LDADD) $(LIBS) @@ -14424,6 +14446,10 @@ @rm -f status-successful-status$(EXEEXT) $(AM_V_CCLD)$(LINK) $(status_successful_status_OBJECTS) $(status_successful_status_LDADD) $(LIBS) +status-successful-threads$(EXEEXT): $(status_successful_threads_OBJECTS) $(status_successful_threads_DEPENDENCIES) $(EXTRA_status_successful_threads_DEPENDENCIES) + @rm -f status-successful-threads$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_successful_threads_OBJECTS) $(status_successful_threads_LDADD) $(LIBS) + status-unfinished$(EXEEXT): $(status_unfinished_OBJECTS) $(status_unfinished_DEPENDENCIES) $(EXTRA_status_unfinished_DEPENDENCIES) @rm -f status-unfinished$(EXEEXT) $(AM_V_CCLD)$(LINK) $(status_unfinished_OBJECTS) $(status_unfinished_LDADD) $(LIBS) @@ -15919,6 +15945,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/statfs-statfs.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/statfs64.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-all.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-detached-threads.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-failed-long.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-failed-status.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-failed.Po@am__quote@ # am--include-marker @@ -15927,6 +15954,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-none.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-successful-long.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-successful-status.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-successful-threads.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-successful.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-unfinished-threads.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-unfinished.Po@am__quote@ # am--include-marker @@ -18258,6 +18286,7 @@ -rm -f ./$(DEPDIR)/statfs-statfs.Po -rm -f ./$(DEPDIR)/statfs64.Po -rm -f ./$(DEPDIR)/status-all.Po + -rm -f ./$(DEPDIR)/status-detached-threads.Po -rm -f ./$(DEPDIR)/status-failed-long.Po -rm -f ./$(DEPDIR)/status-failed-status.Po -rm -f ./$(DEPDIR)/status-failed.Po @@ -18266,6 +18295,7 @@ -rm -f ./$(DEPDIR)/status-none.Po -rm -f ./$(DEPDIR)/status-successful-long.Po -rm -f ./$(DEPDIR)/status-successful-status.Po + -rm -f ./$(DEPDIR)/status-successful-threads.Po -rm -f ./$(DEPDIR)/status-successful.Po -rm -f ./$(DEPDIR)/status-unfinished-threads.Po -rm -f ./$(DEPDIR)/status-unfinished.Po @@ -19505,6 +19535,7 @@ -rm -f ./$(DEPDIR)/statfs-statfs.Po -rm -f ./$(DEPDIR)/statfs64.Po -rm -f ./$(DEPDIR)/status-all.Po + -rm -f ./$(DEPDIR)/status-detached-threads.Po -rm -f ./$(DEPDIR)/status-failed-long.Po -rm -f ./$(DEPDIR)/status-failed-status.Po -rm -f ./$(DEPDIR)/status-failed.Po @@ -19513,6 +19544,7 @@ -rm -f ./$(DEPDIR)/status-none.Po -rm -f ./$(DEPDIR)/status-successful-long.Po -rm -f ./$(DEPDIR)/status-successful-status.Po + -rm -f ./$(DEPDIR)/status-successful-threads.Po -rm -f ./$(DEPDIR)/status-successful.Po -rm -f ./$(DEPDIR)/status-unfinished-threads.Po -rm -f ./$(DEPDIR)/status-unfinished.Po @@ -23000,7 +23032,7 @@ ksysent.h: $(srcdir)/ksysent.sed echo '#include ' | \ $(CPP) $(AM_CPPFLAGS) $(CPPFLAGS) -dM - > $@.t1 - LC_COLLATE=C sed -r -n -f $(srcdir)/ksysent.sed < $@.t1 > $@.t2 + LC_COLLATE=C sed -E -n -f $(srcdir)/ksysent.sed < $@.t1 > $@.t2 mv -f $@.t2 $@ rm -f $@.t1 diff -Nru strace-6.1/tests-mx32/membarrier.c strace-6.2/tests-mx32/membarrier.c --- strace-6.1/tests-mx32/membarrier.c 2022-03-26 09:00:00.000000000 +0100 +++ strace-6.2/tests-mx32/membarrier.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check decoding of membarrier syscall. * * Copyright (c) 2015-2017 Dmitry V. Levin - * Copyright (c) 2015-2022 The strace developers. + * Copyright (c) 2015-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -80,6 +80,16 @@ "MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ|" "MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ"; break; + case 2|4|8|16|128|256|512: + text = "MEMBARRIER_CMD_GLOBAL_EXPEDITED|" + "MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED|" + "MEMBARRIER_CMD_PRIVATE_EXPEDITED|" + "MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED|" + "MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ|" + "MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ|" + "MEMBARRIER_CMD_GET_REGISTRATIONS"; + break; + default: error_msg_and_fail("membarrier returned %#x, does" " the test have to be updated?", rc); diff -Nru strace-6.1/tests-mx32/msg_control.c strace-6.2/tests-mx32/msg_control.c --- strace-6.1/tests-mx32/msg_control.c 2021-11-05 09:00:00.000000000 +0100 +++ strace-6.2/tests-mx32/msg_control.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check decoding of struct msghdr ancillary data. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2021 The strace developers. + * Copyright (c) 2016-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -20,11 +20,7 @@ #include #include -#if defined HAVE_STRUCT___KERNEL_SOCK_TIMEVAL \ - || defined HAVE_STRUCT___KERNEL_TIMESPEC -# include -#endif - +#include "kernel_time_types.h" #include "kernel_timeval.h" #include "kernel_old_timespec.h" @@ -361,7 +357,6 @@ (unsigned long) len, rc, errno2name()); } -#ifdef HAVE_STRUCT___KERNEL_SOCK_TIMEVAL static void test_scm_timestamp_new(struct msghdr *const mh, void *const page) { @@ -408,9 +403,7 @@ (unsigned) cmsg->cmsg_len, (unsigned long) len, sprintrc(rc)); } -#endif /* HAVE_STRUCT___KERNEL_SOCK_TIMEVAL */ -#ifdef HAVE_STRUCT___KERNEL_TIMESPEC static void test_scm_timestampns_new(struct msghdr *const mh, void *const page) { @@ -512,7 +505,6 @@ (unsigned) cmsg->cmsg_len, (unsigned long) len, sprintrc(rc)); } -#endif /* HAVE_STRUCT___KERNEL_TIMESPEC */ static void print_security(const struct cmsghdr *const cmsg, const size_t cmsg_len) @@ -662,13 +654,9 @@ test_scm_timestamp_old(mh, page); test_scm_timestampns_old(mh, page); test_scm_timestamping_old(mh, page); -#ifdef HAVE_STRUCT___KERNEL_SOCK_TIMEVAL test_scm_timestamp_new(mh, page); -#endif -#ifdef HAVE_STRUCT___KERNEL_TIMESPEC test_scm_timestampns_new(mh, page); test_scm_timestamping_new(mh, page); -#endif test_unknown_type(mh, page, ARG_STR(SOL_SOCKET), "SCM_???"); } diff -Nru strace-6.1/tests-mx32/nlattr_ifla_brport.c strace-6.2/tests-mx32/nlattr_ifla_brport.c --- strace-6.1/tests-mx32/nlattr_ifla_brport.c 2022-06-18 20:00:00.000000000 +0200 +++ strace-6.2/tests-mx32/nlattr_ifla_brport.c 2023-02-26 09:00:00.000000000 +0100 @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2022 The strace developers. + * Copyright (c) 2017-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -39,7 +39,7 @@ { ENUM_KNOWN(0, IFLA_BRPORT_UNSPEC) }, { ENUM_KNOWN(0x18, IFLA_BRPORT_FLUSH) }, { ENUM_KNOWN(0x1a, IFLA_BRPORT_PAD) }, - { ARG_XLAT_UNKNOWN(0x28, "IFLA_BRPORT_???") }, + { ARG_XLAT_UNKNOWN(0x29, "IFLA_BRPORT_???") }, { ARG_XLAT_UNKNOWN(0xbad, "IFLA_BRPORT_???") }, }; for (size_t i = 0; i < ARRAY_SIZE(un_attrs); i++) { @@ -75,6 +75,7 @@ { ENUM_KNOWN(0x23, IFLA_BRPORT_MRP_RING_OPEN) }, { ENUM_KNOWN(0x24, IFLA_BRPORT_MRP_IN_OPEN) }, { ENUM_KNOWN(0x27, IFLA_BRPORT_LOCKED) }, + { ENUM_KNOWN(0x28, IFLA_BRPORT_MAB) }, }; void *nlh_u8 = midtail_alloc(NLMSG_SPACE(hdrlen), NLA_HDRLEN * 2 + sizeof(uint8_t)); diff -Nru strace-6.1/tests-mx32/nlattr_ifla_linkinfo.c strace-6.2/tests-mx32/nlattr_ifla_linkinfo.c --- strace-6.1/tests-mx32/nlattr_ifla_linkinfo.c 2022-08-11 12:07:09.000000000 +0200 +++ strace-6.2/tests-mx32/nlattr_ifla_linkinfo.c 2023-02-26 09:00:00.000000000 +0100 @@ -1,7 +1,7 @@ /* * IFLA_LINKINFO netlink attribute decoding check. * - * Copyright (c) 2018-2022 The strace developers. + * Copyright (c) 2018-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -897,7 +897,7 @@ { 0, "IFLA_BRPORT_UNSPEC" }, { 24, "IFLA_BRPORT_FLUSH" }, { 26, "IFLA_BRPORT_PAD" }, - { 40, "0x28 /* IFLA_BRPORT_??? */" }, + { 41, "0x29 /* IFLA_BRPORT_??? */" }, { 2989, "0xbad /* IFLA_BRPORT_??? */" }, }; @@ -940,6 +940,7 @@ { ARG_STR(IFLA_BRPORT_MRP_RING_OPEN) }, { ARG_STR(IFLA_BRPORT_MRP_IN_OPEN) }, { ARG_STR(IFLA_BRPORT_LOCKED) }, + { ARG_STR(IFLA_BRPORT_MAB) }, }; for (size_t k = 0; k < ARRAY_SIZE(u8_brport_attrs); k++) { diff -Nru strace-6.1/tests-mx32/nlattr_ndmsg.c strace-6.2/tests-mx32/nlattr_ndmsg.c --- strace-6.1/tests-mx32/nlattr_ndmsg.c 2022-08-07 10:00:00.000000000 +0200 +++ strace-6.2/tests-mx32/nlattr_ndmsg.c 2023-02-26 09:00:00.000000000 +0100 @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2022 The strace developers. + * Copyright (c) 2017-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -186,8 +186,10 @@ static const struct strval32 ntfe_flags[] = { { ARG_STR(0) }, { ARG_XLAT_KNOWN(0x1, "NTF_EXT_MANAGED") }, - { ARG_XLAT_KNOWN(0xdeadbeef, "NTF_EXT_MANAGED|0xdeadbeee") }, - { ARG_XLAT_UNKNOWN(0xfeedcafe, "NTF_EXT_???") }, + { ARG_XLAT_KNOWN(0x2, "NTF_EXT_LOCKED") }, + { ARG_XLAT_KNOWN(0xdeadbeef, "NTF_EXT_MANAGED|NTF_EXT_LOCKED" + "|0xdeadbeec") }, + { ARG_XLAT_UNKNOWN(0xfeedcafc, "NTF_EXT_???") }, }; for (size_t i = 0; i < ARRAY_SIZE(ntfe_flags); i++) { diff -Nru strace-6.1/tests-mx32/pc.test strace-6.2/tests-mx32/pc.test --- strace-6.1/tests-mx32/pc.test 2020-12-31 09:00:00.000000000 +0100 +++ strace-6.2/tests-mx32/pc.test 2023-02-26 09:00:00.000000000 +0100 @@ -3,7 +3,7 @@ # Check -i option. # # Copyright (c) 2015 Dmitry V. Levin -# Copyright (c) 2015-2020 The strace developers. +# Copyright (c) 2015-2023 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -18,19 +18,20 @@ $STRACE $args 2> "$LOG" || dump_log_and_fail_with "$STRACE $args failed" -len="$(sed -r -n 's/^\[[[:xdigit:]]+\] write\(-1, 0x8, ([[:digit:]]{1,2})\)[[:space:]]+= -1 .*/\1/p' "$LOG")" && +len="$(sed -E -n 's/^\[[[:xdigit:]]+\] write\(-1, 0x8, ([[:digit:]]{1,2})\)[[:space:]]+= -1 .*/\1/p' "$LOG")" && [ -n "$len" ] && -pid="$(sed -r -n 's/^\[[[:xdigit:]]{'"$len"'}\] --- SIGCHLD \{si_signo=SIGCHLD, si_code=CLD_(KILLED|DUMPED), si_pid=([[:digit:]]+), .*/\2/p' "$LOG")" && +pid="$(sed -E -n 's/^\[[[:xdigit:]]{'"$len"'}\] --- SIGCHLD \{si_signo=SIGCHLD, si_code=CLD_(KILLED|DUMPED), si_pid=([[:digit:]]+), .*/\2/p' "$LOG")" && [ -n "$pid" ] && -ip="$(sed -r -n 's/^\[pid +'"$pid"'\] \[([[:xdigit:]]{'"$len"'})] --- SIGSEGV \{.*\} ---$/\1/p' "$LOG")" && +ip="$(sed -E -n 's/^\[pid +'"$pid"'\] \[([[:xdigit:]]{'"$len"'})] --- SIGSEGV \{.*\} ---$/\1/p' "$LOG")" && [ -n "$ip" ] && -addr="$(echo "$ip" |sed -r 's/^0+//')" && +# strip the last nibble of the address. On hppa the lowest 2 bits encode the address space. +addr="$(echo "$ip" |sed -E 's/^0+//')" && addr=${addr%?} && [ -n "$addr" ] || dump_log_and_fail_with cat > "$EXP" << __EOF__ \\[[[:xdigit:]]{$len}\\] munmap\\(0x[[:xdigit:]]+, 0\\) += -1 .* -\\[pid +$pid\\] \\[$ip\\] --- SIGSEGV \\{si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x$addr\\} --- +\\[pid +$pid\\] \\[$ip\\] --- SIGSEGV \\{si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x$addr[[:xdigit:]]\\} --- \\[pid +$pid\\] \\[\\?{$len}\\] \\+\\+\\+ killed by SIGSEGV( \\(core dumped\\))? \\+\\+\\+ \\[\\?{$len}\\] \\+\\+\\+ exited with 0 \\+\\+\\+ __EOF__ diff -Nru strace-6.1/tests-mx32/ptrace.c strace-6.2/tests-mx32/ptrace.c --- strace-6.1/tests-mx32/ptrace.c 2022-10-03 10:00:00.000000000 +0200 +++ strace-6.2/tests-mx32/ptrace.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check decoding of ptrace syscall. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2022 The strace developers. + * Copyright (c) 2016-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -1836,7 +1836,7 @@ { ARG_XLAT_KNOWN(0x4, "TRAP_HWBKPT") }, #endif { ARG_XLAT_KNOWN(0x5, "TRAP_UNK"), "" -#ifdef __alpha__ +#if defined __alpha__ && defined HAVE_SIGINFO_T_SI_TRAPNO ", si_trapno=0 /* GEN_??? */" }, { ARG_XLAT_KNOWN(0x5, "TRAP_UNK"), @@ -1847,7 +1847,7 @@ ", si_trapno=-26 /* GEN_??? */" }, { ARG_XLAT_KNOWN(0x5, "TRAP_UNK"), "" ", si_trapno=-1234567890 /* GEN_??? */" -#endif /* __alpha__ */ +#endif /* __alpha__ && HAVE_SIGINFO_T_SI_TRAPNO */ }, { ARG_XLAT_KNOWN(0x6, "TRAP_PERF"), "" #ifdef HAVE_SIGINFO_T_SI_PERF_DATA @@ -1917,7 +1917,7 @@ switch (sip->si_code) { case 5: /* TRAP_UNK */ -#ifdef __alpha__ +#if defined __alpha__ && defined HAVE_SIGINFO_T_SI_TRAPNO sip->si_trapno = trap_unk_vecs[trap_unk_pos]; #endif trap_unk_pos = (trap_unk_pos + 1) @@ -1981,7 +1981,7 @@ do_ptrace(PTRACE_SETSIGINFO, pid, bad_request, (uintptr_t) sip); printf("ptrace(" XLAT_FMT ", %d, %#lx, {si_signo=" XLAT_FMT_U ", si_code=" XLAT_FMT ", si_errno=" XLAT_FMT_U ", si_addr=%p" -#ifdef __alpha__ +#if defined __alpha__ && defined HAVE_SIGINFO_T_SI_TRAPNO ", si_trapno=" XLAT_KNOWN(-7, "GEN_FLTINE") #endif "}) = %s\n", diff -Nru strace-6.1/tests-mx32/ptrace_syscall_info.c strace-6.2/tests-mx32/ptrace_syscall_info.c --- strace-6.1/tests-mx32/ptrace_syscall_info.c 2021-10-08 03:50:59.000000000 +0200 +++ strace-6.2/tests-mx32/ptrace_syscall_info.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check decoding of ptrace PTRACE_GET_SYSCALL_INFO request. * * Copyright (c) 2018 Dmitry V. Levin - * Copyright (c) 2018-2021 The strace developers. + * Copyright (c) 2018-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -132,52 +132,48 @@ memset((void *) buf, -1, size); long rc = do_ptrace(PTRACE_GET_SYSCALL_INFO, pid, size, buf); - if (rc < 0) { - printf("ptrace(" XLAT_FMT ", %d, %u, %#lx) = %s\n", - XLAT_ARGS(PTRACE_GET_SYSCALL_INFO), pid, - (unsigned int) size, buf, errstr); - return false; - } - if (rc < (long) expected_none_size) - FAIL("signal stop mismatch"); - printf("ptrace(" XLAT_FMT ", %d, %u, ", XLAT_ARGS(PTRACE_GET_SYSCALL_INFO), pid, size); - if (!size) { + if (rc < (long) expected_none_size || size == 0) printf("%#lx) = %s\n", buf, errstr); + + if (rc < 0) + return false; + if (rc < (long) expected_none_size) + FAIL("signal stop mismatch"); + if (size == 0) continue; - } /* copy to a local structure to avoid unaligned access */ struct_ptrace_syscall_info info; memcpy(&info, (void *) buf, MIN(size, expected_none_size)); + printf("{op=" XLAT_FMT, XLAT_ARGS(PTRACE_SYSCALL_INFO_NONE)); if (info.op != PTRACE_SYSCALL_INFO_NONE) FAIL("signal stop mismatch"); - printf("{op=" XLAT_FMT, XLAT_ARGS(PTRACE_SYSCALL_INFO_NONE)); if (size < offsetofend(struct_ptrace_syscall_info, arch)) goto printed_none; - if (!info.arch) - FAIL("signal stop mismatch"); printf(", arch="); printxval(audit_arch, info.arch, "AUDIT_ARCH_???"); + if (!info.arch) + FAIL("signal stop mismatch"); if (size < offsetofend(struct_ptrace_syscall_info, instruction_pointer)) goto printed_none; - if (!info.instruction_pointer) - FAIL("signal stop mismatch"); printf(", instruction_pointer=%#llx", (unsigned long long) info.instruction_pointer); + if (!info.instruction_pointer) + FAIL("signal stop mismatch"); if (size < offsetofend(struct_ptrace_syscall_info, stack_pointer)) goto printed_none; - if (!info.stack_pointer) - FAIL("signal stop mismatch"); printf(", stack_pointer=%#llx", (unsigned long long) info.stack_pointer); + if (!info.stack_pointer) + FAIL("signal stop mismatch"); printed_none: printf("}) = %s\n", errstr); @@ -195,59 +191,58 @@ memset((void *) buf, -1, size); long rc = do_ptrace(PTRACE_GET_SYSCALL_INFO, pid, size, buf); - if (rc < 0) - PFAIL("PTRACE_GET_SYSCALL_INFO"); - - if (rc < (long) expected_entry_size) - FAIL("#%d: entry stop mismatch", ptrace_stop); - printf("ptrace(" XLAT_FMT ", %d, %u, ", XLAT_ARGS(PTRACE_GET_SYSCALL_INFO), pid, size); - if (!size) { + if (rc < (long) expected_entry_size || size == 0) printf("%#lx) = %s\n", buf, errstr); + + if (rc < 0) + FAIL("PTRACE_GET_SYSCALL_INFO"); + if (rc < (long) expected_entry_size) + FAIL("#%d: entry stop mismatch", ptrace_stop); + if (size == 0) continue; - } /* copy to a local structure to avoid unaligned access */ struct_ptrace_syscall_info info; memcpy(&info, (void *) buf, MIN(size, expected_entry_size)); + printf("{op=" XLAT_FMT, XLAT_ARGS(PTRACE_SYSCALL_INFO_ENTRY)); if (info.op != PTRACE_SYSCALL_INFO_ENTRY) FAIL("#%d: entry stop mismatch", ptrace_stop); - printf("{op=" XLAT_FMT, XLAT_ARGS(PTRACE_SYSCALL_INFO_ENTRY)); if (size < offsetofend(struct_ptrace_syscall_info, arch)) goto printed_entry_common; - if (!info.arch) - FAIL("#%d: entry stop mismatch", ptrace_stop); printf(", arch="); printxval(audit_arch, info.arch, "AUDIT_ARCH_???"); + if (!info.arch) + FAIL("#%d: entry stop mismatch", ptrace_stop); if (size < offsetofend(struct_ptrace_syscall_info, instruction_pointer)) goto printed_entry_common; - if (!info.instruction_pointer) - FAIL("#%d: entry stop mismatch", ptrace_stop); printf(", instruction_pointer=%#llx", (unsigned long long) info.instruction_pointer); + if (!info.instruction_pointer) + FAIL("#%d: entry stop mismatch", ptrace_stop); if (size < offsetofend(struct_ptrace_syscall_info, stack_pointer)) goto printed_entry_common; - if (!info.stack_pointer) - FAIL("#%d: entry stop mismatch", ptrace_stop); printf(", stack_pointer=%#llx", (unsigned long long) info.stack_pointer); + if (!info.stack_pointer) + FAIL("#%d: entry stop mismatch", ptrace_stop); if (size < offsetofend(struct_ptrace_syscall_info, entry.nr)) goto printed_entry_common; - const unsigned long *exp_args = args[ptrace_stop / 2]; - if (info.entry.nr != exp_args[0]) - FAIL("#%d: entry stop mismatch", ptrace_stop); printf(", entry={nr=" NABBR("%llu") VERB(" /* ") NRAW("__NR_%s") VERB(" */"), XLAT_SEL((unsigned long long) info.entry.nr, sc_names[ptrace_stop / 2])); + const unsigned long *exp_args = args[ptrace_stop / 2]; + if (info.entry.nr != exp_args[0]) + FAIL("#%d: entry stop mismatch", ptrace_stop); for (unsigned int i = 0; i < ARRAY_SIZE(info.entry.args); ++i) { const unsigned int i_size = @@ -263,10 +258,10 @@ #else # define CAST #endif - if (CAST info.entry.args[i] != exp_args[i + 1]) - FAIL("#%d: entry stop mismatch", ptrace_stop); printf("%s%#llx", (i ? ", " : ", args=["), (unsigned long long) info.entry.args[i]); + if (CAST info.entry.args[i] != exp_args[i + 1]) + FAIL("#%d: entry stop mismatch", ptrace_stop); } printf("]"); @@ -287,49 +282,48 @@ memset((void *) buf, -1, size); long rc = do_ptrace(PTRACE_GET_SYSCALL_INFO, pid, size, buf); - if (rc < 0) - PFAIL("PTRACE_GET_SYSCALL_INFO"); - - if (rc < (long) expected_exit_size) - FAIL("#%d: exit stop mismatch", ptrace_stop); - printf("ptrace(" XLAT_FMT ", %d, %u, ", XLAT_ARGS(PTRACE_GET_SYSCALL_INFO), pid, size); - if (!size) { + if (rc < (long) expected_exit_size || size == 0) printf("%#lx) = %s\n", buf, errstr); + + if (rc < 0) + FAIL("PTRACE_GET_SYSCALL_INFO"); + if (rc < (long) expected_exit_size) + FAIL("#%d: exit stop mismatch", ptrace_stop); + if (size == 0) continue; - } /* copy to a local structure to avoid unaligned access */ struct_ptrace_syscall_info info; memcpy(&info, (void *) buf, MIN(size, expected_exit_size)); + printf("{op=" XLAT_FMT, XLAT_ARGS(PTRACE_SYSCALL_INFO_EXIT)); if (info.op != PTRACE_SYSCALL_INFO_EXIT) FAIL("#%d: exit stop mismatch", ptrace_stop); - printf("{op=" XLAT_FMT, XLAT_ARGS(PTRACE_SYSCALL_INFO_EXIT)); if (size < offsetofend(struct_ptrace_syscall_info, arch)) goto printed_exit_common; - if (!info.arch) - FAIL("#%d: exit stop mismatch", ptrace_stop); printf(", arch="); printxval(audit_arch, info.arch, "AUDIT_ARCH_???"); + if (!info.arch) + FAIL("#%d: exit stop mismatch", ptrace_stop); if (size < offsetofend(struct_ptrace_syscall_info, instruction_pointer)) goto printed_exit_common; - if (!info.instruction_pointer) - FAIL("#%d: exit stop mismatch", ptrace_stop); printf(", instruction_pointer=%#llx", (unsigned long long) info.instruction_pointer); + if (!info.instruction_pointer) + FAIL("#%d: exit stop mismatch", ptrace_stop); if (size < offsetofend(struct_ptrace_syscall_info, stack_pointer)) goto printed_exit_common; - if (!info.stack_pointer) - FAIL("#%d: exit stop mismatch", ptrace_stop); printf(", stack_pointer=%#llx", (unsigned long long) info.stack_pointer); + if (!info.stack_pointer) + FAIL("#%d: exit stop mismatch", ptrace_stop); const struct { unsigned int is_error; @@ -342,20 +336,20 @@ if (size < offsetofend(struct_ptrace_syscall_info, exit.rval)) goto printed_exit_common; - if (info.exit.rval != exp_param->rval) - FAIL("#%d: exit stop mismatch", ptrace_stop); if (size >= expected_exit_size && info.exit.is_error) { printf(", exit={rval=" XLAT_FMT_D, XLAT_SEL(exp_param->rval, exp_param->str)); } else { printf(", exit={rval=%lld", (long long) info.exit.rval); } + if (info.exit.rval != exp_param->rval) + FAIL("#%d: exit stop mismatch", ptrace_stop); if (size >= expected_exit_size) { - if (info.exit.is_error != exp_param->is_error) - FAIL("#%d: exit stop mismatch", ptrace_stop); printf(", is_error=%u", (unsigned int) info.exit.is_error); + if (info.exit.is_error != exp_param->is_error) + FAIL("#%d: exit stop mismatch", ptrace_stop); } printf("}"); diff -Nru strace-6.1/tests-mx32/sockopt-timestamp.c strace-6.2/tests-mx32/sockopt-timestamp.c --- strace-6.1/tests-mx32/sockopt-timestamp.c 2021-08-31 10:00:00.000000000 +0200 +++ strace-6.2/tests-mx32/sockopt-timestamp.c 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ * Check decoding of timestamp control messages. * * Copyright (c) 2019 Dmitry V. Levin - * Copyright (c) 2019-2021 The strace developers. + * Copyright (c) 2019-2023 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -19,11 +19,7 @@ # include # include -# if defined HAVE_STRUCT___KERNEL_SOCK_TIMEVAL \ - || defined HAVE_STRUCT___KERNEL_TIMESPEC -# include -# endif - +# include "kernel_time_types.h" # include "kernel_timeval.h" # include "kernel_old_timespec.h" @@ -110,7 +106,6 @@ (long long) ts.tv_sec, (long long) ts.tv_nsec); } -# ifdef HAVE_STRUCT___KERNEL_SOCK_TIMEVAL static void print_timestamp_new(const struct cmsghdr *c) { @@ -129,9 +124,7 @@ printf("{tv_sec=%lld, tv_usec=%lld}", (long long) tv.tv_sec, (long long) tv.tv_usec); } -# endif /* HAVE_STRUCT___KERNEL_SOCK_TIMEVAL */ -# ifdef HAVE_STRUCT___KERNEL_TIMESPEC static void print_timestampns_new(const struct cmsghdr *c) { @@ -150,7 +143,6 @@ printf("{tv_sec=%lld, tv_nsec=%lld}", (long long) ts.tv_sec, (long long) ts.tv_nsec); } -# endif /* HAVE_STRUCT___KERNEL_TIMESPEC */ static unsigned int test_sockopt(int so_val, const char *str, void (*fun)(const struct cmsghdr *)) @@ -243,12 +235,8 @@ } tests[] = { { SO_TIMESTAMP_OLD, "SO_TIMESTAMP_OLD", print_timestamp_old }, { SO_TIMESTAMPNS_OLD, "SO_TIMESTAMPNS_OLD", print_timestampns_old }, -# ifdef HAVE_STRUCT___KERNEL_SOCK_TIMEVAL { SO_TIMESTAMP_NEW, "SO_TIMESTAMP_NEW", print_timestamp_new }, -# endif -# ifdef HAVE_STRUCT___KERNEL_TIMESPEC { SO_TIMESTAMPNS_NEW, "SO_TIMESTAMPNS_NEW", print_timestampns_new }, -# endif }; unsigned int tested = 0; for (unsigned int i = 0; i < ARRAY_SIZE(tests); ++i) diff -Nru strace-6.1/tests-mx32/status-detached-threads.c strace-6.2/tests-mx32/status-detached-threads.c --- strace-6.1/tests-mx32/status-detached-threads.c 1970-01-01 01:00:00.000000000 +0100 +++ strace-6.2/tests-mx32/status-detached-threads.c 2022-12-28 09:00:00.000000000 +0100 @@ -0,0 +1,56 @@ +/* + * Check status=detached filtering when a non-leader thread invokes execve. + * + * Copyright (c) 2019 Paul Chaignon + * Copyright (c) 2022 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#include +#include +#include +#include +#include + +static void * +thread(void *arg) +{ + struct timespec ts = { .tv_nsec = 100000000 }; + nanosleep(&ts, 0); + + char *argv[] = {((char **) arg)[0], (char *) "0", NULL}; + pid_t pid = getpid(); + pid_t tid = syscall(__NR_gettid); + + printf("%-5d execve(\"%s\", [\"%s\", \"0\"], NULL \n" + "%-5d +++ superseded by execve in pid %u +++\n" + "%-5d +++ exited with 0 +++\n", + tid, argv[0], argv[0], pid, pid, tid, pid); + + execve(argv[0], argv, NULL); + perror_msg_and_fail("execve"); +} + +int +main(int ac, char **av) +{ + setvbuf(stdout, NULL, _IONBF, 0); + + if (ac > 1) + return 0; + + pthread_t t; + errno = pthread_create(&t, NULL, thread, av); + if (errno) + perror_msg_and_fail("pthread_create"); + + struct timespec ts = { .tv_sec = 123 }; + nanosleep(&ts, 0); + + return 1; +} diff -Nru strace-6.1/tests-mx32/status-detached-threads.test strace-6.2/tests-mx32/status-detached-threads.test --- strace-6.1/tests-mx32/status-detached-threads.test 1970-01-01 01:00:00.000000000 +0100 +++ strace-6.2/tests-mx32/status-detached-threads.test 2022-12-28 09:00:00.000000000 +0100 @@ -0,0 +1,16 @@ +#!/bin/sh +# +# Check status=detached filtering when a non-leader thread invokes execve. +# +# Copyright (c) 2019-2022 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +# Check that PTRACE_EVENT_EXEC support in kernel is good enough. +# The kernel before commit v3.1-rc1~308^2~7 reported 0 instead of old pid. +require_min_kernel_version_or_skip 3.1 + +run_strace_match_diff -f --status=detached --trace=execve,/sleep diff -Nru strace-6.1/tests-mx32/status-successful-threads.c strace-6.2/tests-mx32/status-successful-threads.c --- strace-6.1/tests-mx32/status-successful-threads.c 1970-01-01 01:00:00.000000000 +0100 +++ strace-6.2/tests-mx32/status-successful-threads.c 2022-12-29 09:00:00.000000000 +0100 @@ -0,0 +1,71 @@ +/* + * Check status=successful filtering when a non-leader thread invokes execve. + * + * Copyright (c) 2019 Paul Chaignon + * Copyright (c) 2022 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#include +#include +#include +#include +#include + +static pid_t leader; + +static void * +thread_exec(void *arg) +{ + pid_t tid = syscall(__NR_gettid); + printf("%-5d +++ superseded by execve in pid %u +++\n", + leader, tid); + + char *argv[] = {((char **) arg)[0], (char *) "0", NULL}; + execve(argv[0], argv, NULL); + perror_msg_and_fail("execve"); +} + +int +main(int ac, char **av) +{ + if (ac > 1) + return 0; + + int fds[2]; + if (pipe(fds)) + perror_msg_and_fail("pipe"); + + pid_t child = fork(); + if (child < 0) + perror_msg_and_fail("fork"); + + leader = getpid(); + setvbuf(stdout, NULL, _IONBF, 0); + + if (!child) { + close(fds[0]); + pthread_t thre; + errno = pthread_create(&thre, NULL, thread_exec, av); + if (errno) + perror_msg_and_fail("pthread_create"); + for (;;) { /* wait for execve */ } + return 1; + } + + close(fds[1]); + unsigned int len = sizeof(fds[1]); + struct iovec rio = { .iov_base = &fds[1], .iov_len = len }; + if (readv(fds[0], &rio, 1)) + perror_msg_and_fail("readv"); + + printf("%-5d readv(%d, [{iov_base=\"\", iov_len=%u}], 1) = 0\n" + "%-5d +++ exited with 0 +++\n", + leader, fds[0], len, leader); + return 0; +} diff -Nru strace-6.1/tests-mx32/status-successful-threads.test strace-6.2/tests-mx32/status-successful-threads.test --- strace-6.1/tests-mx32/status-successful-threads.test 1970-01-01 01:00:00.000000000 +0100 +++ strace-6.2/tests-mx32/status-successful-threads.test 2022-12-29 09:00:00.000000000 +0100 @@ -0,0 +1,16 @@ +#!/bin/sh +# +# Check status=successful filtering when a non-leader thread invokes execve. +# +# Copyright (c) 2019-2022 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +# Check that PTRACE_EVENT_EXEC support in kernel is good enough. +# The kernel before commit v3.1-rc1~308^2~7 reported 0 instead of old pid. +require_min_kernel_version_or_skip 3.1 + +run_strace_match_diff -f -z --signal=none --trace=readv diff -Nru strace-6.1/tests-mx32/strace-S.test strace-6.2/tests-mx32/strace-S.test --- strace-6.1/tests-mx32/strace-S.test 2020-03-23 04:19:09.000000000 +0100 +++ strace-6.2/tests-mx32/strace-S.test 2023-02-26 09:00:00.000000000 +0100 @@ -2,7 +2,7 @@ # # Check -S option. # -# Copyright (c) 2016-2020 The strace developers. +# Copyright (c) 2016-2023 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -19,7 +19,7 @@ sedexpr="$1"; shift run_strace -c -w $sortby ../readv > /dev/null - sed -r -n -e "$sedexpr" < "$LOG" > "$OUT" + sed -E -n -e "$sedexpr" < "$LOG" > "$OUT" [ -s "$OUT" ] || fail_ "$STRACE $args output mismatch" diff -Nru strace-6.1/.version strace-6.2/.version --- strace-6.1/.version 2022-12-12 19:29:18.000000000 +0100 +++ strace-6.2/.version 2023-02-26 22:21:13.000000000 +0100 @@ -1 +1 @@ -6.1 +6.2 diff -Nru strace-6.1/.year strace-6.2/.year --- strace-6.1/.year 2022-12-12 19:29:27.000000000 +0100 +++ strace-6.2/.year 2023-02-26 22:21:23.000000000 +0100 @@ -1 +1 @@ -2022 +2023