commit 9d5d2b8950db6d9cbaa3db608e08cbdbd7c120f8
parent 461669b5a2929381a5b96646b05a8a45660bbce3
Author: sin <sin@2f30.org>
Date: Tue, 19 May 2015 19:31:18 +0100
Add support for DragonFly BSD
Diffstat:
4 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/config.dfly.mk b/config.dfly.mk
@@ -0,0 +1,7 @@
+PREFIX = /usr/local
+MANPREFIX = $(PREFIX)/man
+
+CPPFLAGS = -DVERSION=\"${VERSION}\" -DPATH_APM=\"/dev/apm\"
+CFLAGS = -I/usr/local/include
+LDFLAGS = -L/usr/local/lib
+LDLIBS = -lX11
diff --git a/configure b/configure
@@ -4,6 +4,9 @@ case `uname` in
OpenBSD)
ln -sf config.bsd.mk config.mk
;;
+DragonFly)
+ ln -sf config.dfly.mk config.mk
+ ;;
Linux)
ln -sf config.linux.mk config.mk
;;
diff --git a/xbattmon.1 b/xbattmon.1
@@ -1,4 +1,4 @@
-.Dd Apr 19, 2015
+.Dd May 19, 2015
.Dt XBATTMON 1
.Os
.Sh NAME
@@ -38,6 +38,6 @@ bars might find
.Nm
useful.
.Sh PORTABILITY
-It currently works on OpenBSD and Linux.
+It currently works on DragonFly BSD, OpenBSD and Linux.
.Sh AUTHORS
.An Dimitris Papastamos Aq Mt sin@2f30.org .
diff --git a/xbattmon.c b/xbattmon.c
@@ -213,6 +213,30 @@ pollbat(void)
state = info.ac_state == APM_AC_ON ? AC_ON : AC_OFF;
}
+#elif __DragonFly__
+#include <sys/ioctl.h>
+#include <fcntl.h>
+#include <machine/apm_bios.h>
+
+void
+pollbat(void)
+{
+ struct apm_info ai;
+ int r;
+ int fd;
+
+ fd = open(PATH_APM, O_RDONLY);
+ if (fd < 0)
+ err(1, "open %s", PATH_APM);
+ r = ioctl(fd, APMIO_GETINFO, &ai);
+ if (r < 0)
+ err(1, "APMIO_GETINFO %s", PATH_APM);
+ batcap = ai.ai_batt_life;
+ if (batcap > maxcap)
+ batcap = maxcap;
+ state = ai.ai_acline ? AC_ON : AC_OFF;
+ close(fd);
+}
#elif __linux__
void
pollbat(void)