From 9ebb860e3981db78ee31859dc77f1fce3ccc3183 Mon Sep 17 00:00:00 2001 From: Alan Coopersmith Date: Fri, 6 Jan 2012 14:37:16 -0800 Subject: Provide Solaris implementation of intel_get_total_ram_mb Signed-off-by: Alan Coopersmith Signed-off-by: Daniel Vetter --- lib/intel_drm.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/intel_drm.c b/lib/intel_drm.c index c6cf21d4..f8eca7d8 100644 --- a/lib/intel_drm.c +++ b/lib/intel_drm.c @@ -25,6 +25,8 @@ * */ +#include "config.h" + #include #include #include @@ -36,7 +38,9 @@ #include #include #include +#ifdef HAVE_STRUCT_SYSINFO_TOTALRAM #include +#endif #include "intel_gpu_tools.h" #include "i915_drm.h" @@ -78,8 +82,10 @@ int intel_gen(uint32_t devid) uint64_t intel_get_total_ram_mb(void) { - struct sysinfo sysinf; uint64_t retval; + +#ifdef HAVE_STRUCT_SYSINFO_TOTALRAM /* Linux */ + struct sysinfo sysinf; int ret; ret = sysinfo(&sysinf); @@ -87,6 +93,16 @@ intel_get_total_ram_mb(void) retval = sysinf.totalram; retval *= sysinf.mem_unit; +#elif defined(_SC_PAGESIZE) && defined(_SC_PHYS_PAGES) /* Solaris */ + long pagesize, npages; + + pagesize = sysconf(_SC_PAGESIZE); + npages = sysconf(_SC_PHYS_PAGES); + + retval = pagesize * npages; +#else +#error "Unknown how to get RAM size for this OS" +#endif return retval / (1024*1024); } -- cgit v1.2.3