/* config.h.in.  Generated from configure.ac by autoheader.  */

/* Define for the AArch64 architecture. */
#undef AARCH64

/* Define if building universal (internal helper macro) */
#undef AC_APPLE_UNIVERSAL_BUILD

/* Define for the Alpha architecture. */
#undef ALPHA

/* Define for the ARC architecture. */
#undef ARC

/* Define for the ARM architecture. */
#undef ARM

/* SA_RESTORER defined in <asm/signal.h> */
#undef ASM_SA_RESTORER

/* SIGRTMIN defined in <asm/signal.h> */
#undef ASM_SIGRTMIN

/* Define for the AVR32 architecture. */
#undef AVR32

/* Define for the Blackfin architecture. */
#undef BFIN

/* Define for the CRISv10 architecture. */
#undef CRISV10

/* Define for the CRISv32 architecture. */
#undef CRISV32

/* Define to 1 if you want OABI support on ARM EABI. */
#undef ENABLE_ARM_OABI

/* Define to 1 if you have the `accept4' function. */
#undef HAVE_ACCEPT4

/* Define to 1 if you have the <asm/cachectl.h> header file. */
#undef HAVE_ASM_CACHECTL_H

/* Define to 1 if you have the <asm/sigcontext.h> header file. */
#undef HAVE_ASM_SIGCONTEXT_H

/* Define to 1 if you have the <asm/sysmips.h> header file. */
#undef HAVE_ASM_SYSMIPS_H

/* Define to 1 if you have BLKGETSIZE64. */
#undef HAVE_BLKGETSIZE64

/* Define to 1 if you have the <bluetooth/bluetooth.h> header file. */
#undef HAVE_BLUETOOTH_BLUETOOTH_H

/* Define to 1 if you have the declaration of `BTRFS_COMPRESS_LZO', and to 0
   if you don't. */
#undef HAVE_DECL_BTRFS_COMPRESS_LZO

/* Define to 1 if you have the declaration of `BTRFS_COMPRESS_NONE', and to 0
   if you don't. */
#undef HAVE_DECL_BTRFS_COMPRESS_NONE

/* Define to 1 if you have the declaration of `BTRFS_COMPRESS_ZLIB', and to 0
   if you don't. */
#undef HAVE_DECL_BTRFS_COMPRESS_ZLIB

/* Define to 1 if you have the declaration of `CTL_ARLAN', and to 0 if you
   don't. */
#undef HAVE_DECL_CTL_ARLAN

/* Define to 1 if you have the declaration of `CTL_FRV', and to 0 if you
   don't. */
#undef HAVE_DECL_CTL_FRV

/* Define to 1 if you have the declaration of `CTL_PM', and to 0 if you don't.
   */
#undef HAVE_DECL_CTL_PM

/* Define to 1 if you have the declaration of `CTL_PROC', and to 0 if you
   don't. */
#undef HAVE_DECL_CTL_PROC

/* Define to 1 if you have the declaration of `CTL_S390DBF', and to 0 if you
   don't. */
#undef HAVE_DECL_CTL_S390DBF

/* Define to 1 if you have the declaration of `CTL_SUNRPC', and to 0 if you
   don't. */
#undef HAVE_DECL_CTL_SUNRPC

/* Define to 1 if you have the declaration of `KERN_ACPI_VIDEO_FLAGS', and to
   0 if you don't. */
#undef HAVE_DECL_KERN_ACPI_VIDEO_FLAGS

/* Define to 1 if you have the declaration of `KERN_BOOTLOADER_TYPE', and to 0
   if you don't. */
#undef HAVE_DECL_KERN_BOOTLOADER_TYPE

/* Define to 1 if you have the declaration of `KERN_COMPAT_LOG', and to 0 if
   you don't. */
#undef HAVE_DECL_KERN_COMPAT_LOG

/* Define to 1 if you have the declaration of `KERN_HZ_TIMER', and to 0 if you
   don't. */
#undef HAVE_DECL_KERN_HZ_TIMER

/* Define to 1 if you have the declaration of `KERN_IA64_UNALIGNED', and to 0
   if you don't. */
#undef HAVE_DECL_KERN_IA64_UNALIGNED

/* Define to 1 if you have the declaration of `KERN_MAX_LOCK_DEPTH', and to 0
   if you don't. */
#undef HAVE_DECL_KERN_MAX_LOCK_DEPTH

/* Define to 1 if you have the declaration of `KERN_NGROUPS_MAX', and to 0 if
   you don't. */
#undef HAVE_DECL_KERN_NGROUPS_MAX

/* Define to 1 if you have the declaration of `KERN_NMI_WATCHDOG', and to 0 if
   you don't. */
#undef HAVE_DECL_KERN_NMI_WATCHDOG

/* Define to 1 if you have the declaration of `KERN_PANIC_ON_NMI', and to 0 if
   you don't. */
#undef HAVE_DECL_KERN_PANIC_ON_NMI

/* Define to 1 if you have the declaration of `KERN_PRINTK_RATELIMIT', and to
   0 if you don't. */
#undef HAVE_DECL_KERN_PRINTK_RATELIMIT

/* Define to 1 if you have the declaration of `KERN_PRINTK_RATELIMIT_BURST',
   and to 0 if you don't. */
#undef HAVE_DECL_KERN_PRINTK_RATELIMIT_BURST

/* Define to 1 if you have the declaration of `KERN_PTY', and to 0 if you
   don't. */
#undef HAVE_DECL_KERN_PTY

/* Define to 1 if you have the declaration of `KERN_RANDOMIZE', and to 0 if
   you don't. */
#undef HAVE_DECL_KERN_RANDOMIZE

/* Define to 1 if you have the declaration of `KERN_SETUID_DUMPABLE', and to 0
   if you don't. */
#undef HAVE_DECL_KERN_SETUID_DUMPABLE

/* Define to 1 if you have the declaration of `KERN_SPARC_SCONS_PWROFF', and
   to 0 if you don't. */
#undef HAVE_DECL_KERN_SPARC_SCONS_PWROFF

/* Define to 1 if you have the declaration of `KERN_SPIN_RETRY', and to 0 if
   you don't. */
#undef HAVE_DECL_KERN_SPIN_RETRY

/* Define to 1 if you have the declaration of `KERN_UNKNOWN_NMI_PANIC', and to
   0 if you don't. */
#undef HAVE_DECL_KERN_UNKNOWN_NMI_PANIC

