/*
** Copyright (C) 2001-2025 Zabbix SIA
**
** This program is free software: you can redistribute it and/or modify it under the terms of
** the GNU Affero General Public License as published by the Free Software Foundation, version 3.
**
** 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 Affero General Public License for more details.
**
** You should have received a copy of the GNU Affero General Public License along with this program.
** If not, see .
**/
#ifndef ZABBIX_SYSINC_H
#define ZABBIX_SYSINC_H
#include "config.h"
#ifdef HAVE_STDIO_H
# include
#endif
#ifdef HAVE_STDLIB_H
# include
#endif
#ifdef HAVE_ASSERT_H
# include
#endif
#ifdef HAVE_ERRNO_H
# include
#endif
#ifdef HAVE_WINSOCK2_H
# include
#endif
#ifdef HAVE_WS2TCPIP_H
# include
#endif
#ifdef HAVE_WSPIAPI_H
# include "Wspiapi.h"
#endif
#ifdef HAVE_IPHLPAPI_H
# include
#endif
#ifdef HAVE_NETIOAPI_H
# include
#endif
#ifdef HAVE_WINDOWS_H
/* to speed build process and reduce size of the Win32 header files */
# define WIN32_LEAN_AND_MEAN 1
# include
#endif
#ifdef HAVE_PROCESS_H
# include
#endif
#ifdef HAVE_CONIO_H
# include
#endif
#ifdef HAVE_PDH_H
# include
# ifndef PDH_MAX_COUNTER_NAME
# define PDH_MAX_COUNTER_NAME 1024 /* maximum counter name length */
# endif
# ifndef PDH_MAX_COUNTER_PATH
# define PDH_MAX_COUNTER_PATH 2048 /* maximum full counter path length */
# endif
#endif
#ifdef HAVE_PDHMSG_H
# include
#endif
#ifdef HAVE_PSAPI_H
# include
#endif
#ifdef HAVE_STDARG_H
# include
#endif
#ifdef HAVE_CTYPE_H
# include
#endif
#ifdef HAVE_GRP_H
# include
#endif
#ifdef HAVE_SYS_TYPES_H
# include
#endif
#ifdef HAVE_SYS_SYSTEMCFG_H
# include
#endif
#ifdef HAVE_INTTYPES_H
# include
#endif
#ifdef HAVE_STRING_H
# include
#endif
#ifdef HAVE_STRINGS_H
# include
#endif
#ifdef HAVE_SYS_TIME_H
# include
#endif
#ifdef HAVE_SYS_TIMES_H
# include
#endif
#ifdef HAVE_ARPA_NAMESER_H
# ifdef MAC_OS_X
# define BIND_8_COMPAT 1
# endif
# include
#endif
#ifdef HAVE_DIRENT_H
# include
#endif
#ifdef HAVE_SYS_DKSTAT_H
# include
#endif
#ifdef HAVE_DEVSTAT_H
# include
#endif
#ifdef HAVE_FCNTL_H
# include
#endif
#ifdef HAVE_KSTAT_H
# include
#endif
#ifdef HAVE_WINLDAP_H
# undef SEC_I_INCOMPLETE_CREDENTIALS
# undef SEC_E_INCOMPLETE_CREDENTIALS
# undef SEC_I_RENEGOTIATE
# include
#endif
#ifdef HAVE_WINBER_H
# include
#endif
#ifdef HAVE_MACH_HOST_INFO_H
# include
#endif
#ifdef HAVE_MACH_MACH_HOST_H
# include
#endif
#ifdef HAVE_NETDB_H
#if defined(_AIX) /* AIX 5.1 needs this to get hstrerror() declaration */
#define _USE_IRS
#endif
# include
#endif
#ifdef HAVE_SYS_WAIT_H
# include
#endif
#ifdef HAVE_NETINET_IN_H
# include
#endif
#ifdef HAVE_PWD_H
# include
#endif
#ifdef HAVE_SIGNAL_H
# include
#endif
#ifdef HAVE_STDINT_H
# include
#endif
#ifdef HAVE_SYS_LOADAVG_H
# include
#endif
#ifdef HAVE_SYS_PARAM_H
# include
#endif
#ifdef HAVE_SYS_PROC_H
# include
#endif
#ifdef HAVE_SYS_PSTAT_H
# include
#endif
#ifdef HAVE_PTHREAD_H
# include
#endif
#ifdef HAVE_SYS_DK_H
# include
#endif
#ifdef HAVE_RESOLV_H
# include
#endif
#ifdef HAVE_SYS_DISK_H
# include
#endif
#ifdef HAVE_SYS_SOCKET_H
# include
#endif
#ifdef HAVE_SYS_STAT_H
# include
#endif
#ifdef HAVE_SYS_STATVFS_H
# include
#endif
#ifdef HAVE_SYS_SWAP_H
# include
#endif
#ifdef HAVE_SYS_SYSCALL_H
# include
#endif
#ifdef HAVE_SYS_SYSCTL_H
# include
#endif
#ifdef HAVE_SYS_SYSINFO_H
# include
#endif
#ifdef HAVE_SYS_SYSMACROS_H
# include
#endif
#ifdef HAVE_SYS_VAR_H
# include
#endif
#ifdef HAVE_SYS_VFS_H
# include
#endif
#ifdef HAVE_SYS_VMMETER_H
# include
#endif
#ifdef HAVE_LIBPERFSTAT
# ifdef HAVE_SYS_PROTOSW_H
# include /* workaround for /usr/include/netinet/in6_var.h bug, see ZBX-6565 */
# endif
# include
#endif
#ifdef HAVE_SYS_RESOURCE_H
# include
#endif
#ifdef HAVE_NLIST_H
# include
#endif
#ifdef HAVE_NET_IF_H
# include
#endif
#ifdef HAVE_NET_IF_MIB_H
# include
#endif
#ifdef HAVE_SYS_USER_H
# include
#endif
#ifdef HAVE_KVM_H
# include
#endif
#ifdef HAVE_SYSLOG_H
# include
#endif
#ifdef HAVE_TIME_H
# include
#endif
#ifdef HAVE_UNISTD_H
# include
#endif
#ifdef HAVE_SYS_IPC_H
# include
#endif
#ifdef HAVE_SYS_SEM_H
# include
#endif
#ifdef HAVE_SYS_SHM_H
# include
#endif
#ifdef HAVE_MATH_H
# include
#endif
#ifdef HAVE_PCRE_H
# include
#endif
#ifdef HAVE_PCRE2_H
# define PCRE2_CODE_UNIT_WIDTH 8
# include
#endif
#ifdef HAVE_VM_VM_PARAM_H
# include
#endif
#ifdef HAVE_ARPA_INET_H
# include
#endif
#ifdef HAVE_SYS_MOUNT_H
# include
#endif
#ifdef HAVE_SYS_TIMEB_H
# include
#endif
#ifdef HAVE_SYS_UN_H
# include
#endif
#ifdef HAVE_PROCINFO_H
# undef T_NULL /* to solve definition conflict */
# include
#endif
#ifdef HAVE_LIBCURL
# include
#endif
/* Required for advanced sigaction */
#ifdef HAVE_SYS_UCONTEXT_H
# include
#endif
#ifdef HAVE_IO_H
# include
#endif
#ifdef HAVE_SYS_MNTTAB_H
# include
#endif
#ifdef HAVE_MNTENT_H
# include
#endif
#ifdef HAVE_DLFCN_H
# include
#endif
#ifdef HAVE_ZONE_H
# include
# include
#endif
#ifdef HAVE_STDDEF_H
# include
#endif
#ifdef HAVE_LIMITS_H
# include
#endif
#ifdef HAVE_FLOAT_H
# include
#endif
#ifdef HAVE_SYS_UTSNAME_H
# include
#endif
#ifdef HAVE_POLL_H
# include
#endif
#ifdef HAVE_MALLOC_H
# include"malloc.h"
#endif
#ifdef HAVE_LIBGEN_H
# include
#endif
#endif