diff --git a/src/as-system-info.c b/src/as-system-info.c index c7526ade..17b1ea16 100644 --- a/src/as-system-info.c +++ b/src/as-system-info.c @@ -56,6 +56,8 @@ #include #include #include +#elif defined(__sun) +#include #endif #ifdef HAVE_SYSTEMD #include @@ -511,6 +513,12 @@ as_get_physical_memory_total (void) return 0; } return hbi.memory_size / MB_IN_BYTES; +#elif defined(__sun) + long physpages = sysconf(_SC_PHYS_PAGES); + long pagesize = sysconf(_SC_PAGESIZE); + if (physpages > 0 && pagesize > 0) + return (physpages * pagesize) / MB_IN_BYTES; + return 0; #else #error "Implementation of as_get_physical_memory_total() missing for this OS." #endif