/* Define to 1 if you have the declaration of `LO_FLAGS_AUTOCLEAR', and to 0
   if you don't. */
#undef HAVE_DECL_LO_FLAGS_AUTOCLEAR

/* Define to 1 if you have the declaration of `LO_FLAGS_DIRECT_IO', and to 0
   if you don't. */
#undef HAVE_DECL_LO_FLAGS_DIRECT_IO

/* Define to 1 if you have the declaration of `LO_FLAGS_PARTSCAN', and to 0 if
   you don't. */
#undef HAVE_DECL_LO_FLAGS_PARTSCAN

/* Define to 1 if you have the declaration of `LO_FLAGS_READ_ONLY', and to 0
   if you don't. */
#undef HAVE_DECL_LO_FLAGS_READ_ONLY

/* Define to 1 if you have the declaration of `LO_FLAGS_USE_AOPS', and to 0 if
   you don't. */
#undef HAVE_DECL_LO_FLAGS_USE_AOPS

/* Define to 1 if you have the declaration of `NET_CIPSOV4_CACHE_BUCKET_SIZE',
   and to 0 if you don't. */
#undef HAVE_DECL_NET_CIPSOV4_CACHE_BUCKET_SIZE

/* Define to 1 if you have the declaration of `NET_CIPSOV4_CACHE_ENABLE', and
   to 0 if you don't. */
#undef HAVE_DECL_NET_CIPSOV4_CACHE_ENABLE

/* Define to 1 if you have the declaration of `NET_CIPSOV4_RBM_OPTFMT', and to
   0 if you don't. */
#undef HAVE_DECL_NET_CIPSOV4_RBM_OPTFMT

/* Define to 1 if you have the declaration of `NET_CIPSOV4_RBM_STRICTVALID',
   and to 0 if you don't. */
#undef HAVE_DECL_NET_CIPSOV4_RBM_STRICTVALID

/* Define to 1 if you have the declaration of `NET_CORE_AEVENT_ETIME', and to
   0 if you don't. */
#undef HAVE_DECL_NET_CORE_AEVENT_ETIME

/* Define to 1 if you have the declaration of `NET_CORE_AEVENT_RSEQTH', and to
   0 if you don't. */
#undef HAVE_DECL_NET_CORE_AEVENT_RSEQTH

/* Define to 1 if you have the declaration of `NET_CORE_BUDGET', and to 0 if
   you don't. */
#undef HAVE_DECL_NET_CORE_BUDGET

/* Define to 1 if you have the declaration of `NET_CORE_DESTROY_DELAY', and to
   0 if you don't. */
#undef HAVE_DECL_NET_CORE_DESTROY_DELAY

/* Define to 1 if you have the declaration of `NET_CORE_WARNINGS', and to 0 if
   you don't. */
#undef HAVE_DECL_NET_CORE_WARNINGS

/* Define to 1 if you have the declaration of `NET_DCCP', and to 0 if you
   don't. */
#undef HAVE_DECL_NET_DCCP

/* Define to 1 if you have the declaration of `NET_IPV4_CONF_ARP_ACCEPT', and
   to 0 if you don't. */
#undef HAVE_DECL_NET_IPV4_CONF_ARP_ACCEPT

/* Define to 1 if you have the declaration of `NET_IPV4_CONF_ARP_ANNOUNCE',
   and to 0 if you don't. */
#undef HAVE_DECL_NET_IPV4_CONF_ARP_ANNOUNCE

/* Define to 1 if you have the declaration of `NET_IPV4_CONF_ARP_IGNORE', and
   to 0 if you don't. */
#undef HAVE_DECL_NET_IPV4_CONF_ARP_IGNORE

/* Define to 1 if you have the declaration of `NET_IPV4_CONF_ARP_NOTIFY', and
   to 0 if you don't. */
#undef HAVE_DECL_NET_IPV4_CONF_ARP_NOTIFY

/* Define to 1 if you have the declaration of
   `NET_IPV4_CONF_FORCE_IGMP_VERSION', and to 0 if you don't. */
#undef HAVE_DECL_NET_IPV4_CONF_FORCE_IGMP_VERSION

/* Define to 1 if you have the declaration of
   `NET_IPV4_CONF_PROMOTE_SECONDARIES', and to 0 if you don't. */
#undef HAVE_DECL_NET_IPV4_CONF_PROMOTE_SECONDARIES

/* Define to 1 if you have the declaration of
   `NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR', and to 0 if you don't. */
#undef HAVE_DECL_NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR

/* Define to 1 if you have the declaration of `NET_IPV4_IGMP_MAX_MSF', and to
   0 if you don't. */
#undef HAVE_DECL_NET_IPV4_IGMP_MAX_MSF

/* Define to 1 if you have the declaration of `NET_IPV4_IPFRAG_MAX_DIST', and
   to 0 if you don't. */
#undef HAVE_DECL_NET_IPV4_IPFRAG_MAX_DIST

/* Define to 1 if you have the declaration of
   `NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS', and to 0 if you don't. */
#undef HAVE_DECL_NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS

/* Define to 1 if you have the declaration of
   `NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS', and to 0 if you don't. */
#undef HAVE_DECL_NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS

/* Define to 1 if you have the declaration of `NET_IPV6_MLD_MAX_MSF', and to 0
   if you don't. */
#undef HAVE_DECL_NET_IPV6_MLD_MAX_MSF

/* Define to 1 if you have the declaration of
   `NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS', and to 0 if you don't. */
#undef HAVE_DECL_NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS

/* Define to 1 if you have the declaration of `NET_IRDA', and to 0 if you
   don't. */
#undef HAVE_DECL_NET_IRDA

/* Define to 1 if you have the declaration of `NET_LLC', and to 0 if you
   don't. */
#undef HAVE_DECL_NET_LLC

/* Define to 1 if you have the declaration of `NET_NETFILTER', and to 0 if you
   don't. */
#undef HAVE_DECL_NET_NETFILTER

/* Define to 1 if you have the declaration of `NET_TCP_ABC', and to 0 if you
   don't. */
#undef HAVE_DECL_NET_TCP_ABC

/* Define to 1 if you have the declaration of `NET_TCP_ALLOWED_CONG_CONTROL',
   and to 0 if you don't. */
#undef HAVE_DECL_NET_TCP_ALLOWED_CONG_CONTROL

/* Define to 1 if you have the declaration of `NET_TCP_AVAIL_CONG_CONTROL',
   and to 0 if you don't. */
