From 8a830ad0906b8a488aa2a7743bce168fd0332a1e Mon Sep 17 00:00:00 2001 From: wkj Date: Fri, 7 Jan 2005 17:38:08 +0000 Subject: First pass at supporting FreeBSD 5.x. I do not yet have a way of testing this. --- src/cmd/auxstats/FreeBSD.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'src') diff --git a/src/cmd/auxstats/FreeBSD.c b/src/cmd/auxstats/FreeBSD.c index d881ad86..2d0fd57e 100644 --- a/src/cmd/auxstats/FreeBSD.c +++ b/src/cmd/auxstats/FreeBSD.c @@ -18,6 +18,8 @@ #include #include "dat.h" +/* XXX: #if __FreeBSD_version */ + void xapm(int); void xloadavg(int); void xcpu(int); @@ -104,9 +106,15 @@ xnet(int first) out = in = outb = inb = err = 0; addr = (ulong)TAILQ_FIRST(&ifnethead); while(addr){ +#if __FreeBSD_version < 500000 if(kread(addr, (char*)&ifnet, sizeof ifnet) < 0 || kread((ulong)ifnet.if_name, name, 16) < 0) return; +#else + if(kread(addr, (char*)&ifnet, sizeof ifnet) < 0 + || kread((ulong)ifnet.if_dname, name, 16) < 0) + return; +#endif name[15] = 0; addr = (ulong)TAILQ_NEXT(&ifnet, if_link); out += ifnet.if_opackets; @@ -124,6 +132,28 @@ xnet(int first) Bprint(&bout, "etherb %lud 1000000\n", inb+outb); } +#if __FreeBSD_version >= 500000 +int +xacpi(int first) +{ + int rv; + int val, len; + + len = sizeof(val); + rv = sysctlbyname("hw.acpi.battery.life", &val, &len, nil, 0); + if(rv != 0) + return -1; + Bprint(&bout, "battery =%d 100\n", val); + return 0; +} +#else +int +xacpi(int first) +{ + return -1; +} +#endif + void xapm(int first) { @@ -131,10 +161,14 @@ xapm(int first) struct apm_info ai; if(first){ + xacpi(first); fd = open("/dev/apm", OREAD); return; } + if(xacpi(0) >= 0) + return; + if(ioctl(fd, APMIO_GETINFO, &ai) < 0) return; -- cgit v1.2.3