I think this is the closest i've gotten to a version that both compiles and links.
However it doesn't compile, so im not sure.
I might undo all of this, not sure yet.
FreeBSD 11.1 removes cache memory and adds laundry memory. The MIB of
cache memory still exists, but its value is always set to zero.
According to the man page of top(1), the value of laundry memory means
number of dirty pages queued for laundering, suggesting that it should
be added to the 'user' in libgtop because it cannot be freed immediately
without writing out data. Laundry memory was part of inactive memory in
older FreeBSD releases.
FreeBSD systems running on ZFS usually have a large portion of memory
used as ZFS ARC, which has similar purpose to buffer cache of other
filesystems. ZFS ARC can usually be freed quickly when the system needs
more memory, so we don't want to put it in 'user' in libgtop. However,
both buffer cache and ZFS ARC are parts of wired memory, and wired
memory is counted in 'user'. Therefore, we subtract the size of ZFS ARC
from wired memory when calculating 'user' value, making it more useful
to FreeBSD users.
This patch is based on the patch submiited three years ago by
Benoît Dejean <bdejean@gmail.com>.
https://bugzilla.gnome.org/show_bug.cgi?id=748928https://gitlab.gnome.org/GNOME/libgtop/issues/31
The previous name is incorrect and inconsistent with the code generated
by lib.pl.
Also add missing hooks.
This symbol, although exposed in public headers is not part of the API
and is only used internally.
The field was added almost 20 years ago, but has only been set on
Solaris so far. It turns out we have a use for it now in the new
"Usage" application, so also fill it in on Linux.
https://bugzilla.gnome.org/show_bug.cgi?id=775182
The ioctl call used in this patch doesn't seems to be documented. It is
what ifconfig(8) command uses to display the media type, and its usage
can be learned by reading the source code of ifconfig(8).
https://bugzilla.gnome.org/show_bug.cgi?id=770165
libgtop fails to build on musl libc, due to the header
resulting in the headers that would be loaded for libc 5 being
loaded on musl libc.
musl defines headers which are also defined in linux-headers'
in.h, causing redefinition errors.
https://bugzilla.gnome.org/show_bug.cgi?id=760655
Signed-off-by: Benoît Dejean <bdejean@gmail.com>