#undef HAVE_DECL_NET_TCP_AVAIL_CONG_CONTROL

/* Define to 1 if you have the declaration of `NET_TCP_BASE_MSS', and to 0 if
   you don't. */
#undef HAVE_DECL_NET_TCP_BASE_MSS

/* Define to 1 if you have the declaration of `NET_TCP_BIC_BETA', and to 0 if
   you don't. */
#undef HAVE_DECL_NET_TCP_BIC_BETA

/* Define to 1 if you have the declaration of `NET_TCP_CONG_CONTROL', and to 0
   if you don't. */
#undef HAVE_DECL_NET_TCP_CONG_CONTROL

/* Define to 1 if you have the declaration of `NET_TCP_DEFAULT_WIN_SCALE', and
   to 0 if you don't. */
#undef HAVE_DECL_NET_TCP_DEFAULT_WIN_SCALE

/* Define to 1 if you have the declaration of `NET_TCP_DMA_COPYBREAK', and to
   0 if you don't. */
#undef HAVE_DECL_NET_TCP_DMA_COPYBREAK

/* Define to 1 if you have the declaration of `NET_TCP_FRTO_RESPONSE', and to
   0 if you don't. */
#undef HAVE_DECL_NET_TCP_FRTO_RESPONSE

/* Define to 1 if you have the declaration of `NET_TCP_MAX_SSTHRESH', and to 0
   if you don't. */
#undef HAVE_DECL_NET_TCP_MAX_SSTHRESH

/* Define to 1 if you have the declaration of `NET_TCP_MODERATE_RCVBUF', and
   to 0 if you don't. */
#undef HAVE_DECL_NET_TCP_MODERATE_RCVBUF

/* Define to 1 if you have the declaration of `NET_TCP_MTU_PROBING', and to 0
   if you don't. */
#undef HAVE_DECL_NET_TCP_MTU_PROBING

/* Define to 1 if you have the declaration of `NET_TCP_NO_METRICS_SAVE', and
   to 0 if you don't. */
#undef HAVE_DECL_NET_TCP_NO_METRICS_SAVE

/* Define to 1 if you have the declaration of `NET_TCP_SLOW_START_AFTER_IDLE',
   and to 0 if you don't. */
#undef HAVE_DECL_NET_TCP_SLOW_START_AFTER_IDLE

/* Define to 1 if you have the declaration of `NET_TCP_TSO_WIN_DIVISOR', and
   to 0 if you don't. */
#undef HAVE_DECL_NET_TCP_TSO_WIN_DIVISOR

/* Define to 1 if you have the declaration of `PTRACE_PEEKUSER', and to 0 if
   you don't. */
#undef HAVE_DECL_PTRACE_PEEKUSER

/* Define to 1 if you have the declaration of `PTRACE_POKEUSER', and to 0 if
   you don't. */
#undef HAVE_DECL_PTRACE_POKEUSER

/* Define to 1 if you have the declaration of `P_ALL', and to 0 if you don't.
   */
#undef HAVE_DECL_P_ALL

/* Define to 1 if you have the declaration of `P_CID', and to 0 if you don't.
   */
#undef HAVE_DECL_P_CID

/* Define to 1 if you have the declaration of `P_GID', and to 0 if you don't.
   */
#undef HAVE_DECL_P_GID

/* Define to 1 if you have the declaration of `P_LWPID', and to 0 if you
   don't. */
#undef HAVE_DECL_P_LWPID

/* Define to 1 if you have the declaration of `P_PGID', and to 0 if you don't.
   */
#undef HAVE_DECL_P_PGID

/* Define to 1 if you have the declaration of `P_PID', and to 0 if you don't.
   */
#undef HAVE_DECL_P_PID

/* Define to 1 if you have the declaration of `P_PPID', and to 0 if you don't.
   */
#undef HAVE_DECL_P_PPID

/* Define to 1 if you have the declaration of `P_SID', and to 0 if you don't.
   */
#undef HAVE_DECL_P_SID

/* Define to 1 if you have the declaration of `P_UID', and to 0 if you don't.
   */
#undef HAVE_DECL_P_UID

/* Define to 1 if you have the declaration of `sys_errlist', and to 0 if you
   don't. */
#undef HAVE_DECL_SYS_ERRLIST

/* Define to 1 if you have the declaration of
   `V4L2_BUF_TYPE_SLICED_VBI_CAPTURE', and to 0 if you don't. */
#undef HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE

/* Define to 1 if you have the declaration of
   `V4L2_BUF_TYPE_SLICED_VBI_OUTPUT', and to 0 if you don't. */
#undef HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_OUTPUT

/* Define to 1 if you have the declaration of `V4L2_BUF_TYPE_VBI_CAPTURE', and
   to 0 if you don't. */
#undef HAVE_DECL_V4L2_BUF_TYPE_VBI_CAPTURE

/* Define to 1 if you have the declaration of `V4L2_BUF_TYPE_VBI_OUTPUT', and
   to 0 if you don't. */
#undef HAVE_DECL_V4L2_BUF_TYPE_VBI_OUTPUT

/* Define to 1 if you have the declaration of `V4L2_BUF_TYPE_VIDEO_CAPTURE',
   and to 0 if you don't. */
#undef HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE

/* Define to 1 if you have the declaration of
   `V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE', and to 0 if you don't. */
#undef HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE

/* Define to 1 if you have the declaration of `V4L2_BUF_TYPE_VIDEO_OUTPUT',
   and to 0 if you don't. */
#undef HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT

/* Define to 1 if you have the declaration of
   `V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE', and to 0 if you don't. */
#undef HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE

/* Define to 1 if you have the declaration of
   `V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY', and to 0 if you don't. */
#undef HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY

/* Define to 1 if you have the declaration of `V4L2_BUF_TYPE_VIDEO_OVERLAY',
   and to 0 if you don't. */
#undef HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OVERLAY

/* Define to 1 if you have the declaration of `V4L2_COLORSPACE_470_SYSTEM_BG',
   and to 0 if you don't. */
#undef HAVE_DECL_V4L2_COLORSPACE_470_SYSTEM_BG

/* Define to 1 if you have the declaration of `V4L2_COLORSPACE_470_SYSTEM_M',
   and to 0 if you don't. */
#undef HAVE_DECL_V4L2_COLORSPACE_470_SYSTEM_M

/* Define to 1 if you have the declaration of `V4L2_COLORSPACE_BT878', and to
   0 if you don't. */
