0

Debian の X ラッパーで使用される関数があります。この関数は、X がコンソール (仮想端末) で実行されているかどうかを判断します。Linux と freebsd で動作します。

illumos/solaris で同じことを行うにはどのような方法がありますか?

4

2 に答える 2

0
diff --git a/debian/local/xserver-wrapper.c b/debian/local/xserver-wrapper.c
index d4a6ab8..31e5343 100644
--- a/debian/local/xserver-wrapper.c
+++ b/debian/local/xserver-wrapper.c
@@ -116,6 +116,9 @@
 #define TTY_MAJOR_DEV 4
 #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
 #include <sys/consio.h>
+#elif defined(__sun__)
+#include <sys/kd.h>
+#include <sys/vt.h>
 #endif

 #define X_WRAPPER_CONFIG_FILE "/etc/X11/Xwrapper.config" 
@@ -171,6 +174,10 @@ onConsole()

   if (ioctl(0, VT_GETINDEX, &idx) != -1)
     return TRUE;
+#elif defined(__sun__)
+  int mode;
+  if (ioctl(0, KDGETMODE, &mode) != -1) /* mode = 0 (KD_TEXT) or 1 (KD_GRAPHICS) */
+    return TRUE;
 #else
 #warning This program needs porting to your kernel.
   (void) fprintf(stderr, "X: unable to determine if running on a console\n");
于 2013-06-20T07:11:05.580 に答える