From 5e0f4848e5bfd325840d405582bdedf3a27b98f8 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Mon, 27 Aug 2007 16:34:45 -0400 Subject: move some of the freebsd specific stuff into sysdeps --- src/ck-sysdeps-freebsd.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'src/ck-sysdeps-freebsd.c') diff --git a/src/ck-sysdeps-freebsd.c b/src/ck-sysdeps-freebsd.c index 0e7f845..99a1791 100644 --- a/src/ck-sysdeps-freebsd.c +++ b/src/ck-sysdeps-freebsd.c @@ -35,6 +35,9 @@ #include #include #include +#include + +#include #define DEV_ENCODE(M,m) ( \ ( (M&0xfff) << 8) | ( (m&0xfff00) << 12) | (m&0xff) \ @@ -42,6 +45,10 @@ #include "ck-sysdeps.h" +#ifndef ERROR +#define ERROR -1 +#endif + /* adapted from procps */ struct _CkProcessStat { @@ -412,3 +419,33 @@ ck_get_console_num_from_device (const char *device, return ret; } + +gboolean +ck_get_active_console_num (int console_fd, + guint *num) +{ + gboolean ret; + int res; + int active; + + g_assert (console_fd != -1); + + active = 0; + ret = FALSE; + + res = ioctl (console_fd, VT_GETACTIVE, &active); + if (res == ERROR) { + perror ("ioctl VT_GETACTIVE"); + goto out; + } + + g_debug ("Active VT is: ttyv%d", active); + ret = TRUE; + + out: + if (num != NULL) { + *num = active; + } + + return ret; +} -- cgit