bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2] physmem: use sysinfo on linux for physmem_total


From: Natanael Copa
Subject: Re: [PATCH v2] physmem: use sysinfo on linux for physmem_total
Date: Sat, 19 Apr 2014 15:20:40 +0200

Den 18. apr. 2014 kl. 18:11 skrev Pádraig Brady <address@hidden>:

> On 04/18/2014 10:16 AM, Natanael Copa wrote:
>> * lib/physmem.c (physmem_total): Some systems like musl libc does not
>> (yet) support _SC_PHYS_PAGES. Use the linux syscall sysinfo as fallback
>> if _SC_PHYS_PAGES or _SC_PAGESIZE fails.
>> 
>> Signed-off-by: Natanael Copa <address@hidden>
>> ---
>> Changes since v1:
>> - prefer use _SC_PHYS_PAGES * _SC_PAGESIZE if available and use
>>   sysinfo as fallback.
>> - check for and use mem_unit, member of struct sysinfo.
>> 
>> lib/physmem.c | 13 ++++++++++++-
>> m4/physmem.m4 |  3 ++-
>> 2 files changed, 14 insertions(+), 2 deletions(-)
>> 
>> diff --git a/lib/physmem.c b/lib/physmem.c
>> index 7a67fb3..53afdd9 100644
>> --- a/lib/physmem.c
>> +++ b/lib/physmem.c
>> @@ -32,8 +32,11 @@
>> # include <sys/sysmp.h>
>> #endif
>> 
>> -#if HAVE_SYS_SYSINFO_H && HAVE_MACHINE_HAL_SYSINFO_H
>> +#if HAVE_SYS_SYSINFO_H
>> # include <sys/sysinfo.h>
>> +#endif
>> +
>> +#if HAVE_MACHINE_HAL_SYSINFO_H
>> # include <machine/hal_sysinfo.h>
>> #endif
>> 
>> @@ -90,6 +93,14 @@ physmem_total (void)
>>   }
>> #endif
>> 
>> +#if HAVE_SYSINFO && HAVE_STRUCT_SYSINFO_MEM_UNIT
>> +  { /* This works on linux */
>> +    struct sysinfo si;
>> +    if (sysinfo(&si) == 0)
>> +      return (double) si.totalram * (double) si.mem_unit;
>> +  }
>> +#endif
>> +
>> #if HAVE_PSTAT_GETSTATIC
>>   { /* This works on hpux11.  */
>>     struct pst_static pss;
>> diff --git a/m4/physmem.m4 b/m4/physmem.m4
>> index ff3d268..a1179eb 100644
>> --- a/m4/physmem.m4
>> +++ b/m4/physmem.m4
>> @@ -40,6 +40,7 @@ AC_DEFUN([gl_PHYSMEM],
>>      #endif
>>     ])
>> 
>> -  AC_CHECK_FUNCS([pstat_getstatic pstat_getdynamic sysmp getsysinfo sysctl 
>> table])
>> +  AC_CHECK_FUNCS([pstat_getstatic pstat_getdynamic sysmp getsysinfo sysctl 
>> table sysinfo])
>> +  AC_CHECK_MEMBERS([struct sysinfo.mem_unit],,, [[#include 
>> <sys/sysinfo.h>]])
>>   AC_REQUIRE([gl_SYS__SYSTEM_CONFIGURATION])
>> ])
>> 
> 
> looks good,
> though you might as well also adjust physmem_available() similarly.
> I've done that in the attached and will push later.

looks good to me. thanks!

> 
> thanks,
> Pádraig.
> <musl-physmem_available.patch>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]