ntdll: Add check for totalram, mem_unit in struct sysinfo.
Signed-off-by: Evgeny Litvinenko <evgeny.v.litvinenko@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
124cd264fa
commit
69f1b12a30
|
@ -19643,6 +19643,32 @@ _ACEOF
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
ac_fn_c_check_member "$LINENO" "struct sysinfo" "totalram" "ac_cv_member_struct_sysinfo_totalram" "#ifdef HAVE_SYS_SYSINFO_H
|
||||||
|
# include <sys/sysinfo.h>
|
||||||
|
#endif
|
||||||
|
"
|
||||||
|
if test "x$ac_cv_member_struct_sysinfo_totalram" = xyes; then :
|
||||||
|
|
||||||
|
cat >>confdefs.h <<_ACEOF
|
||||||
|
#define HAVE_STRUCT_SYSINFO_TOTALRAM 1
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
ac_fn_c_check_member "$LINENO" "struct sysinfo" "mem_unit" "ac_cv_member_struct_sysinfo_mem_unit" "#ifdef HAVE_SYS_SYSINFO_H
|
||||||
|
# include <sys/sysinfo.h>
|
||||||
|
#endif
|
||||||
|
"
|
||||||
|
if test "x$ac_cv_member_struct_sysinfo_mem_unit" = xyes; then :
|
||||||
|
|
||||||
|
cat >>confdefs.h <<_ACEOF
|
||||||
|
#define HAVE_STRUCT_SYSINFO_MEM_UNIT 1
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
ac_save_LIBS="$LIBS"
|
ac_save_LIBS="$LIBS"
|
||||||
LIBS="$LIBS -lm"
|
LIBS="$LIBS -lm"
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for isfinite" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for isfinite" >&5
|
||||||
|
|
|
@ -2658,6 +2658,12 @@ AC_CHECK_MEMBERS([struct ifreq.ifr_hwaddr],,,
|
||||||
# include <net/if.h>
|
# include <net/if.h>
|
||||||
#endif])
|
#endif])
|
||||||
|
|
||||||
|
dnl Check for struct sysinfo members totalram and mem_unit
|
||||||
|
AC_CHECK_MEMBERS([struct sysinfo.totalram, struct sysinfo.mem_unit],,,
|
||||||
|
[#ifdef HAVE_SYS_SYSINFO_H
|
||||||
|
# include <sys/sysinfo.h>
|
||||||
|
#endif])
|
||||||
|
|
||||||
dnl Check for isfinite
|
dnl Check for isfinite
|
||||||
ac_save_LIBS="$LIBS"
|
ac_save_LIBS="$LIBS"
|
||||||
LIBS="$LIBS -lm"
|
LIBS="$LIBS -lm"
|
||||||
|
|
|
@ -43,6 +43,9 @@
|
||||||
#ifdef HAVE_SYS_SYSINFO_H
|
#ifdef HAVE_SYS_SYSINFO_H
|
||||||
# include <sys/sysinfo.h>
|
# include <sys/sysinfo.h>
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef HAVE_UNISTD_H
|
||||||
|
# include <unistd.h>
|
||||||
|
#endif
|
||||||
#ifdef HAVE_VALGRIND_VALGRIND_H
|
#ifdef HAVE_VALGRIND_VALGRIND_H
|
||||||
# include <valgrind/valgrind.h>
|
# include <valgrind/valgrind.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -2481,22 +2484,26 @@ ULONG_PTR get_system_affinity_mask(void)
|
||||||
*/
|
*/
|
||||||
void virtual_get_system_info( SYSTEM_BASIC_INFORMATION *info )
|
void virtual_get_system_info( SYSTEM_BASIC_INFORMATION *info )
|
||||||
{
|
{
|
||||||
#ifdef HAVE_SYSINFO
|
#if defined(HAVE_STRUCT_SYSINFO_TOTALRAM) && defined(HAVE_STRUCT_SYSINFO_MEM_UNIT)
|
||||||
struct sysinfo sinfo;
|
struct sysinfo sinfo;
|
||||||
|
|
||||||
|
if (!sysinfo(&sinfo))
|
||||||
|
{
|
||||||
|
ULONG64 total = (ULONG64)sinfo.totalram * sinfo.mem_unit;
|
||||||
|
info->MmHighestPhysicalPage = max(1, total / page_size);
|
||||||
|
}
|
||||||
|
#elif defined(_SC_PHYS_PAGES)
|
||||||
|
LONG64 phys_pages = sysconf( _SC_PHYS_PAGES );
|
||||||
|
|
||||||
|
info->MmHighestPhysicalPage = max(1, phys_pages);
|
||||||
|
#else
|
||||||
|
info->MmHighestPhysicalPage = 0x7fffffff / page_size;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
info->unknown = 0;
|
info->unknown = 0;
|
||||||
info->KeMaximumIncrement = 0; /* FIXME */
|
info->KeMaximumIncrement = 0; /* FIXME */
|
||||||
info->PageSize = page_size;
|
info->PageSize = page_size;
|
||||||
info->MmLowestPhysicalPage = 1;
|
info->MmLowestPhysicalPage = 1;
|
||||||
info->MmHighestPhysicalPage = 0x7fffffff / page_size;
|
|
||||||
#ifdef HAVE_SYSINFO
|
|
||||||
if (!sysinfo(&sinfo))
|
|
||||||
{
|
|
||||||
ULONG64 total = (ULONG64)sinfo.totalram * sinfo.mem_unit;
|
|
||||||
info->MmHighestPhysicalPage = max(1, total / page_size);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
info->MmNumberOfPhysicalPages = info->MmHighestPhysicalPage - info->MmLowestPhysicalPage;
|
info->MmNumberOfPhysicalPages = info->MmHighestPhysicalPage - info->MmLowestPhysicalPage;
|
||||||
info->AllocationGranularity = granularity_mask + 1;
|
info->AllocationGranularity = granularity_mask + 1;
|
||||||
info->LowestUserAddress = (void *)0x10000;
|
info->LowestUserAddress = (void *)0x10000;
|
||||||
|
|
|
@ -950,6 +950,12 @@
|
||||||
/* Define to 1 if `__st_birthtime' is a member of `struct stat'. */
|
/* Define to 1 if `__st_birthtime' is a member of `struct stat'. */
|
||||||
#undef HAVE_STRUCT_STAT___ST_BIRTHTIME
|
#undef HAVE_STRUCT_STAT___ST_BIRTHTIME
|
||||||
|
|
||||||
|
/* Define to 1 if `mem_unit' is a member of `struct sysinfo'. */
|
||||||
|
#undef HAVE_STRUCT_SYSINFO_MEM_UNIT
|
||||||
|
|
||||||
|
/* Define to 1 if `totalram' is a member of `struct sysinfo'. */
|
||||||
|
#undef HAVE_STRUCT_SYSINFO_TOTALRAM
|
||||||
|
|
||||||
/* Define to 1 if `tcps_connattempt' is a member of `struct tcpstat'. */
|
/* Define to 1 if `tcps_connattempt' is a member of `struct tcpstat'. */
|
||||||
#undef HAVE_STRUCT_TCPSTAT_TCPS_CONNATTEMPT
|
#undef HAVE_STRUCT_TCPSTAT_TCPS_CONNATTEMPT
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue