1*aecfc01dSrui zang - Sun Microsystems - Beijing China /* 2*aecfc01dSrui zang - Sun Microsystems - Beijing China * CDDL HEADER START 3*aecfc01dSrui zang - Sun Microsystems - Beijing China * 4*aecfc01dSrui zang - Sun Microsystems - Beijing China * The contents of this file are subject to the terms of the 5*aecfc01dSrui zang - Sun Microsystems - Beijing China * Common Development and Distribution License (the "License"). 6*aecfc01dSrui zang - Sun Microsystems - Beijing China * You may not use this file except in compliance with the License. 7*aecfc01dSrui zang - Sun Microsystems - Beijing China * 8*aecfc01dSrui zang - Sun Microsystems - Beijing China * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*aecfc01dSrui zang - Sun Microsystems - Beijing China * or http://www.opensolaris.org/os/licensing. 10*aecfc01dSrui zang - Sun Microsystems - Beijing China * See the License for the specific language governing permissions 11*aecfc01dSrui zang - Sun Microsystems - Beijing China * and limitations under the License. 12*aecfc01dSrui zang - Sun Microsystems - Beijing China * 13*aecfc01dSrui zang - Sun Microsystems - Beijing China * When distributing Covered Code, include this CDDL HEADER in each 14*aecfc01dSrui zang - Sun Microsystems - Beijing China * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*aecfc01dSrui zang - Sun Microsystems - Beijing China * If applicable, add the following below this CDDL HEADER, with the 16*aecfc01dSrui zang - Sun Microsystems - Beijing China * fields enclosed by brackets "[]" replaced with your own identifying 17*aecfc01dSrui zang - Sun Microsystems - Beijing China * information: Portions Copyright [yyyy] [name of copyright owner] 18*aecfc01dSrui zang - Sun Microsystems - Beijing China * 19*aecfc01dSrui zang - Sun Microsystems - Beijing China * CDDL HEADER END 20*aecfc01dSrui zang - Sun Microsystems - Beijing China */ 21*aecfc01dSrui zang - Sun Microsystems - Beijing China 22*aecfc01dSrui zang - Sun Microsystems - Beijing China /* 23*aecfc01dSrui zang - Sun Microsystems - Beijing China * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 24*aecfc01dSrui zang - Sun Microsystems - Beijing China * Use is subject to license terms. 25*aecfc01dSrui zang - Sun Microsystems - Beijing China */ 26*aecfc01dSrui zang - Sun Microsystems - Beijing China 27*aecfc01dSrui zang - Sun Microsystems - Beijing China #ifndef _SYS_VT_H 28*aecfc01dSrui zang - Sun Microsystems - Beijing China #define _SYS_VT_H 29*aecfc01dSrui zang - Sun Microsystems - Beijing China 30*aecfc01dSrui zang - Sun Microsystems - Beijing China #ifdef __cplusplus 31*aecfc01dSrui zang - Sun Microsystems - Beijing China extern "C" { 32*aecfc01dSrui zang - Sun Microsystems - Beijing China #endif 33*aecfc01dSrui zang - Sun Microsystems - Beijing China 34*aecfc01dSrui zang - Sun Microsystems - Beijing China #include <sys/types.h> 35*aecfc01dSrui zang - Sun Microsystems - Beijing China 36*aecfc01dSrui zang - Sun Microsystems - Beijing China /* 37*aecfc01dSrui zang - Sun Microsystems - Beijing China * Public IOCTLs supported by the VT, which are shared with 38*aecfc01dSrui zang - Sun Microsystems - Beijing China * other operating systems. 39*aecfc01dSrui zang - Sun Microsystems - Beijing China */ 40*aecfc01dSrui zang - Sun Microsystems - Beijing China #define VTIOC ('V'<<8) 41*aecfc01dSrui zang - Sun Microsystems - Beijing China #define VT_OPENQRY (VTIOC|1) /* inquires if this vt already open */ 42*aecfc01dSrui zang - Sun Microsystems - Beijing China #define VT_SETMODE (VTIOC|2) /* set vt into auto or process mode */ 43*aecfc01dSrui zang - Sun Microsystems - Beijing China 44*aecfc01dSrui zang - Sun Microsystems - Beijing China #define VT_GETMODE (VTIOC|3) /* returns mode vt is currently in */ 45*aecfc01dSrui zang - Sun Microsystems - Beijing China #define VT_RELDISP (VTIOC|4) /* tells vt when display released */ 46*aecfc01dSrui zang - Sun Microsystems - Beijing China #define VT_ACTIVATE (VTIOC|5) /* activates specified vt */ 47*aecfc01dSrui zang - Sun Microsystems - Beijing China #define VT_WAITACTIVE (VTIOC|6) /* wait for vt to be activated */ 48*aecfc01dSrui zang - Sun Microsystems - Beijing China #define VT_GETSTATE (VTIOC|100) /* returns active and open vts */ 49*aecfc01dSrui zang - Sun Microsystems - Beijing China 50*aecfc01dSrui zang - Sun Microsystems - Beijing China /* 51*aecfc01dSrui zang - Sun Microsystems - Beijing China * Solaris specific public IOCTL. 52*aecfc01dSrui zang - Sun Microsystems - Beijing China * Inquires if the vt functionality is available. 53*aecfc01dSrui zang - Sun Microsystems - Beijing China */ 54*aecfc01dSrui zang - Sun Microsystems - Beijing China #define VT_ENABLED (VTIOC|101) 55*aecfc01dSrui zang - Sun Microsystems - Beijing China 56*aecfc01dSrui zang - Sun Microsystems - Beijing China struct vt_mode { 57*aecfc01dSrui zang - Sun Microsystems - Beijing China char mode; /* mode to set vt into, VT_AUTO or VT_PROCESS */ 58*aecfc01dSrui zang - Sun Microsystems - Beijing China char waitv; /* if != 0, vt hangs on writes when not active */ 59*aecfc01dSrui zang - Sun Microsystems - Beijing China short relsig; /* signal to use for release request */ 60*aecfc01dSrui zang - Sun Microsystems - Beijing China short acqsig; /* signal to use for display acquired */ 61*aecfc01dSrui zang - Sun Microsystems - Beijing China short frsig; /* signal to use for forced release */ 62*aecfc01dSrui zang - Sun Microsystems - Beijing China }; 63*aecfc01dSrui zang - Sun Microsystems - Beijing China 64*aecfc01dSrui zang - Sun Microsystems - Beijing China /* vt switching mode */ 65*aecfc01dSrui zang - Sun Microsystems - Beijing China enum { 66*aecfc01dSrui zang - Sun Microsystems - Beijing China VT_AUTO = 0, /* this vt switching is automatic */ 67*aecfc01dSrui zang - Sun Microsystems - Beijing China VT_PROCESS /* this vt switching controlled by process */ 68*aecfc01dSrui zang - Sun Microsystems - Beijing China }; 69*aecfc01dSrui zang - Sun Microsystems - Beijing China 70*aecfc01dSrui zang - Sun Microsystems - Beijing China #define VT_ACKACQ 2 /* ack from v86 acquire routine */ 71*aecfc01dSrui zang - Sun Microsystems - Beijing China 72*aecfc01dSrui zang - Sun Microsystems - Beijing China /* 73*aecfc01dSrui zang - Sun Microsystems - Beijing China * structure used by VT_GETSTATE ioctl 74*aecfc01dSrui zang - Sun Microsystems - Beijing China */ 75*aecfc01dSrui zang - Sun Microsystems - Beijing China 76*aecfc01dSrui zang - Sun Microsystems - Beijing China struct vt_stat { 77*aecfc01dSrui zang - Sun Microsystems - Beijing China unsigned short v_active; 78*aecfc01dSrui zang - Sun Microsystems - Beijing China unsigned short v_signal; 79*aecfc01dSrui zang - Sun Microsystems - Beijing China unsigned short v_state; 80*aecfc01dSrui zang - Sun Microsystems - Beijing China }; 81*aecfc01dSrui zang - Sun Microsystems - Beijing China 82*aecfc01dSrui zang - Sun Microsystems - Beijing China /* project private IOCTLs */ 83*aecfc01dSrui zang - Sun Microsystems - Beijing China #define VT_CONFIG (VTIOC|102) /* config virtual console number */ 84*aecfc01dSrui zang - Sun Microsystems - Beijing China #define VT_SETDISPINFO (VTIOC|103) /* set display number */ 85*aecfc01dSrui zang - Sun Microsystems - Beijing China #define VT_SETDISPLOGIN (VTIOC|104) /* set display login */ 86*aecfc01dSrui zang - Sun Microsystems - Beijing China #define VT_GETDISPINFO (VTIOC|105) /* get display info */ 87*aecfc01dSrui zang - Sun Microsystems - Beijing China 88*aecfc01dSrui zang - Sun Microsystems - Beijing China /* 89*aecfc01dSrui zang - Sun Microsystems - Beijing China * setting target console is only used by vtdaemon 90*aecfc01dSrui zang - Sun Microsystems - Beijing China * to set target console while vtdaemon is authenticating 91*aecfc01dSrui zang - Sun Microsystems - Beijing China * for it, which is returned in VT_GETSTATE. At that 92*aecfc01dSrui zang - Sun Microsystems - Beijing China * time, the real active console is the vtdaemon special console, 93*aecfc01dSrui zang - Sun Microsystems - Beijing China * but VT_GETSTATE should not be aware of it. Instead, VT_GETACTIVE 94*aecfc01dSrui zang - Sun Microsystems - Beijing China * is used to get the real active console for vtdaemon. 95*aecfc01dSrui zang - Sun Microsystems - Beijing China */ 96*aecfc01dSrui zang - Sun Microsystems - Beijing China #define VT_SET_TARGET (VTIOC|106) 97*aecfc01dSrui zang - Sun Microsystems - Beijing China #define VT_GETACTIVE (VTIOC|107) 98*aecfc01dSrui zang - Sun Microsystems - Beijing China 99*aecfc01dSrui zang - Sun Microsystems - Beijing China /* 100*aecfc01dSrui zang - Sun Microsystems - Beijing China * structure used by VT_GETDISPINFO 101*aecfc01dSrui zang - Sun Microsystems - Beijing China */ 102*aecfc01dSrui zang - Sun Microsystems - Beijing China struct vt_dispinfo { 103*aecfc01dSrui zang - Sun Microsystems - Beijing China pid_t v_pid; /* -1 if no display info (auto mode) */ 104*aecfc01dSrui zang - Sun Microsystems - Beijing China int v_dispnum; /* display number associated with vt */ 105*aecfc01dSrui zang - Sun Microsystems - Beijing China int v_login; /* if the user logged in the display */ 106*aecfc01dSrui zang - Sun Microsystems - Beijing China }; 107*aecfc01dSrui zang - Sun Microsystems - Beijing China 108*aecfc01dSrui zang - Sun Microsystems - Beijing China #ifdef __cplusplus 109*aecfc01dSrui zang - Sun Microsystems - Beijing China } 110*aecfc01dSrui zang - Sun Microsystems - Beijing China #endif 111*aecfc01dSrui zang - Sun Microsystems - Beijing China 112*aecfc01dSrui zang - Sun Microsystems - Beijing China #endif /* _SYS_VT_H */ 113