The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/wscons/wsconsio.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /* $NetBSD: wsconsio.h,v 1.61.2.4 2004/06/13 08:22:01 jdc Exp $ */
    2 
    3 /*
    4  * Copyright (c) 1996, 1997 Christopher G. Demetriou.  All rights reserved.
    5  *
    6  * Redistribution and use in source and binary forms, with or without
    7  * modification, are permitted provided that the following conditions
    8  * are met:
    9  * 1. Redistributions of source code must retain the above copyright
   10  *    notice, this list of conditions and the following disclaimer.
   11  * 2. Redistributions in binary form must reproduce the above copyright
   12  *    notice, this list of conditions and the following disclaimer in the
   13  *    documentation and/or other materials provided with the distribution.
   14  * 3. All advertising materials mentioning features or use of this software
   15  *    must display the following acknowledgement:
   16  *      This product includes software developed by Christopher G. Demetriou
   17  *      for the NetBSD Project.
   18  * 4. The name of the author may not be used to endorse or promote products
   19  *    derived from this software without specific prior written permission
   20  *
   21  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
   22  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   23  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
   24  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
   25  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
   26  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
   27  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
   28  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   29  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
   30  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   31  */
   32 
   33 #ifndef _DEV_WSCONS_WSCONSIO_H_
   34 #define _DEV_WSCONS_WSCONSIO_H_
   35 
   36 /*
   37  * WSCONS (wsdisplay, wskbd, wsmouse) exported interfaces.
   38  *
   39  * Ioctls are all in group 'W'.  Ioctl number space is partitioned like:
   40  *      0-31    keyboard ioctls (WSKBDIO)
   41  *      32-63   mouse ioctls (WSMOUSEIO)
   42  *      64-95   display ioctls (WSDISPLAYIO)
   43  *      96-127  mux ioctls (WSMUXIO)
   44  *      128-255 reserved for future use
   45  */
   46 
   47 #include <sys/types.h>
   48 #include <sys/ioccom.h>
   49 #include <dev/wscons/wsksymvar.h>
   50 
   51 
   52 /*
   53  * Common event structure (used by keyboard and mouse)
   54  */
   55 struct wscons_event {
   56         u_int           type;
   57         int             value;
   58         struct timespec time;
   59 };
   60 
   61 /* Event type definitions.  Comment for each is information in value. */
   62 #define WSCONS_EVENT_KEY_UP             1       /* key code */
   63 #define WSCONS_EVENT_KEY_DOWN           2       /* key code */
   64 #define WSCONS_EVENT_ALL_KEYS_UP        3       /* void */
   65 #define WSCONS_EVENT_MOUSE_UP           4       /* button # (leftmost = 0) */
   66 #define WSCONS_EVENT_MOUSE_DOWN         5       /* button # (leftmost = 0)  */
   67 #define WSCONS_EVENT_MOUSE_DELTA_X      6       /* X delta amount */
   68 #define WSCONS_EVENT_MOUSE_DELTA_Y      7       /* Y delta amount */
   69 #define WSCONS_EVENT_MOUSE_ABSOLUTE_X   8       /* X location */
   70 #define WSCONS_EVENT_MOUSE_ABSOLUTE_Y   9       /* Y location */
   71 #define WSCONS_EVENT_MOUSE_DELTA_Z      10      /* Z delta amount */
   72 #define WSCONS_EVENT_MOUSE_ABSOLUTE_Z   11      /* Z location */
   73 #define WSCONS_EVENT_SCREEN_SWITCH      12      /* New screen number */
   74 
   75 
   76 /*
   77  * Keyboard ioctls (0 - 31)
   78  */
   79 
   80 /* Get keyboard type. */
   81 #define WSKBDIO_GTYPE           _IOR('W', 0, u_int)
   82 #define WSKBD_TYPE_LK201        1       /* lk-201 */
   83 #define WSKBD_TYPE_LK401        2       /* lk-401 */
   84 #define WSKBD_TYPE_PC_XT        3       /* PC-ish, XT scancode */
   85 #define WSKBD_TYPE_PC_AT        4       /* PC-ish, AT scancode */
   86 #define WSKBD_TYPE_USB          5       /* USB, XT scancode */
   87 #define WSKBD_TYPE_NEXT         6       /* NeXT keyboard */
   88 #define WSKBD_TYPE_HPC_KBD      7       /* HPC bultin keyboard */
   89 #define WSKBD_TYPE_HPC_BTN      8       /* HPC/PsPC buttons */
   90 #define WSKBD_TYPE_ARCHIMEDES   9       /* Archimedes keyboard */
   91 #define WSKBD_TYPE_RISCPC       10      /* RiscPC keyboard, resembling AT codes */
   92 #define WSKBD_TYPE_ADB          11      /* ADB */
   93 #define WSKBD_TYPE_HIL          12      /* HIL keyboard */
   94 #define WSKBD_TYPE_AMIGA        13      /* Amiga keyboard */
   95 #define WSKBD_TYPE_MAPLE        14      /* Dreamcast Maple keyboard */
   96 #define WSKBD_TYPE_ATARI        15      /* Atari keyboard */
   97 #define WSKBD_TYPE_SUN          16      /* Sun Type3/4 */
   98 #define WSKBD_TYPE_SUN5         17      /* Sun Type5 */
   99 
  100 /* Manipulate the keyboard bell. */
  101 struct wskbd_bell_data {
  102         u_int   which;                          /* values to get/set */
  103 #define WSKBD_BELL_DOPITCH      0x1             /* get/set pitch */
  104 #define WSKBD_BELL_DOPERIOD     0x2             /* get/set period */
  105 #define WSKBD_BELL_DOVOLUME     0x4             /* get/set volume */
  106 #define WSKBD_BELL_DOALL        0x7             /* all of the above */
  107         u_int   pitch;                          /* pitch, in Hz */
  108         u_int   period;                         /* period, in milliseconds */
  109         u_int   volume;                         /* percentage of max volume */
  110 };
  111 
  112 #define WSKBDIO_BELL            _IO('W', 1)
  113 #define WSKBDIO_COMPLEXBELL     _IOW('W', 2, struct wskbd_bell_data)
  114 #define WSKBDIO_SETBELL         _IOW('W', 3, struct wskbd_bell_data)
  115 #define WSKBDIO_GETBELL         _IOR('W', 4, struct wskbd_bell_data)
  116 #define WSKBDIO_SETDEFAULTBELL  _IOW('W', 5, struct wskbd_bell_data)
  117 #define WSKBDIO_GETDEFAULTBELL  _IOR('W', 6, struct wskbd_bell_data)
  118 
  119 /* Manipulate the emulation key repeat settings. */
  120 struct wskbd_keyrepeat_data {
  121         u_int   which;                          /* values to get/set */
  122 #define WSKBD_KEYREPEAT_DODEL1  0x1             /* get/set del1 */
  123 #define WSKBD_KEYREPEAT_DODELN  0x2             /* get/set delN */
  124 #define WSKBD_KEYREPEAT_DOALL   0x3             /* all of the above */
  125         u_int   del1;                           /* delay before first, ms */
  126         u_int   delN;                           /* delay before rest, ms */
  127 };
  128 
  129 #define WSKBDIO_SETKEYREPEAT    _IOW('W', 7, struct wskbd_keyrepeat_data)
  130 #define WSKBDIO_GETKEYREPEAT    _IOR('W', 8, struct wskbd_keyrepeat_data)
  131 #define WSKBDIO_SETDEFAULTKEYREPEAT _IOW('W', 9, struct wskbd_keyrepeat_data)
  132 #define WSKBDIO_GETDEFAULTKEYREPEAT _IOR('W', 10, struct wskbd_keyrepeat_data)
  133 
  134 /* Get/set keyboard leds */
  135 #define WSKBD_LED_CAPS          0x01
  136 #define WSKBD_LED_NUM           0x02
  137 #define WSKBD_LED_SCROLL        0x04
  138 #define WSKBD_LED_COMPOSE       0x08
  139 
  140 #define WSKBDIO_SETLEDS         _IOW('W', 11, int)
  141 #define WSKBDIO_GETLEDS         _IOR('W', 12, int)
  142 
  143 /* Manipulate keysym groups. */
  144 struct wskbd_map_data {
  145         u_int   maplen;                         /* number of entries in map */
  146 #define WSKBDIO_MAXMAPLEN       65536
  147         struct wscons_keymap *map;              /* map to get or set */
  148 };
  149 #define WSKBDIO_GETMAP          _IOWR('W', 13, struct wskbd_map_data)
  150 #define WSKBDIO_SETMAP          _IOW('W', 14, struct wskbd_map_data)
  151 #define WSKBDIO_GETENCODING     _IOR('W', 15, kbd_t)
  152 #define WSKBDIO_SETENCODING     _IOW('W', 16, kbd_t)
  153 
  154 /* internal use only */
  155 #define WSKBDIO_SETMODE         _IOW('W', 19, int)
  156 #define WSKBDIO_GETMODE         _IOR('W', 20, int)
  157 #define WSKBD_TRANSLATED        0
  158 #define WSKBD_RAW               1
  159 
  160 #define WSKBDIO_SETKEYCLICK     _IOW('W', 21, int)
  161 #define WSKBDIO_GETKEYCLICK     _IOR('W', 22, int)
  162 
  163 /* Manipulate the scrolling modifiers and mode */
  164 struct wskbd_scroll_data {
  165         u_int           which;
  166 #define WSKBD_SCROLL_DOMODIFIER         0x01
  167 #define WSKBD_SCROLL_DOMODE             0x02
  168 #define WSKBD_SCROLL_DOALL              0x03
  169         u_int           mode;
  170 #define WSKBD_SCROLL_MODE_NORMAL        0x00
  171 #define WSKBD_SCROLL_MODE_HOLD          0x01
  172         u_int           modifier;
  173 };
  174 
  175 #define WSKBDIO_GETSCROLL       _IOR('W', 23, struct wskbd_scroll_data)
  176 #define WSKBDIO_SETSCROLL       _IOW('W', 24, struct wskbd_scroll_data)
  177 
  178 /*
  179  * Mouse ioctls (32 - 63)
  180  */
  181 
  182 /* Get mouse type */
  183 #define WSMOUSEIO_GTYPE         _IOR('W', 32, u_int)
  184 #define WSMOUSE_TYPE_VSXXX      1       /* DEC serial */
  185 #define WSMOUSE_TYPE_PS2        2       /* PS/2-compatible */
  186 #define WSMOUSE_TYPE_USB        3       /* USB mouse */
  187 #define WSMOUSE_TYPE_LMS        4       /* Logitech busmouse */
  188 #define WSMOUSE_TYPE_MMS        5       /* Microsoft InPort mouse */
  189 #define WSMOUSE_TYPE_TPANEL     6       /* Generic Touch Panel */
  190 #define WSMOUSE_TYPE_NEXT       7       /* NeXT mouse */
  191 #define WSMOUSE_TYPE_ARCHIMEDES 8       /* Archimedes mouse */
  192 #define WSMOUSE_TYPE_HIL        9       /* HIL mouse */
  193 #define WSMOUSE_TYPE_AMIGA      10      /* Amiga mouse */      
  194 #define WSMOUSE_TYPE_MAXINE     11      /* DEC maxine mouse */
  195 #define WSMOUSE_TYPE_MAPLE      12      /* Dreamcast Maple mouse */
  196 
  197 /* Set resolution.  Not applicable to all mouse types. */
  198 #define WSMOUSEIO_SRES          _IOW('W', 33, u_int)
  199 #define WSMOUSE_RES_MIN         0
  200 #define WSMOUSE_RES_DEFAULT     75
  201 #define WSMOUSE_RES_MAX         100
  202 
  203 /* Set scale factor (num / den).  Not applicable to all mouse types. */
  204 #define WSMOUSEIO_SSCALE        _IOW('W', 34, u_int[2])
  205 
  206 /* Set sample rate.  Not applicable to all mouse types. */
  207 #define WSMOUSEIO_SRATE         _IOW('W', 35, u_int)
  208 #define WSMOUSE_RATE_MIN        0
  209 #define WSMOUSE_RATE_DEFAULT    50
  210 #define WSMOUSE_RATE_MAX        100
  211 
  212 /* Set/get sample coordinates for calibration */
  213 #define WSMOUSE_CALIBCOORDS_MAX         16
  214 #define WSMOUSE_CALIBCOORDS_RESET       -1
  215 struct wsmouse_calibcoords {
  216         int minx, miny;         /* minimum value of X/Y */
  217         int maxx, maxy;         /* maximum value of X/Y */
  218         int samplelen;          /* number of samples available or
  219                                    WSMOUSE_CALIBCOORDS_RESET for raw mode */
  220         struct wsmouse_calibcoord {
  221                 int rawx, rawy; /* raw coordinate */
  222                 int x, y;       /* translated coordinate */
  223         } samples[WSMOUSE_CALIBCOORDS_MAX];     /* sample coordinates */
  224 };
  225 #define WSMOUSEIO_SCALIBCOORDS  _IOW('W', 36, struct wsmouse_calibcoords)
  226 #define WSMOUSEIO_GCALIBCOORDS  _IOR('W', 37, struct wsmouse_calibcoords)
  227 
  228 /* get device id for calibration */
  229 struct wsmouse_id {
  230         u_int type;
  231 #define WSMOUSE_ID_TYPE_UIDSTR  0       /* ID string (null terminated) */
  232         u_int length;
  233 #define WSMOUSE_ID_MAXLEN       256
  234         u_char data[WSMOUSE_ID_MAXLEN];
  235 };
  236 #define WSMOUSEIO_GETID         _IOWR('W', 38, struct wsmouse_id)
  237 
  238 /*
  239  * Display ioctls (64 - 95)
  240  */
  241 
  242 /* Get display type */
  243 #define WSDISPLAYIO_GTYPE       _IOR('W', 64, u_int)
  244 #define WSDISPLAY_TYPE_UNKNOWN  0       /* unknown */
  245 #define WSDISPLAY_TYPE_PM_MONO  1       /* DEC [23]100 mono */
  246 #define WSDISPLAY_TYPE_PM_COLOR 2       /* DEC [23]100 color */
  247 #define WSDISPLAY_TYPE_CFB      3       /* DEC TC CFB (CX) */
  248 #define WSDISPLAY_TYPE_XCFB     4       /* DEC `maxine' onboard fb */
  249 #define WSDISPLAY_TYPE_MFB      5       /* DEC TC MFB (MX) */
  250 #define WSDISPLAY_TYPE_SFB      6       /* DEC TC SFB (HX) */
  251 #define WSDISPLAY_TYPE_ISAVGA   7       /* (generic) ISA VGA */
  252 #define WSDISPLAY_TYPE_PCIVGA   8       /* (generic) PCI VGA */
  253 #define WSDISPLAY_TYPE_TGA      9       /* DEC PCI TGA */
  254 #define WSDISPLAY_TYPE_SFBP     10      /* DEC TC SFB+ (HX+) */
  255 #define WSDISPLAY_TYPE_PCIMISC  11      /* (generic) PCI misc. disp. */
  256 #define WSDISPLAY_TYPE_NEXTMONO 12      /* NeXT mono display */
  257 #define WSDISPLAY_TYPE_PX       13      /* DEC TC PX */
  258 #define WSDISPLAY_TYPE_PXG      14      /* DEC TC PXG */
  259 #define WSDISPLAY_TYPE_TX       15      /* DEC TC TX */
  260 #define WSDISPLAY_TYPE_HPCFB    16      /* Handheld/PalmSize PC */
  261 #define WSDISPLAY_TYPE_VIDC     17      /* Acorn/ARM VIDC */
  262 #define WSDISPLAY_TYPE_SPX      18      /* DEC SPX (VS3100/VS4000) */
  263 #define WSDISPLAY_TYPE_GPX      19      /* DEC GPX (uVAX/VS2K/VS3100 */
  264 #define WSDISPLAY_TYPE_LCG      20      /* DEC LCG (VS4000) */
  265 #define WSDISPLAY_TYPE_VAX_MONO 21      /* DEC VS2K/VS3100 mono */
  266 #define WSDISPLAY_TYPE_SB_P9100 22      /* Tadpole SPARCbook P9100 */
  267 #define WSDISPLAY_TYPE_EGA      23      /* (generic) EGA */
  268 #define WSDISPLAY_TYPE_DCPVR    24      /* Dreamcast PowerVR */
  269 #define WSDISPLAY_TYPE_GATOR    25      /* HP Gator */
  270 #define WSDISPLAY_TYPE_TOPCAT   26      /* HP TopCat */
  271 #define WSDISPLAY_TYPE_RENAISSANCE      27      /* HP Renaissance */
  272 #define WSDISPLAY_TYPE_CATSEYE  28      /* HP CatsEye */
  273 #define WSDISPLAY_TYPE_DAVINCI  29      /* HP DaVinci */
  274 #define WSDISPLAY_TYPE_TIGER    30      /* HP Tiger */
  275 #define WSDISPLAY_TYPE_HYPERION 31      /* HP Hyperion */
  276 #define WSDISPLAY_TYPE_AMIGACC  32      /* Amiga custom chips */
  277 #define WSDISPLAY_TYPE_SUN24    33      /* Sun 24 bit framebuffers */
  278 #define WSDISPLAY_TYPE_NEWPORT  34      /* SGI Newport */
  279 #define WSDISPLAY_TYPE_GR2      35      /* SGI GR2 */
  280 #define WSDISPLAY_TYPE_SUNCG12  36      /* Sun cgtwelve */
  281 #define WSDISPLAY_TYPE_SUNCG14  37      /* Sun cgfourteen */
  282 #define WSDISPLAY_TYPE_SUNTCX   38      /* Sun TCX */
  283 #define WSDISPLAY_TYPE_SUNFFB   39      /* Sun creator FFB */
  284 
  285 /* Basic display information.  Not applicable to all display types. */
  286 struct wsdisplay_fbinfo {
  287         u_int   height;                         /* height in pixels */
  288         u_int   width;                          /* width in pixels */
  289         u_int   depth;                          /* bits per pixel */
  290         u_int   cmsize;                         /* color map size (entries) */
  291 };
  292 #define WSDISPLAYIO_GINFO       _IOR('W', 65, struct wsdisplay_fbinfo)
  293 
  294 /* Colormap operations.  Not applicable to all display types. */
  295 struct wsdisplay_cmap {
  296         u_int   index;                          /* first element (0 origin) */
  297         u_int   count;                          /* number of elements */
  298         u_char  *red;                           /* red color map elements */
  299         u_char  *green;                         /* green color map elements */
  300         u_char  *blue;                          /* blue color map elements */
  301 };      
  302 #define WSDISPLAYIO_GETCMAP     _IOW('W', 66, struct wsdisplay_cmap)
  303 #define WSDISPLAYIO_PUTCMAP     _IOW('W', 67, struct wsdisplay_cmap)
  304 
  305 /* Video control.  Not applicable to all display types. */
  306 #define WSDISPLAYIO_GVIDEO      _IOR('W', 68, u_int)
  307 #define WSDISPLAYIO_SVIDEO      _IOW('W', 69, u_int)
  308 #define WSDISPLAYIO_VIDEO_OFF   0       /* video off */
  309 #define WSDISPLAYIO_VIDEO_ON    1       /* video on */
  310 
  311 /* Cursor control.  Not applicable to all display types. */
  312 struct wsdisplay_curpos {                       /* cursor "position" */
  313         u_int x, y;
  314 };
  315 
  316 struct wsdisplay_cursor {
  317         u_int   which;                          /* values to get/set */
  318 #define WSDISPLAY_CURSOR_DOCUR          0x01    /* get/set enable */
  319 #define WSDISPLAY_CURSOR_DOPOS          0x02    /* get/set pos */
  320 #define WSDISPLAY_CURSOR_DOHOT          0x04    /* get/set hot spot */
  321 #define WSDISPLAY_CURSOR_DOCMAP         0x08    /* get/set cmap */
  322 #define WSDISPLAY_CURSOR_DOSHAPE        0x10    /* get/set img/mask */
  323 #define WSDISPLAY_CURSOR_DOALL          0x1f    /* all of the above */
  324         u_int   enable;                         /* enable/disable */
  325         struct wsdisplay_curpos pos;            /* position */
  326         struct wsdisplay_curpos hot;            /* hot spot */
  327         struct wsdisplay_cmap cmap;             /* color map info */
  328         struct wsdisplay_curpos size;           /* bit map size */
  329         u_char *image;                          /* image data */
  330         u_char *mask;                           /* mask data */
  331 };
  332 
  333 /* Cursor control: get and set position */
  334 #define WSDISPLAYIO_GCURPOS     _IOR('W', 70, struct wsdisplay_curpos)
  335 #define WSDISPLAYIO_SCURPOS     _IOW('W', 71, struct wsdisplay_curpos)
  336 
  337 /* Cursor control: get maximum size */
  338 #define WSDISPLAYIO_GCURMAX     _IOR('W', 72, struct wsdisplay_curpos)
  339 
  340 /* Cursor control: get/set cursor attributes/shape */
  341 #define WSDISPLAYIO_GCURSOR     _IOWR('W', 73, struct wsdisplay_cursor)
  342 #define WSDISPLAYIO_SCURSOR     _IOW('W', 74, struct wsdisplay_cursor)
  343 
  344 /* Display mode: Emulation (text) vs. Mapped (graphics) mode */
  345 #define WSDISPLAYIO_GMODE       _IOR('W', 75, u_int)
  346 #define WSDISPLAYIO_SMODE       _IOW('W', 76, u_int)
  347 #define WSDISPLAYIO_MODE_EMUL   0       /* emulation (text) mode */
  348 #define WSDISPLAYIO_MODE_MAPPED 1       /* mapped (graphics) mode */
  349 
  350 
  351 /*
  352  * XXX WARNING
  353  * XXX The following wsdisplay definitions are very preliminary and are likely
  354  * XXX to be changed without care about backwards compatibility!
  355  */
  356 struct wsdisplay_font {
  357         const char *name;
  358         int firstchar, numchars;
  359         int encoding;
  360 #define WSDISPLAY_FONTENC_ISO 0
  361 #define WSDISPLAY_FONTENC_IBM 1
  362 #define WSDISPLAY_FONTENC_PCVT 2
  363 #define WSDISPLAY_FONTENC_ISO7 3 /* greek */
  364 #define WSDISPLAY_FONTENC_ISO2 4 /* east european */
  365         u_int fontwidth, fontheight, stride;
  366 #define WSDISPLAY_MAXFONTSZ     (512*1024)
  367         int bitorder, byteorder;
  368 #define WSDISPLAY_FONTORDER_KNOWN 0     /* i.e, no need to convert */
  369 #define WSDISPLAY_FONTORDER_L2R 1
  370 #define WSDISPLAY_FONTORDER_R2L 2
  371         void *data;
  372 };
  373 #define WSDISPLAYIO_LDFONT      _IOW('W', 77, struct wsdisplay_font)
  374 
  375 struct wsdisplay_addscreendata {
  376         int idx; /* screen index */
  377         char *screentype;
  378         char *emul;
  379 };
  380 #define WSDISPLAYIO_ADDSCREEN   _IOW('W', 78, struct wsdisplay_addscreendata)
  381 
  382 struct wsdisplay_delscreendata {
  383         int idx; /* screen index */
  384         int flags;
  385 #define WSDISPLAY_DELSCR_FORCE 1
  386 };
  387 #define WSDISPLAYIO_DELSCREEN   _IOW('W', 79, struct wsdisplay_delscreendata)
  388 
  389 struct wsdisplay_usefontdata {
  390         char *name;
  391 };
  392 #define WSDISPLAYIO_SFONT       _IOW('W', 80, struct wsdisplay_usefontdata)
  393 
  394 /* Obsolete, replaced by WSMUXIO_{ADD,REMOVE}_DEVICE */
  395 struct wsdisplay_kbddata {
  396         int op;
  397 #define _O_WSDISPLAY_KBD_ADD 0
  398 #define _O_WSDISPLAY_KBD_DEL 1
  399         int idx;
  400 };
  401 #define _O_WSDISPLAYIO_SETKEYBOARD      _IOWR('W', 81, struct wsdisplay_kbddata)
  402 
  403 /* Misc control.  Not applicable to all display types. */
  404 struct wsdisplay_param {
  405         int param;
  406 #define WSDISPLAYIO_PARAM_BACKLIGHT     1
  407 #define WSDISPLAYIO_PARAM_BRIGHTNESS    2
  408 #define WSDISPLAYIO_PARAM_CONTRAST      3
  409         int min, max, curval;
  410         int reserved[4];
  411 };
  412 #define WSDISPLAYIO_GETPARAM    _IOWR('W', 82, struct wsdisplay_param)
  413 #define WSDISPLAYIO_SETPARAM    _IOWR('W', 83, struct wsdisplay_param)
  414 
  415 #define WSDISPLAYIO_GETACTIVESCREEN     _IOR('W', 84, int)
  416 
  417 /* Character functions */
  418 struct wsdisplay_char {
  419         int row, col;
  420         uint16_t letter;
  421         uint8_t background, foreground;
  422         char flags;
  423 #define WSDISPLAY_CHAR_BRIGHT 1
  424 #define WSDISPLAY_CHAR_BLINK  2
  425 };
  426 #define WSDISPLAYIO_GETWSCHAR   _IOWR('W', 85, struct wsdisplay_char)
  427 #define WSDISPLAYIO_PUTWSCHAR   _IOWR('W', 86, struct wsdisplay_char)
  428 
  429 /* Manipulate the scrolling values (how many lines to scroll) */
  430 
  431 struct wsdisplay_scroll_data {
  432         u_int           which;
  433 #define WSDISPLAY_SCROLL_DOFASTLINES    0x01
  434 #define WSDISPLAY_SCROLL_DOSLOWLINES    0x02
  435 #define WSDISPLAY_SCROLL_DOALL          0x03
  436         u_int           fastlines;
  437         u_int           slowlines;
  438 };
  439 
  440 #define WSDISPLAYIO_DGSCROLL    _IOR('W', 87, struct wsdisplay_scroll_data)
  441 #define WSDISPLAYIO_DSSCROLL    _IOW('W', 88, struct wsdisplay_scroll_data)
  442 
  443 /* XXX NOT YET DEFINED */
  444 /* Mapping information retrieval. */
  445 
  446 
  447 /*
  448  * Mux ioctls (96 - 127)
  449  */
  450 
  451 #define WSMUXIO_INJECTEVENT     _IOW('W', 96, struct wscons_event)
  452 #define WSMUX_INJECTEVENT       WSMUXIO_INJECTEVENT /* XXX compat */
  453 
  454 struct wsmux_device {
  455         int type;
  456 #define WSMUX_MOUSE     1
  457 #define WSMUX_KBD       2
  458 #define WSMUX_MUX       3
  459         int idx;
  460 };
  461 #define WSMUXIO_ADD_DEVICE      _IOW('W', 97, struct wsmux_device)
  462 #define WSMUX_ADD_DEVICE        WSMUXIO_ADD_DEVICE /* XXX compat */
  463 #define WSMUXIO_REMOVE_DEVICE   _IOW('W', 98, struct wsmux_device)
  464 #define WSMUX_REMOVE_DEVICE     WSMUXIO_REMOVE_DEVICE /* XXX compat */
  465 
  466 #define WSMUX_MAXDEV 32
  467 struct wsmux_device_list {
  468         int ndevices;
  469         struct wsmux_device devices[WSMUX_MAXDEV];
  470 };
  471 #define WSMUXIO_LIST_DEVICES    _IOWR('W', 99, struct wsmux_device_list)
  472 #define WSMUX_LIST_DEVICES      WSMUXIO_LIST_DEVICES /* XXX compat */
  473 
  474 #endif /* _DEV_WSCONS_WSCONSIO_H_ */

Cache object: 98387155fac11f40121686d8fb1d9fd0


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.