#undef HAVE_DECL_V4L2_COLORSPACE_BT878

/* Define to 1 if you have the declaration of `V4L2_COLORSPACE_JPEG', and to 0
   if you don't. */
#undef HAVE_DECL_V4L2_COLORSPACE_JPEG

/* Define to 1 if you have the declaration of `V4L2_COLORSPACE_REC709', and to
   0 if you don't. */
#undef HAVE_DECL_V4L2_COLORSPACE_REC709

/* Define to 1 if you have the declaration of `V4L2_COLORSPACE_SMPTE170M', and
   to 0 if you don't. */
#undef HAVE_DECL_V4L2_COLORSPACE_SMPTE170M

/* Define to 1 if you have the declaration of `V4L2_COLORSPACE_SMPTE240M', and
   to 0 if you don't. */
#undef HAVE_DECL_V4L2_COLORSPACE_SMPTE240M

/* Define to 1 if you have the declaration of `V4L2_COLORSPACE_SRGB', and to 0
   if you don't. */
#undef HAVE_DECL_V4L2_COLORSPACE_SRGB

/* Define to 1 if you have the declaration of `V4L2_CTRL_TYPE_BITMASK', and to
   0 if you don't. */
#undef HAVE_DECL_V4L2_CTRL_TYPE_BITMASK

/* Define to 1 if you have the declaration of `V4L2_CTRL_TYPE_BOOLEAN', and to
   0 if you don't. */
#undef HAVE_DECL_V4L2_CTRL_TYPE_BOOLEAN

/* Define to 1 if you have the declaration of `V4L2_CTRL_TYPE_BUTTON', and to
   0 if you don't. */
#undef HAVE_DECL_V4L2_CTRL_TYPE_BUTTON

/* Define to 1 if you have the declaration of `V4L2_CTRL_TYPE_CTRL_CLASS', and
   to 0 if you don't. */
#undef HAVE_DECL_V4L2_CTRL_TYPE_CTRL_CLASS

/* Define to 1 if you have the declaration of `V4L2_CTRL_TYPE_INTEGER', and to
   0 if you don't. */
#undef HAVE_DECL_V4L2_CTRL_TYPE_INTEGER

/* Define to 1 if you have the declaration of `V4L2_CTRL_TYPE_INTEGER64', and
   to 0 if you don't. */
#undef HAVE_DECL_V4L2_CTRL_TYPE_INTEGER64

/* Define to 1 if you have the declaration of `V4L2_CTRL_TYPE_INTEGER_MENU',
   and to 0 if you don't. */
#undef HAVE_DECL_V4L2_CTRL_TYPE_INTEGER_MENU

/* Define to 1 if you have the declaration of `V4L2_CTRL_TYPE_MENU', and to 0
   if you don't. */
#undef HAVE_DECL_V4L2_CTRL_TYPE_MENU

/* Define to 1 if you have the declaration of `V4L2_CTRL_TYPE_STRING', and to
   0 if you don't. */
#undef HAVE_DECL_V4L2_CTRL_TYPE_STRING

/* Define to 1 if you have the declaration of `V4L2_FIELD_ALTERNATE', and to 0
   if you don't. */
#undef HAVE_DECL_V4L2_FIELD_ALTERNATE

/* Define to 1 if you have the declaration of `V4L2_FIELD_ANY', and to 0 if
   you don't. */
#undef HAVE_DECL_V4L2_FIELD_ANY

/* Define to 1 if you have the declaration of `V4L2_FIELD_BOTTOM', and to 0 if
   you don't. */
#undef HAVE_DECL_V4L2_FIELD_BOTTOM

/* Define to 1 if you have the declaration of `V4L2_FIELD_INTERLACED', and to
   0 if you don't. */
#undef HAVE_DECL_V4L2_FIELD_INTERLACED

/* Define to 1 if you have the declaration of `V4L2_FIELD_INTERLACED_BT', and
   to 0 if you don't. */
#undef HAVE_DECL_V4L2_FIELD_INTERLACED_BT

/* Define to 1 if you have the declaration of `V4L2_FIELD_INTERLACED_TB', and
   to 0 if you don't. */
#undef HAVE_DECL_V4L2_FIELD_INTERLACED_TB

/* Define to 1 if you have the declaration of `V4L2_FIELD_NONE', and to 0 if
   you don't. */
#undef HAVE_DECL_V4L2_FIELD_NONE

/* Define to 1 if you have the declaration of `V4L2_FIELD_SEQ_BT', and to 0 if
   you don't. */
#undef HAVE_DECL_V4L2_FIELD_SEQ_BT

/* Define to 1 if you have the declaration of `V4L2_FIELD_SEQ_TB', and to 0 if
   you don't. */
#undef HAVE_DECL_V4L2_FIELD_SEQ_TB

/* Define to 1 if you have the declaration of `V4L2_FIELD_TOP', and to 0 if
   you don't. */
#undef HAVE_DECL_V4L2_FIELD_TOP

/* Define to 1 if you have the declaration of `V4L2_FRMIVAL_TYPE_CONTINUOUS',
   and to 0 if you don't. */
#undef HAVE_DECL_V4L2_FRMIVAL_TYPE_CONTINUOUS

/* Define to 1 if you have the declaration of `V4L2_FRMIVAL_TYPE_DISCRETE',
   and to 0 if you don't. */
#undef HAVE_DECL_V4L2_FRMIVAL_TYPE_DISCRETE

/* Define to 1 if you have the declaration of `V4L2_FRMIVAL_TYPE_STEPWISE',
   and to 0 if you don't. */
#undef HAVE_DECL_V4L2_FRMIVAL_TYPE_STEPWISE

/* Define to 1 if you have the declaration of `V4L2_FRMSIZE_TYPE_CONTINUOUS',
   and to 0 if you don't. */
#undef HAVE_DECL_V4L2_FRMSIZE_TYPE_CONTINUOUS

/* Define to 1 if you have the declaration of `V4L2_FRMSIZE_TYPE_DISCRETE',
   and to 0 if you don't. */
#undef HAVE_DECL_V4L2_FRMSIZE_TYPE_DISCRETE

/* Define to 1 if you have the declaration of `V4L2_FRMSIZE_TYPE_STEPWISE',
   and to 0 if you don't. */
#undef HAVE_DECL_V4L2_FRMSIZE_TYPE_STEPWISE

/* Define to 1 if you have the declaration of `V4L2_MEMORY_DMABUF', and to 0
   if you don't. */
#undef HAVE_DECL_V4L2_MEMORY_DMABUF

/* Define to 1 if you have the declaration of `V4L2_MEMORY_MMAP', and to 0 if
   you don't. */
#undef HAVE_DECL_V4L2_MEMORY_MMAP

/* Define to 1 if you have the declaration of `V4L2_MEMORY_OVERLAY', and to 0
   if you don't. */
#undef HAVE_DECL_V4L2_MEMORY_OVERLAY

/* Define to 1 if you have the declaration of `V4L2_MEMORY_USERPTR', and to 0
   if you don't. */
#undef HAVE_DECL_V4L2_MEMORY_USERPTR

/* Define to 1 if you have the declaration of `V4L2_PRIORITY_BACKGROUND', and
   to 0 if you don't. */
#undef HAVE_DECL_V4L2_PRIORITY_BACKGROUND

/* Define to 1 if you have the declaration of `V4L2_PRIORITY_INTERACTIVE', and
   to 0 if you don't. */
#undef HAVE_DECL_V4L2_PRIORITY_INTERACTIVE

/* Define to 1 if you have the declaration of `V4L2_PRIORITY_RECORD', and to 0
   if you don't. */
#undef HAVE_DECL_V4L2_PRIORITY_RECORD

/* Define to 1 if you have the declaration of `V4L2_PRIORITY_UNSET', and to 0
   if you don't. */
#undef HAVE_DECL_V4L2_PRIORITY_UNSET

/* Define to 1 if you have the declaration of `V4L2_TUNER_ANALOG_TV', and to 0
   if you don't. */
#undef HAVE_DECL_V4L2_TUNER_ANALOG_TV

/* Define to 1 if you have the declaration of `V4L2_TUNER_DIGITAL_TV', and to
   0 if you don't. */
#undef HAVE_DECL_V4L2_TUNER_DIGITAL_TV

/* Define to 1 if you have the declaration of `V4L2_TUNER_RADIO', and to 0 if
   you don't. */
#undef HAVE_DECL_V4L2_TUNER_RADIO

/* Define to 1 if you have the declaration of `VM_BLOCK_DUMP', and to 0 if you
   don't. */
#undef HAVE_DECL_VM_BLOCK_DUMP

/* Define to 1 if you have the declaration of `VM_HUGETLB_GROUP', and to 0 if
   you don't. */
#undef HAVE_DECL_VM_HUGETLB_GROUP

/* Define to 1 if you have the declaration of `VM_LAPTOP_MODE', and to 0 if
   you don't. */
#undef HAVE_DECL_VM_LAPTOP_MODE

/* Define to 1 if you have the declaration of `VM_LEGACY_VA_LAYOUT', and to 0
   if you don't. */
#undef HAVE_DECL_VM_LEGACY_VA_LAYOUT

/* Define to 1 if you have the declaration of `VM_MAX_MAP_COUNT', and to 0 if
   you don't. */
#undef HAVE_DECL_VM_MAX_MAP_COUNT

/* Define to 1 if you have the declaration of `VM_SWAP_TOKEN_TIMEOUT', and to
   0 if you don't. */
#undef HAVE_DECL_VM_SWAP_TOKEN_TIMEOUT

/* Define to 1 if you have the declaration of `VM_VFS_CACHE_PRESSURE', and to
   0 if you don't. */
#undef HAVE_DECL_VM_VFS_CACHE_PRESSURE

/* Define to 1 if the system provides dladdr */
#undef HAVE_DLADDR

/* Define to 1 if you have the <elf.h> header file. */
#undef HAVE_ELF_H

/* Define to 1 if you have the `fallocate' function. */
#undef HAVE_FALLOCATE

/* Define to 1 if you have the `fanotify_mark' function. */
#undef HAVE_FANOTIFY_MARK

/* Define to 1 if you have the `fopen64' function. */
#undef HAVE_FOPEN64

/* Define to 1 if you have the `fork' function. */
#undef HAVE_FORK

/* Define to 1 if you have the `fputs_unlocked' function. */
#undef HAVE_FPUTS_UNLOCKED

/* Define to 1 if you have the `fstatat' function. */
#undef HAVE_FSTATAT

/* Define to 1 if you have the `ftruncate' function. */
#undef HAVE_FTRUNCATE

/* Define to 1 if you have the `futimens' function. */
#undef HAVE_FUTIMENS

/* Define to 1 if you have the <gnu_stubs> header file. */
#undef HAVE_GNU_STUBS

/* Define to 1 if you have the <gnu/stubs-32.h> header file. */
#undef HAVE_GNU_STUBS_32_H

/* Define to 1 if you have the <gnu/stubs-x32.h> header file. */
#undef HAVE_GNU_STUBS_X32_H

/* Define to 1 if you have the `if_indextoname' function. */
#undef HAVE_IF_INDEXTONAME

/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H

/* Define to 1 if you have the <libunwind-ptrace.h> header file. */
#undef HAVE_LIBUNWIND_PTRACE_H

/* Define to 1 if you have the <linux/bpf.h> header file. */
#undef HAVE_LINUX_BPF_H

/* Define to 1 if you have the <linux/bsg.h> header file. */
#undef HAVE_LINUX_BSG_H

/* Define to 1 if you have the <linux/btrfs.h> header file. */
#undef HAVE_LINUX_BTRFS_H

/* Define to 1 if you have the <linux/dm-ioctl.h> header file. */
#undef HAVE_LINUX_DM_IOCTL_H

/* Define to 1 if you have the <linux/dqblk_xfs.h> header file. */
#undef HAVE_LINUX_DQBLK_XFS_H

/* Define to 1 if you have the <linux/falloc.h> header file. */
#undef HAVE_LINUX_FALLOC_H

/* Define to 1 if you have the <linux/fiemap.h> header file. */
#undef HAVE_LINUX_FIEMAP_H

/* Define to 1 if you have the <linux/filter.h> header file. */
#undef HAVE_LINUX_FILTER_H

/* Define to 1 if you have the <linux/hiddev.h> header file. */
#undef HAVE_LINUX_HIDDEV_H

/* Define to 1 if you have the <linux/input.h> header file. */
#undef HAVE_LINUX_INPUT_H

/* Define to 1 if you have the <linux/ipc.h> header file. */
#undef HAVE_LINUX_IPC_H

