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

/* Define to 1 if arpa/inet.h declares `ether_hostton' */
/* #undef ARPA_INET_H_DECLARES_ETHER_HOSTTON */

/* Enable optimizer debugging */
/* #undef BDEBUG */

/* define if you want to build the instrument functions code */
/* #undef ENABLE_INSTRUMENT_FUNCTIONS */

/* Define to 1 if remote packet capture is to be supported */
/* #undef ENABLE_REMOTE */

/* define if we have the AIX getnetbyname_r() */
/* #undef HAVE_AIX_GETNETBYNAME_R */

/* define if we have the AIX getprotobyname_r() */
/* #undef HAVE_AIX_GETPROTOBYNAME_R */

/* Define to 1 if you have the `asprintf' function. */
#define HAVE_ASPRINTF 1

/* Define to 1 if you have the <config/HaikuConfig.h> header file. */
/* #undef HAVE_CONFIG_HAIKUCONFIG_H */

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

/* define if you have the DAG API */
/* #undef HAVE_DAG_API */

/* define if you have dag_get_erf_types() */
/* #undef HAVE_DAG_GET_ERF_TYPES */

/* define if you have dag_get_stream_erf_types() */
/* #undef HAVE_DAG_GET_STREAM_ERF_TYPES */

/* define if you have large streams capable DAG API */
/* #undef HAVE_DAG_LARGE_STREAMS_API */

/* define if you have vdag_set_device_info() */
/* #undef HAVE_DAG_VDAG */

/* Define to 1 if you have the declaration of `ether_hostton' */
#define HAVE_DECL_ETHER_HOSTTON 1

/* Define to 1 if `dl_module_id_1' is a member of `dl_hp_ppa_info_t'. */
/* #undef HAVE_DL_HP_PPA_INFO_T_DL_MODULE_ID_1 */

/* Define to 1 if the system has the type `dl_passive_req_t'. */
/* #undef HAVE_DL_PASSIVE_REQ_T */

/* Define to 1 if you have the `ether_hostton' function. */
/* #undef HAVE_ETHER_HOSTTON */

/* Define to 1 if you have the `ffs' function. */
#define HAVE_FFS 1

/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
#define HAVE_FSEEKO 1

/* Define to 1 if you have the `getspnam' function. */
/* #undef HAVE_GETSPNAM */

/* Define to 1 if you have a GNU-style `strerror_r' function. */
#ifndef ANDROID_HOST_MUSL
#define HAVE_GNU_STRERROR_R 1
#endif

/* on HP-UX 10.20 or later */
/* #undef HAVE_HPUX10_20_OR_LATER */

/* on HP-UX 9.x */
/* #undef HAVE_HPUX9 */

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

/* Define to 1 if you have the `bsd' library (-lbsd). */
/* #undef HAVE_LIBBSD */

/* if libdlpi exists */
/* #undef HAVE_LIBDLPI */

/* if libnl exists */
/* #undef HAVE_LIBNL */

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

/* define if we have the Linux getnetbyname_r() */
/* #undef HAVE_LINUX_GETNETBYNAME_R */

/* define if we have the Linux getprotobyname_r() */
/* #undef HAVE_LINUX_GETPROTOBYNAME_R */

/* Define to 1 if you have the <linux/net_tstamp.h> header file. */
#define HAVE_LINUX_NET_TSTAMP_H 1

/* Define to 1 if you have the <linux/socket.h> header file. */
#define HAVE_LINUX_SOCKET_H 1

/* Define to 1 if you have the <linux/usbdevice_fs.h> header file. */
#define HAVE_LINUX_USBDEVICE_FS_H 1

/* Define to 1 if you have the <linux/wireless.h> header file. */
#define HAVE_LINUX_WIRELESS_H 1

/* Define to 1 if you have the <netpacket/packet.h> header file. */
#define HAVE_NETPACKET_PACKET_H 1

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

/* Define to 1 if you have the <net/enet.h> header file. */
/* #undef HAVE_NET_ENET_H */

/* Define to 1 if you have the <net/if_dl.h> header file. */
/* #undef HAVE_NET_IF_DL_H */

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

/* Define to 1 if you have the <net/if_media.h> header file. */
/* #undef HAVE_NET_IF_MEDIA_H */

/* Define to 1 if you have the <net/if_types.h> header file. */
/* #undef HAVE_NET_IF_TYPES_H */

/* Define to 1 if you have the <net/nit.h> header file. */
/* #undef HAVE_NET_NIT_H */

/* Define to 1 if you have the <net/pfilt.h> header file. */
/* #undef HAVE_NET_PFILT_H */

/* Define to 1 if you have the <net/raw.h> header file. */
/* #undef HAVE_NET_RAW_H */

/* Use OpenSSL */
/* #undef HAVE_OPENSSL */

/* if there's an os_proto.h for this platform, to use additional prototypes */
/* #undef HAVE_OS_PROTO_H */

/* Define to 1 if you have a POSIX-style `strerror_r' function. */
#define HAVE_POSIX_STRERROR_R 1

/* define if you have the Septel API */
/* #undef HAVE_SEPTEL_API */

/* define if you have the Myricom SNF API */
/* #undef HAVE_SNF_API */

/* Define to 1 if the system has the type `socklen_t'. */
#define HAVE_SOCKLEN_T 1

/* On solaris */
/* #undef HAVE_SOLARIS */

/* target host supports Solaris "any" device */
/* #undef HAVE_SOLARIS_ANY_DEVICE */

/* define if we have the Solaris/IRIX getnetbyname_r() */
/* #undef HAVE_SOLARIS_IRIX_GETNETBYNAME_R */

