strace/linux/arch_defs_.h
Eugene Syromyatnikov 7eac1da9be Introduce print_big_u64_addr
This is needed at least for bpf, btrfs, and sg_io, as 32-bit tracer
cannot figure out whether the kernel is 32-bit or 64-bit,
and its behaviour differs when it handles u64 as a pointer.

* linux/arch_defs_.h [!CAN_ARCH_BE_COMPAT_ON_64BIT_KERNEL]
(CAN_ARCH_BE_COMPAT_ON_64BIT_KERNEL): New definition, default to 0.
* linux/arm/arch_defs_.h (CAN_ARCH_BE_COMPAT_ON_64BIT_KERNEL):
Define to 1.
* linux/i386/arch_defs_.h (CAN_ARCH_BE_COMPAT_ON_64BIT_KERNEL):
Likewise.
* linux/mips/arch_defs_.h (CAN_ARCH_BE_COMPAT_ON_64BIT_KERNEL):
Likewise.
* linux/powerpc/arch_defs_.h (CAN_ARCH_BE_COMPAT_ON_64BIT_KERNEL):
Likewise.
* linux/riscv/arch_defs_.h (CAN_ARCH_BE_COMPAT_ON_64BIT_KERNEL):
Likewise.
* linux/s390/arch_defs_.h (CAN_ARCH_BE_COMPAT_ON_64BIT_KERNEL):
Likewise.
* linux/sparc/arch_defs_.h (CAN_ARCH_BE_COMPAT_ON_64BIT_KERNEL):
Likewise.
* linux/tile/arch_defs_.h (CAN_ARCH_BE_COMPAT_ON_64BIT_KERNEL):
Likewise.
* defs.h (print_big_u64_addr): New function.

Co-Authored-by: Dmitry V. Levin <ldv@altlinux.org>
2018-04-04 12:24:19 +00:00

38 lines
727 B
C

/* Fallback file for arch-specific definitions. */
#ifndef HAVE_ARCH_GETRVAL2
# define HAVE_ARCH_GETRVAL2 0
#endif
#ifndef HAVE_ARCH_OLD_MMAP
# define HAVE_ARCH_OLD_MMAP 0
#endif
#ifndef HAVE_ARCH_OLD_MMAP_PGOFF
# define HAVE_ARCH_OLD_MMAP_PGOFF 0
#endif
#ifndef HAVE_ARCH_OLD_SELECT
# define HAVE_ARCH_OLD_SELECT 0
#endif
#ifndef HAVE_ARCH_UID16_SYSCALLS
# define HAVE_ARCH_UID16_SYSCALLS 0
#endif
#ifndef DEFAULT_PERSONALITY
# define DEFAULT_PERSONALITY 0
#endif
#ifndef SUPPORTED_PERSONALITIES
# define SUPPORTED_PERSONALITIES 1
#endif
#ifndef HAVE_ARCH_DEDICATED_ERR_REG
# define HAVE_ARCH_DEDICATED_ERR_REG 0
#endif
#ifndef CAN_ARCH_BE_COMPAT_ON_64BIT_KERNEL
# define CAN_ARCH_BE_COMPAT_ON_64BIT_KERNEL 0
#endif