[PATCH] ntdll: Report system information SystemPerformanceInformation info class. (v2)

Vijay Kiran Kamuju infyquest at gmail.com
Tue Apr 16 02:03:15 CDT 2019


On Mon, Apr 15, 2019 at 9:24 PM Alexandre Julliard <julliard at winehq.org> wrote:
>
> Vijay Kiran Kamuju <infyquest at gmail.com> writes:
>
> > +#ifdef HAVE_SYSINFO
> > +            struct sysinfo sinfo;
> > +
> > +            if (!sysinfo(&sinfo))
> > +            {
> > +                ULONG64 freeram   = (ULONG64)sinfo.freeram * sinfo.mem_unit;
> > +                ULONG64 totalram  = (ULONG64)sinfo.totalram * sinfo.mem_unit;
> > +                ULONG64 totalswap = (ULONG64)sinfo.totalswap * sinfo.mem_unit;
> > +                ULONG64 freeswap  = (ULONG64)sinfo.freeswap * sinfo.mem_unit;
> > +
> > +                if ((fp = fopen("/proc/meminfo", "r")))
> > +                {
> > +                    unsigned long long available;
> > +                    char line[64];
> > +                    while (fgets(line, sizeof(line), fp))
> > +                    {
> > +                        if (sscanf(line, "MemAvailable: %llu kB", &available) == 1)
> > +                        {
> > +                            freeram = min(available * 1024, totalram);
> > +                            break;
> > +                        }
> > +                    }
> > +                    fclose(fp);
> > +                }
>
> It seems to me that as long as we are parsing /proc/meminfo, we could
> get everything from there, instead of mixing it up with sysinfo().
>
> --
> Alexandre Julliard
> julliard at winehq.org
I believe the original author's intent was to make it work also in the
*bsd systems where '/proc/meminfo' is not available and sysinfo
syscall is available.
I can rewrite this patch by parsing the /proc/meminfo, that might make
this smaller and not dependent on sysinfo but working only in linux.

---
Vijay



More information about the wine-devel mailing list