--- gegl/gegl-config.c.orig +++ gegl/gegl-config.c @@ -44,6 +44,11 @@ #include #endif +#ifdef __FreeBSD__ +#include +#include +#endif + G_DEFINE_TYPE (GeglConfig, gegl_config, G_TYPE_OBJECT) static GObjectClass * parent_class = NULL; @@ -277,6 +282,15 @@ # endif ) * page_size; mach_port_deallocate (mach_task_self (), host); + } +#elif defined(__FreeBSD__) + size_t len = sizeof(unsigned int); + unsigned int realmem, physmem; + if(sysctlbyname("hw.realmem", &realmem, &len, NULL, 0)) { + mem_total = (int64_t) realmem; + } + if (sysctlbyname("hw.physmem", &physmem, &len, NULL, 0)) { + mem_available = physmem; } #else mem_total = sysconf (_SC_PHYS_PAGES) * sysconf (_SC_PAGESIZE);