Skip to content

Commit

Permalink
[mono] fix memfuncs for FreeBSD (dotnet#88300)
Browse files Browse the repository at this point in the history
* fix memfuncs for FreeBSD

* match format
  • Loading branch information
Thefrank committed Jul 3, 2023
1 parent c98fc2f commit 58bf958
Showing 1 changed file with 13 additions and 5 deletions.
18 changes: 13 additions & 5 deletions src/mono/mono/utils/memfuncs.c
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,12 @@
#include <sys/vmmeter.h>
#endif

#if defined (__FreeBSD__)
#include <sys/param.h>
#include <sys/sysctl.h>
#include <sys/vmmeter.h>
#include <vm/vm_param.h>
#endif

#if defined(TARGET_WIN32)
#include <windows.h>
Expand Down Expand Up @@ -253,8 +259,8 @@ mono_determine_physical_ram_size (void)
memstat.dwLength = sizeof (memstat);
GlobalMemoryStatusEx (&memstat);
return (guint64)memstat.ullTotalPhys;
#elif defined (__NetBSD__) || defined (__APPLE__)
#ifdef __NetBSD__
#elif defined (__NetBSD__) || defined (__APPLE__) || defined (__FreeBSD__)
#if defined (__NetBSD__) || defined (__FreeBSD__)
unsigned long value;
#else
guint64 value;
Expand All @@ -263,6 +269,8 @@ mono_determine_physical_ram_size (void)
CTL_HW,
#ifdef __NetBSD__
HW_PHYSMEM64
#elif defined (__FreeBSD__)
HW_PHYSMEM
#else
HW_MEMSIZE
#endif
Expand All @@ -283,7 +291,7 @@ mono_determine_physical_ram_size (void)
page_size = (guint64)sysconf (_SC_PAGESIZE);
#endif

#ifdef _SC_PHYS_PAGES
#ifdef _SC_PHYS_PAGES /* non-POSIX should work on: Linux, Solaris2, cygwin */
num_pages = (guint64)sysconf (_SC_PHYS_PAGES);
#endif

Expand Down Expand Up @@ -343,7 +351,7 @@ mono_determine_physical_ram_available_size (void)
GlobalMemoryStatusEx (&memstat);
return (guint64)memstat.ullAvailPhys;

#elif defined (__NetBSD__)
#elif defined (__NetBSD__) || defined (__FreeBSD__)
struct vmtotal vm_total;
guint64 page_size;
int mib[2];
Expand Down Expand Up @@ -392,7 +400,7 @@ mono_determine_physical_ram_available_size (void)
page_size = (guint64)sysconf (_SC_PAGESIZE);
#endif

#ifdef _SC_AVPHYS_PAGES
#ifdef _SC_AVPHYS_PAGES /* non-POSIX should work on: Linux, Solaris2, cygwin */
num_pages = (guint64)sysconf (_SC_AVPHYS_PAGES);
#endif

Expand Down

0 comments on commit 58bf958

Please sign in to comment.