/* Define to 1 if you have the <linux/ip_vs.h> header file. */
#undef HAVE_LINUX_IP_VS_H

/* Define to 1 if you have the <linux/mmtimer.h> header file. */
#undef HAVE_LINUX_MMTIMER_H

/* Define to 1 if you have the <linux/mqueue.h> header file. */
#undef HAVE_LINUX_MQUEUE_H

/* Define to 1 if you have the <linux/msg.h> header file. */
#undef HAVE_LINUX_MSG_H

/* Define to 1 if you have the <linux/netfilter_arp/arp_tables.h> header file.
   */
#undef HAVE_LINUX_NETFILTER_ARP_ARP_TABLES_H

/* Define to 1 if you have the <linux/netfilter_bridge/ebtables.h> header
   file. */
#undef HAVE_LINUX_NETFILTER_BRIDGE_EBTABLES_H

/* Define to 1 if you have the <linux/netfilter_ipv4/ip_tables.h> header file.
   */
#undef HAVE_LINUX_NETFILTER_IPV4_IP_TABLES_H

/* Define to 1 if you have the <linux/netfilter_ipv6/ip6_tables.h> header
   file. */
#undef HAVE_LINUX_NETFILTER_IPV6_IP6_TABLES_H

/* Define to 1 if you have the <linux/perf_event.h> header file. */
#undef HAVE_LINUX_PERF_EVENT_H

/* Define to 1 if you have the <linux/quota.h> header file. */
#undef HAVE_LINUX_QUOTA_H

/* Define to 1 if you have the <linux/seccomp.h> header file. */
#undef HAVE_LINUX_SECCOMP_H

/* Define to 1 if you have the <linux/securebits.h> header file. */
#undef HAVE_LINUX_SECUREBITS_H

/* Define to 1 if you have the <linux/sem.h> header file. */
#undef HAVE_LINUX_SEM_H

/* Define to 1 if you have the <linux/shm.h> header file. */
#undef HAVE_LINUX_SHM_H

/* Define to 1 if you have the <linux/userfaultfd.h> header file. */
#undef HAVE_LINUX_USERFAULTFD_H

/* Define to 1 if you have the <linux/utsname.h> header file. */
#undef HAVE_LINUX_UTSNAME_H

/* Define to 1 if you have CFLAG mpers support */
#undef HAVE_M32_MPERS

/* Define to 1 if MPERS_NAME has the type 'struct stat'. */
#undef HAVE_M32_STRUCT_STAT

/* Define to 1 if MPERS_NAME has the type 'struct stat64'. */
#undef HAVE_M32_STRUCT_STAT64

/* Define to 1 if 'st_mtime_nsec' is a member of MPERS_NAME 'struct stat64'.
   */
#undef HAVE_M32_STRUCT_STAT64_ST_MTIME_NSEC

/* Define to 1 if 'st_mtime_nsec' is a member of MPERS_NAME 'struct stat'. */
#undef HAVE_M32_STRUCT_STAT_ST_MTIME_NSEC

/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H

/* Define to 1 if you have the <mqueue.h> header file. */
#undef HAVE_MQUEUE_H

/* Define to 1 if you have CFLAG mpers support */
#undef HAVE_MX32_MPERS

/* Define to 1 if MPERS_NAME has the type 'struct stat'. */
#undef HAVE_MX32_STRUCT_STAT

/* Define to 1 if MPERS_NAME has the type 'struct stat64'. */
#undef HAVE_MX32_STRUCT_STAT64

/* Define to 1 if 'st_mtime_nsec' is a member of MPERS_NAME 'struct stat64'.
   */
#undef HAVE_MX32_STRUCT_STAT64_ST_MTIME_NSEC

/* Define to 1 if 'st_mtime_nsec' is a member of MPERS_NAME 'struct stat'. */
#undef HAVE_MX32_STRUCT_STAT_ST_MTIME_NSEC

/* Define to 1 if you have the <netinet/sctp.h> header file. */
#undef HAVE_NETINET_SCTP_H

/* Define to 1 if you have the <netinet/tcp.h> header file. */
#undef HAVE_NETINET_TCP_H

/* Define to 1 if you have the <netinet/udp.h> header file. */
#undef HAVE_NETINET_UDP_H

/* Define to 1 if you have the <netipx/ipx.h> header file. */
#undef HAVE_NETIPX_IPX_H

/* Define to 1 if you have the `open64' function. */
#undef HAVE_OPEN64

/* Define to 1 if you have the `prctl' function. */
#undef HAVE_PRCTL

/* Define to 1 if you have the `preadv' function. */
#undef HAVE_PREADV

/* Define to 1 if you have the `process_vm_readv' function. */
#undef HAVE_PROCESS_VM_READV

/* Define to 1 if you have the `pwritev' function. */
#undef HAVE_PWRITEV

/* Define to 1 if you have the `readahead' function. */
#undef HAVE_READAHEAD

/* Define to 1 if you have the <scsi/sg.h> header file. */
#undef HAVE_SCSI_SG_H

/* Define to 1 if `si_overrun' is a member of `siginfo_t'. */
#undef HAVE_SIGINFO_T_SI_OVERRUN

/* Define to 1 if `si_syscall' is a member of `siginfo_t'. */
#undef HAVE_SIGINFO_T_SI_SYSCALL

/* Define to 1 if `si_timerid' is a member of `siginfo_t'. */
#undef HAVE_SIGINFO_T_SI_TIMERID

/* Define to 1 if you have the `signalfd' function. */
#undef HAVE_SIGNALFD

/* Define to 1 if the system has the type `sig_atomic_t'. */
#undef HAVE_SIG_ATOMIC_T

/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H

/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H

/* Define to 1 if you have the `stpcpy' function. */
#undef HAVE_STPCPY

/* Define to 1 if you have the `strerror' function. */
#undef HAVE_STRERROR

/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H

/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H

/* Define to 1 if you have the <stropts.h> header file. */
#undef HAVE_STROPTS_H

/* Define to 1 if you have the `strsignal' function. */
#undef HAVE_STRSIGNAL

/* Define to 1 if the system has the type `struct blk_user_trace_setup'. */
#undef HAVE_STRUCT_BLK_USER_TRACE_SETUP

/* Define to 1 if `start' is a member of `struct
   btrfs_ioctl_defrag_range_args'. */
#undef HAVE_STRUCT_BTRFS_IOCTL_DEFRAG_RANGE_ARGS_START

/* Define to 1 if `compat_flags' is a member of `struct
   btrfs_ioctl_feature_flags'. */
#undef HAVE_STRUCT_BTRFS_IOCTL_FEATURE_FLAGS_COMPAT_FLAGS

/* Define to 1 if `nodesize' is a member of `struct btrfs_ioctl_fs_info_args'.
   */
#undef HAVE_STRUCT_BTRFS_IOCTL_FS_INFO_ARGS_NODESIZE

/* Define to 1 if `buf_size' is a member of `struct
   btrfs_ioctl_search_args_v2'. */
#undef HAVE_STRUCT_BTRFS_IOCTL_SEARCH_ARGS_V2_BUF_SIZE

/* Define to 1 if the system has the type `struct flock'. */
#undef HAVE_STRUCT_FLOCK

/* Define to 1 if the system has the type `struct flock64'. */
#undef HAVE_STRUCT_FLOCK64

/* Define to 1 if the system has the type `struct ia64_fpreg'. */
#undef HAVE_STRUCT_IA64_FPREG

/* Define to 1 if `resolution' is a member of `struct input_absinfo'. */
#undef HAVE_STRUCT_INPUT_ABSINFO_RESOLUTION

/* Define to 1 if the system has the type `struct mmsghdr'. */
#undef HAVE_STRUCT_MMSGHDR

/* Define to 1 if `aux_watermark' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_AUX_WATERMARK

/* Define to 1 if `bp_type' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_BP_TYPE

/* Define to 1 if `branch_sample_type' is a member of `struct
   perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_BRANCH_SAMPLE_TYPE

/* Define to 1 if `comm_exec' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_COMM_EXEC

/* Define to 1 if `config1' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_CONFIG1

/* Define to 1 if `config2' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_CONFIG2

/* Define to 1 if `context_switch' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_CONTEXT_SWITCH

/* Define to 1 if `exclude_callchain_kernel' is a member of `struct
   perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_EXCLUDE_CALLCHAIN_KERNEL

/* Define to 1 if `exclude_callchain_user' is a member of `struct
   perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_EXCLUDE_CALLCHAIN_USER

/* Define to 1 if `exclude_guest' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_EXCLUDE_GUEST

/* Define to 1 if `exclude_host' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_EXCLUDE_HOST

/* Define to 1 if `mmap2' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_MMAP2

/* Define to 1 if `mmap_data' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_MMAP_DATA

/* Define to 1 if `precise_ip' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_PRECISE_IP

/* Define to 1 if `sample_id_all' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_SAMPLE_ID_ALL

/* Define to 1 if `sample_max_stack' is a member of `struct perf_event_attr'.
   */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_SAMPLE_MAX_STACK

/* Define to 1 if `sample_regs_intr' is a member of `struct perf_event_attr'.
   */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_SAMPLE_REGS_INTR

/* Define to 1 if `sample_regs_user' is a member of `struct perf_event_attr'.
   */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_SAMPLE_REGS_USER

/* Define to 1 if `sample_stack_user' is a member of `struct perf_event_attr'.
   */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_SAMPLE_STACK_USER

/* Define to 1 if `use_clockid' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_USE_CLOCKID

/* Define to 1 if `write_backward' is a member of `struct perf_event_attr'. */
#undef HAVE_STRUCT_PERF_EVENT_ATTR_WRITE_BACKWARD

/* Define to 1 if the system has the type `struct ptrace_peeksiginfo_args'. */
#undef HAVE_STRUCT_PTRACE_PEEKSIGINFO_ARGS

/* Define to 1 if the system has the type `struct pt_all_user_regs'. */
#undef HAVE_STRUCT_PT_ALL_USER_REGS

/* Define to 1 if the system has the type `struct sigcontext'. */
#undef HAVE_STRUCT_SIGCONTEXT

/* Define to 1 if the system has the type `struct stat64'. */
#undef HAVE_STRUCT_STAT64

/* Define to 1 if `st_mtime_nsec' is a member of `struct stat64'. */
#undef HAVE_STRUCT_STAT64_ST_MTIME_NSEC

/* Define to 1 if the system has the type `struct statfs'. */
#undef HAVE_STRUCT_STATFS

/* Define to 1 if the system has the type `struct statfs64'. */
#undef HAVE_STRUCT_STATFS64

/* Define to 1 if `f_flags' is a member of `struct statfs64'. */
#undef HAVE_STRUCT_STATFS64_F_FLAGS

/* Define to 1 if `f_frsize' is a member of `struct statfs64'. */
#undef HAVE_STRUCT_STATFS64_F_FRSIZE

/* Define to 1 if `f_fsid.val' is a member of `struct statfs64'. */
#undef HAVE_STRUCT_STATFS64_F_FSID_VAL

/* Define to 1 if `f_fsid.__val' is a member of `struct statfs64'. */
#undef HAVE_STRUCT_STATFS64_F_FSID___VAL

/* Define to 1 if `f_flags' is a member of `struct statfs'. */
#undef HAVE_STRUCT_STATFS_F_FLAGS

/* Define to 1 if `f_frsize' is a member of `struct statfs'. */
#undef HAVE_STRUCT_STATFS_F_FRSIZE

/* Define to 1 if `f_fsid.val' is a member of `struct statfs'. */
#undef HAVE_STRUCT_STATFS_F_FSID_VAL

/* Define to 1 if `f_fsid.__val' is a member of `struct statfs'. */
#undef HAVE_STRUCT_STATFS_F_FSID___VAL

/* Define to 1 if `st_mtime_nsec' is a member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_MTIME_NSEC

/* Define to 1 if `tai' is a member of `struct timex'. */
#undef HAVE_STRUCT_TIMEX_TAI

/* Define to 1 if the system has the type `struct user_desc'. */
#undef HAVE_STRUCT_USER_DESC

/* Define to 1 if `domainname' is a member of `struct utsname'. */
#undef HAVE_STRUCT_UTSNAME_DOMAINNAME

/* Define to 1 if the system has the type `struct __kernel_flock'. */
#undef HAVE_STRUCT___KERNEL_FLOCK

/* Define to 1 if the system has the type `struct __kernel_flock64'. */
#undef HAVE_STRUCT___KERNEL_FLOCK64

/* Define to 1 if the system has the type `struct __old_kernel_stat'. */
#undef HAVE_STRUCT___OLD_KERNEL_STAT

/* Define to 1 if you have the `sync_file_range' function. */
#undef HAVE_SYNC_FILE_RANGE

