Improve support for FreeBSD
This commit is contained in:
parent
ba0f0e9199
commit
8cb1730cb1
49
src/probe.c
49
src/probe.c
|
@ -36,22 +36,22 @@
|
||||||
|
|
||||||
#if defined(__linux__)
|
#if defined(__linux__)
|
||||||
# define _sysinfo_linux _sysinfo
|
# define _sysinfo_linux _sysinfo
|
||||||
# define _userinfo_generic _userinfo
|
# define _userinfo_utmpx _userinfo
|
||||||
# define _ifinfo_linux _ifinfo
|
# define _ifinfo_linux _ifinfo
|
||||||
# define _volinfo_linux _volinfo
|
# define _volinfo_linux _volinfo
|
||||||
#elif defined(__FreeBSD__)
|
#elif defined(__FreeBSD__)
|
||||||
# define _sysinfo_generic _sysinfo
|
# define _sysinfo_generic _sysinfo
|
||||||
# define _userinfo_none _userinfo
|
# define _userinfo_utmpx _userinfo
|
||||||
# define _ifinfo_generic _ifinfo
|
# define _ifinfo_bsd _ifinfo
|
||||||
# define _volinfo_linux _volinfo
|
# define _volinfo_linux _volinfo
|
||||||
#elif defined(__NetBSD__) /* FIXME Other BSDs not tested */
|
#elif defined(__NetBSD__)
|
||||||
# define _sysinfo_generic _sysinfo
|
# define _sysinfo_generic _sysinfo
|
||||||
# define _userinfo_generic _userinfo
|
# define _userinfo_utmpx _userinfo
|
||||||
# define _ifinfo_bsd _ifinfo
|
# define _ifinfo_bsd _ifinfo
|
||||||
# define _volinfo_bsd _volinfo
|
# define _volinfo_bsd _volinfo
|
||||||
#else
|
#else
|
||||||
# define _sysinfo_generic _sysinfo
|
# define _sysinfo_generic _sysinfo
|
||||||
# define _userinfo_generic _userinfo
|
# define _userinfo_utmpx _userinfo
|
||||||
# define _ifinfo_generic _ifinfo
|
# define _ifinfo_generic _ifinfo
|
||||||
# define _volinfo_generic _volinfo
|
# define _volinfo_generic _volinfo
|
||||||
#endif
|
#endif
|
||||||
|
@ -71,10 +71,15 @@ static int _probe_perror(char const * message, int ret);
|
||||||
#endif /* defined(_sysinfo_linux) */
|
#endif /* defined(_sysinfo_linux) */
|
||||||
|
|
||||||
#if defined(_sysinfo_generic)
|
#if defined(_sysinfo_generic)
|
||||||
# if defined(__NetBSD__) /* FIXME Other BSDs not tested */
|
# if defined(__FreeBSD__)
|
||||||
|
# define _sysinfo_uptime_generic _sysinfo_uptime
|
||||||
|
# define _sysinfo_loads_generic _sysinfo_loads
|
||||||
|
# define _sysinfo_ram_generic _sysinfo_ram
|
||||||
|
# define _sysinfo_procs_generic _sysinfo_procs
|
||||||
|
# elif defined(__NetBSD__)
|
||||||
# define _sysinfo_uptime_sysctl _sysinfo_uptime
|
# define _sysinfo_uptime_sysctl _sysinfo_uptime
|
||||||
# define _sysinfo_loads_sysctl _sysinfo_loads
|
# define _sysinfo_loads_sysctl _sysinfo_loads
|
||||||
# define _sysinfo_ram_sysctl _sysinfo_ram
|
# define _sysinfo_ram_sysctl_uvm _sysinfo_ram
|
||||||
# define _sysinfo_procs_sysctl _sysinfo_procs
|
# define _sysinfo_procs_sysctl _sysinfo_procs
|
||||||
# else
|
# else
|
||||||
# define _sysinfo_uptime_generic _sysinfo_uptime
|
# define _sysinfo_uptime_generic _sysinfo_uptime
|
||||||
|
@ -111,8 +116,10 @@ static int _sysinfo_generic(struct sysinfo * info)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* sysinfo sysctl */
|
/* sysinfo sysctl */
|
||||||
# if defined(_sysinfo_uptime_sysctl) || defined(_sysinfo_loads_sysctl) \
|
# if defined(_sysinfo_uptime_sysctl) \
|
||||||
|| defined(_sysinfo_ram_sysctl) || defined(_sysinfo_procs_sysctl)
|
|| defined(_sysinfo_loads_sysctl) \
|
||||||
|
|| defined(_sysinfo_ram_sysctl_uvm) \
|
||||||
|
|| defined(_sysinfo_procs_sysctl)
|
||||||
# include <sys/param.h>
|
# include <sys/param.h>
|
||||||
# define _KMEMUSER /* XXX for NetBSD */
|
# define _KMEMUSER /* XXX for NetBSD */
|
||||||
# include <sys/sysctl.h>
|
# include <sys/sysctl.h>
|
||||||
|
@ -160,9 +167,9 @@ static int _sysinfo_loads_sysctl(struct sysinfo * info)
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if defined(_sysinfo_ram_sysctl)
|
# if defined(_sysinfo_ram_sysctl_uvm)
|
||||||
# include <uvm/uvm.h>
|
# include <uvm/uvm.h>
|
||||||
static int _sysinfo_ram_sysctl(struct sysinfo * info)
|
static int _sysinfo_ram_sysctl_uvm(struct sysinfo * info)
|
||||||
{
|
{
|
||||||
int mib[2];
|
int mib[2];
|
||||||
struct uvmexp ue;
|
struct uvmexp ue;
|
||||||
|
@ -257,9 +264,15 @@ static int _sysinfo_procs_generic(struct sysinfo * info)
|
||||||
|
|
||||||
|
|
||||||
/* userinfo */
|
/* userinfo */
|
||||||
#if defined(_userinfo_generic)
|
#if defined(_userinfo_none)
|
||||||
# include <utmpx.h>
|
static int _userinfo_none(unsigned int * userinfo)
|
||||||
static int _userinfo_generic(unsigned int * userinfo)
|
{
|
||||||
|
*userinfo = 0;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#elif defined(_userinfo_utmpx)
|
||||||
|
# include <utmpx.h>
|
||||||
|
static int _userinfo_utmpx(unsigned int * userinfo)
|
||||||
{
|
{
|
||||||
struct utmpx * ut;
|
struct utmpx * ut;
|
||||||
|
|
||||||
|
@ -269,12 +282,6 @@ static int _userinfo_generic(unsigned int * userinfo)
|
||||||
endutxent();
|
endutxent();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#elif defined(_userinfo_none)
|
|
||||||
static int _userinfo_none(unsigned int * userinfo)
|
|
||||||
{
|
|
||||||
*userinfo = 0;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user