/* define if we have the Solaris/IRIX getprotobyname_r() */
/* #undef HAVE_SOLARIS_IRIX_GETPROTOBYNAME_R */

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

/* Define to 1 if you have the <stdio.h> header file. */
#define HAVE_STDIO_H 1

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

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

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

/* Define to 1 if you have the `strlcat' function. */
#define HAVE_STRLCAT 1

/* Define to 1 if you have the `strlcpy' function. */
#if defined(__ANDROID__)
#define HAVE_STRLCPY 1
#else
#undef HAVE_STRLCPY
#endif

/* Define to 1 if you have the `strtok_r' function. */
#define HAVE_STRTOK_R 1

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

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

/* Define to 1 if `msg_control' is a member of `struct msghdr'. */
/* #undef HAVE_STRUCT_MSGHDR_MSG_CONTROL */

/* Define to 1 if `msg_flags' is a member of `struct msghdr'. */
/* #undef HAVE_STRUCT_MSGHDR_MSG_FLAGS */

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

/* Define to 1 if `hci_channel' is a member of `struct sockaddr_hci'. */
#define HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL 1

/* Define to 1 if `sa_len' is a member of `struct sockaddr'. */
/* #undef HAVE_STRUCT_SOCKADDR_SA_LEN */

/* Define to 1 if the system has the type `struct sockaddr_storage'. */
#define HAVE_STRUCT_SOCKADDR_STORAGE 1

/* Define to 1 if `tp_vlan_tci' is a member of `struct tpacket_auxdata'. */
#define HAVE_STRUCT_TPACKET_AUXDATA_TP_VLAN_TCI 1

/* Define to 1 if `bRequestType' is a member of `struct
   usbdevfs_ctrltransfer'. */
#define HAVE_STRUCT_USBDEVFS_CTRLTRANSFER_BREQUESTTYPE 1

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

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

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

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

/* Define to 1 if you have the <sys/net/nit.h> header file. */
/* #undef HAVE_SYS_NET_NIT_H */

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

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

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

/* define if you have the TurboCap API */
/* #undef HAVE_TC_API */

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

/* Define to 1 if you have the `vasprintf' function. */
#define HAVE_VASPRINTF 1

/* Define to 1 if you have the `vsyslog' function. */
#define HAVE_VSYSLOG 1

/* Define to 1 if you have the `_wcserror_s' function. */
/* #undef HAVE__WCSERROR_S */

/* define if __atomic_load_n is supported by the compiler */
#define HAVE___ATOMIC_LOAD_N 1

/* define if __atomic_store_n is supported by the compiler */
#define HAVE___ATOMIC_STORE_N 1

/* IPv6 */
#define INET6 1

/* Define to 1 if netinet/ether.h declares `ether_hostton' */
#define NETINET_ETHER_H_DECLARES_ETHER_HOSTTON /**/

/* Define to 1 if netinet/if_ether.h declares `ether_hostton' */
/* #undef NETINET_IF_ETHER_H_DECLARES_ETHER_HOSTTON */

/* Define to 1 if net/ethernet.h declares `ether_hostton' */
/* #undef NET_ETHERNET_H_DECLARES_ETHER_HOSTTON */

/* do not use protochain */
/* #undef NO_PROTOCHAIN */

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

/* Define to the full name of this package. */
#define PACKAGE_NAME "pcap"

/* Define to the full name and version of this package. */
#define PACKAGE_STRING "pcap 1.10.5"

/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "pcap"

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

/* Define to the version of this package. */
#define PACKAGE_VERSION "1.10.5"

/* target host supports Bluetooth sniffing */
/* #undef PCAP_SUPPORT_BT */

/* target host supports Bluetooth Monitor */
/* #undef PCAP_SUPPORT_BT_MONITOR */

/* support D-Bus sniffing */
/* #undef PCAP_SUPPORT_DBUS */

/* target host supports DPDK */
/* #undef PCAP_SUPPORT_DPDK */

/* target host supports Linux usbmon for USB sniffing */
#define PCAP_SUPPORT_LINUX_USBMON 1

/* target host supports netfilter sniffing */
#define PCAP_SUPPORT_NETFILTER 1

/* target host supports netmap */
/* #undef PCAP_SUPPORT_NETMAP */

/* target host supports RDMA sniffing */
/* #undef PCAP_SUPPORT_RDMASNIFF */

/* The size of `time_t', as computed by sizeof. */
/* #undef SIZEOF_TIME_T */

/* The size of `void *', as computed by sizeof. */
/* #undef SIZEOF_VOID_P */

/* Define to 1 if all of the C90 standard headers exist (not just the ones
   required in a freestanding environment). This macro is provided for
   backward compatibility; new code need not use it. */
#define STDC_HEADERS 1

/* Define to 1 if strings.h declares `ffs' */
#define STRINGS_H_DECLARES_FFS /**/

/* Define to 1 if sys/ethernet.h declares `ether_hostton' */
/* #undef SYS_ETHERNET_H_DECLARES_ETHER_HOSTTON */

/* Enable parser debugging */
/* #undef YYDEBUG */

/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
   `char[]'. */
#define YYTEXT_POINTER 1

/* Number of bits in a file offset, on hosts where this is settable. */
/* #undef _FILE_OFFSET_BITS */

/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
/* #undef _LARGEFILE_SOURCE */

/* Define for large files, on AIX-style hosts. */
/* #undef _LARGE_FILES */

/* define on AIX to get certain functions */
/* #undef _SUN */

/* to handle Ultrix compilers that don't support const in prototypes */
/* #undef const */

/* Define as token for inline if inlining supported */
#define inline inline

/* on sinix */
/* #undef sinix */
