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 *);