/* Define to 1 if you have the <sys/conf.h> header file. */
#undef HAVE_SYS_CONF_H

/* Define to 1 if you have the <sys/eventfd.h> header file. */
#undef HAVE_SYS_EVENTFD_H

/* Define to 1 if you have the <sys/fanotify.h> header file. */
#undef HAVE_SYS_FANOTIFY_H

/* Define to 1 if you have the <sys/ipc.h> header file. */
#undef HAVE_SYS_IPC_H

/* Define to 1 if you have the <sys/msg.h> header file. */
#undef HAVE_SYS_MSG_H

/* Define to 1 if you have the <sys/quota.h> header file. */
#undef HAVE_SYS_QUOTA_H

/* Define to 1 if you have the <sys/reg.h> header file. */
#undef HAVE_SYS_REG_H

/* Define to 1 if you have the <sys/sem.h> header file. */
#undef HAVE_SYS_SEM_H

/* Define to 1 if you have the <sys/shm.h> header file. */
#undef HAVE_SYS_SHM_H

/* Define to 1 if you have the <sys/signalfd.h> header file. */
#undef HAVE_SYS_SIGNALFD_H

/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H

/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H

/* Define to 1 if you have the <sys/xattr.h> header file. */
#undef HAVE_SYS_XATTR_H

/* Define to 1 if typeof works with your compiler. */
#undef HAVE_TYPEOF

/* Define to 1 if union bpf_attr.attach_type initialization works */
#undef HAVE_UNION_BPF_ATTR_ATTACH_TYPE

/* Define to 1 if union bpf_attr.bpf_fd initialization works */
#undef HAVE_UNION_BPF_ATTR_BPF_FD

/* Define to 1 if union bpf_attr.log_buf initialization works */
#undef HAVE_UNION_BPF_ATTR_LOG_BUF

/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H

/* Define to 1 if you have the <ustat.h> header file. */
#undef HAVE_USTAT_H

/* Define to 1 if you have the `utimensat' function. */
#undef HAVE_UTIMENSAT

/* Define to 1 if the system provides __builtin_popcount function */
#undef HAVE___BUILTIN_POPCOUNT

/* Define to 1 if the system has the type `__kernel_long_t'. */
#undef HAVE___KERNEL_LONG_T

/* Define to 1 if the system has the type `__kernel_ulong_t'. */
#undef HAVE___KERNEL_ULONG_T

/* Define for the HPPA architecture. */
#undef HPPA

/* Define for the i386 architecture. */
#undef I386

/* Define for the IA64 architecture. */
#undef IA64

/* Define for _ABIN32. */
#undef LINUX_MIPSN32

/* Define for _ABI64. */
#undef LINUX_MIPSN64

/* Define for _ABIO32. */
#undef LINUX_MIPSO32

/* Define for the m68k architecture. */
#undef M68K

/* Define for the Meta architecture. */
#undef METAG

/* Define for the MicroBlaze architecture. */
#undef MICROBLAZE

/* Define for the MIPS architecture. */
#undef MIPS

/* Define for the Nios-II architecture. */
#undef NIOS2

/* Define for the OpenRISC 1000 architecture. */
#undef OR1K

/* Name of package */
#undef PACKAGE

/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT

/* Define to the full name of this package. */
#undef PACKAGE_NAME

/* Define to the full name and version of this package. */
#undef PACKAGE_STRING

/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME

/* Define to the home page for this package. */
#undef PACKAGE_URL

/* Define to the version of this package. */
#undef PACKAGE_VERSION

/* Define for the PowerPC architecture. */
#undef POWERPC

/* Define for the PowerPC64 architecture. */
#undef POWERPC64

/* Define for the RISC-V architecture */
#undef RISCV

/* Define for the S390 architecture. */
#undef S390

/* Define for the S390x architecture. */
#undef S390X

/* Define for the SH architecture. */
#undef SH

/* Define for the SH64 architecture. */
#undef SH64

/* The size of `kernel_long_t', as computed by sizeof. */
#undef SIZEOF_KERNEL_LONG_T

/* The size of `long', as computed by sizeof. */
#undef SIZEOF_LONG

/* The size of `long long', as computed by sizeof. */
#undef SIZEOF_LONG_LONG

/* The size of `off_t', as computed by sizeof. */
#undef SIZEOF_OFF_T

/* The size of `struct i64_i32', as computed by sizeof. */
#undef SIZEOF_STRUCT_I64_I32

/* Define for the SPARC architecture. */
#undef SPARC

/* Define for the SPARC64 architecture. */
#undef SPARC64

/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS

/* Define for the Tile architecture */
#undef TILE

/* Compile stack tracing functionality */
#undef USE_LIBUNWIND

/* Enable extensions on AIX 3, Interix.  */
#ifndef _ALL_SOURCE
# undef _ALL_SOURCE
#endif
/* Enable GNU extensions on systems that have them.  */
#ifndef _GNU_SOURCE
# undef _GNU_SOURCE
#endif
/* Enable threading extensions on Solaris.  */
#ifndef _POSIX_PTHREAD_SEMANTICS
# undef _POSIX_PTHREAD_SEMANTICS
#endif
/* Enable extensions on HP NonStop.  */
#ifndef _TANDEM_SOURCE
# undef _TANDEM_SOURCE
#endif
/* Enable general extensions on Solaris.  */
#ifndef __EXTENSIONS__
# undef __EXTENSIONS__
#endif


/* Version number of package */
#undef VERSION

/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
   significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
#  define WORDS_BIGENDIAN 1
# endif
#else
# ifndef WORDS_BIGENDIAN
#  undef WORDS_BIGENDIAN
# endif
#endif

/* Define for the 32bit AMD x86-64 architecture. */
#undef X32

/* Define for the 64bit AMD x86-64 architecture. */
#undef X86_64

/* Define for the Xtensa architecture */
#undef XTENSA

/* Define to 1 if on MINIX. */
#undef _MINIX

/* Define to 2 if the system does not provide POSIX.1 features except with
   this defined. */
#undef _POSIX_1_SOURCE

/* Define to 1 if you need to in order for `stat' and other things to work. */
#undef _POSIX_SOURCE

/* Define to `int' if <sys/types.h> doesn't define. */
#undef gid_t

/* Define to __typeof__ if your compiler spells it that way. */
#undef typeof

/* Define to `int' if <sys/types.h> doesn't define. */
#undef uid_t
