summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2012-01-22 19:24:48 +0100
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-01-22 19:24:48 +0100
commit1a9fa8fd12c78236b1eb4a83062cd8f732c7abb3 (patch)
treed5737d849a4a2c338d0cf5d9e682650f61fbe8c1
parent7132d0f977d226969b47edafbed74a6de04465f9 (diff)
lib: add intel_get_total_swap_mb
Test that try to exercise the swap paths need to check whether swap is available, otherwise they'll just oom. Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--lib/intel_drm.c21
-rw-r--r--lib/intel_gpu_tools.h1
2 files changed, 22 insertions, 0 deletions
diff --git a/lib/intel_drm.c b/lib/intel_drm.c
index f8eca7d8..9e25448a 100644
--- a/lib/intel_drm.c
+++ b/lib/intel_drm.c
@@ -106,3 +106,24 @@ intel_get_total_ram_mb(void)
return retval / (1024*1024);
}
+
+uint64_t
+intel_get_total_swap_mb(void)
+{
+ uint64_t retval;
+
+#ifdef HAVE_STRUCT_SYSINFO_TOTALRAM /* Linux */
+ struct sysinfo sysinf;
+ int ret;
+
+ ret = sysinfo(&sysinf);
+ assert(ret == 0);
+
+ retval = sysinf.totalswap;
+ retval *= sysinf.mem_unit;
+#else
+#error "Unknown how to get swap size for this OS"
+#endif
+
+ return retval / (1024*1024);
+}
diff --git a/lib/intel_gpu_tools.h b/lib/intel_gpu_tools.h
index f2134bf6..f46abfa8 100644
--- a/lib/intel_gpu_tools.h
+++ b/lib/intel_gpu_tools.h
@@ -81,6 +81,7 @@ struct pci_device *intel_get_pci_device(void);
uint32_t intel_get_drm_devid(int fd);
int intel_gen(uint32_t devid);
uint64_t intel_get_total_ram_mb(void);
+uint64_t intel_get_total_swap_mb(void);
void intel_map_file(char *);