home *** CD-ROM | disk | FTP | other *** search
/ Jason Aller Floppy Collection / 202.img / SCO386N2.TD0 / usr / include / sys / vtkd.h < prev    next >
Encoding:
C/C++ Source or Header  |  1988-06-21  |  4.7 KB  |  127 lines

  1. /*
  2.  *    @(#) vtkd.h 1.3 88/06/21 
  3.  *
  4.  *    Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987, 1988.
  5.  *    Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987, 1988.
  6.  *    This Module contains Proprietary Information of
  7.  *    The Santa Cruz Operation, Microsoft Corporation
  8.  *    and AT&T, and should be treated as Confidential.
  9.  */
  10.  
  11. #define MONO_BASE    0xb0000    /* location of mono display memory */
  12. #define COLOR_BASE    0xb8000    /* location of color display memory */
  13. #define EGA_BASE    0xa0000    /* location of ega display memory */
  14.  
  15. /* keyboard types */
  16. #define    KB_84        1    /* 84 key keyboard */
  17. #define KB_101        2    /* 101/102 key keyboard */
  18. #define KB_OTHER    3    /* other (unknown) keyboard */
  19.  
  20. /*
  21.  * ioctls supported by the VT
  22.  */
  23. #define VTIOC        ('v' << 8)
  24. #define VT_OPENQRY    (VTIOC | 1)    /* inquires if this vt already open */
  25. #define VT_SETMODE    (VTIOC | 2)    /* set vt into auto or process mode */
  26. #define VT_GETMODE    (VTIOC | 3)    /* returns mode vt is currently in  */
  27. #define VT_RELDISP    (VTIOC | 4)    /* tells vt when display released   */
  28. #define VT_ACTIVATE    (VTIOC | 5)    /* activates specified vt         */
  29.  
  30. /*
  31.  * modes of VT_RELDISP
  32.  */
  33. #define VT_FALSE    0    /* user will not release display    */
  34. #define VT_TRUE        1    /* user releases display        */
  35. #define VT_ACKACQ    2    /* user acknowleges the acquire signal    */
  36.  
  37. struct vt_mode {
  38.     char    mode;    /* mode to set vt into                */
  39.     char    waitv;    /* if != 0, vt hangs on writes when not active    */
  40.     short    relsig;    /* signal to use for release request        */
  41.     short    acqsig;    /* signal to use for release request        */
  42.     short    frsig;    /* signal to use for forced release        */
  43. };
  44.  
  45. #define VT_AUTO        0    /* this vts switching is automatic        */
  46. #define VT_PROCESS    1    /* this vts switching controlled by process */
  47.  
  48. #define    KIOC        ('K' << 8)
  49. #define    KDDISPTYPE    (KIOC | 1)    /* return display type to user        */
  50. #define KDMAPDISP    (KIOC | 2)    /* map display into user space      */
  51. #define KDUNMAPDISP    (KIOC | 3)    /* unmap display from user space    */
  52. #define KDGKBMODE    (KIOC | 6)    /* get keyboard translation mode    */
  53. #define KDSKBMODE    (KIOC | 7)    /* set keyboard translation mode    */
  54. #define KDMKTONE    (KIOC | 8)    /* vpix error sound generation      */
  55. #define KDGETMODE    (KIOC | 9)    /* get text/graphics mode          */
  56. #define KDSETMODE    (KIOC | 10)    /* set text/graphics mode        */
  57. #define KDADDIO        (KIOC | 11)    /* add I/O address to list        */
  58. #define KDDELIO        (KIOC | 12)    /* delete I/O address from list     */
  59. #define KIOCDOSMODE     (KIOC | 16)     /* set DOSMODE                */
  60. #define KIOCNONDOSMODE  (KIOC | 17)     /* clear DOSMODE            */
  61. #define KDDISPINFO    (KIOC | 18)    /* get display start and size        */
  62. #define KDGKBSTATE    (KIOC | 19)    /* get state of keyboard shift keys */
  63.  
  64. #define KDENABIO    (KIOC | 60)     /* enable IOPL                 */
  65. #define KDDISABIO    (KIOC | 61)    /* disable IOPL                */
  66. #define KIOCINFO    (KIOC | 62)    /* tell user what device we are     */
  67. #define KIOCSOUND    (KIOC | 63)    /* start sound generation        */ 
  68. #define KDGKBTYPE    (KIOC | 64)    /* get keyboard type            */
  69. #define KDGETLED    (KIOC | 65)    /* get current led states        */
  70. #define KDSETLED    (KIOC | 66)    /* set current led states        */
  71.  
  72. /*
  73.  * return values for kddisptype
  74.  */
  75. #define KD_MONO        01    /* monochrome display adapter */
  76. #define KD_HERCULES    02    /* Hercules monochrome graphics adapter */
  77. #define KD_CGA        03    /* Color    graphics adapter    */
  78. #define KD_EGA        04    /* Enhanced graphics adapter    */
  79. #define KD_VGA        05    /* Video    graphics adapter    */
  80.  
  81. /*
  82.  * arguments to KDSETMODE/KDGETMODE
  83.  */
  84. #define KD_TEXT        0    /* ansi x3.64 emulation mode            */
  85. #define KD_TEXT0    0    /* more of the same                */
  86. #define KD_GRAPHICS    1    /* graphics mode                */
  87. #define KD_TEXT1    2    /* enter Xenix textmode from DOS textmode   */
  88.  
  89. /*
  90.  * arguments to KDSKBMODE
  91.  */
  92. #define K_RAW        0x00    /* keyboard send raw up/down scan code      */
  93. #define K_XLATE        0x01    /* keyboard translates scan codes to ascii  */
  94.  
  95. struct kdytinfo {    /* device specific info for kd vt driver */
  96.     unsigned char        kbmode;        /* keyboard mode */
  97.     unsigned char        dmode;        /* display mode */
  98.     unsigned char        flags;        /* flags */
  99. /*    struct ansistate    as;        /* ansi terminal state */
  100. };
  101.  
  102. struct kbentry {
  103.     unsigned char    kb_table;    /* which table to use */
  104.     unsigned char    kb_index;    /* which entry in table */
  105.     unsigned char    kb_value;    /* value to get/set in table */
  106. };
  107.  
  108. #define MKDIOADDR    64    /* max no. of I/O addresses supported */
  109.  
  110. struct kd_dispinfo {
  111.     char    *vaddr;        /* display memory address */
  112.     paddr_t    physaddr;    /* display memory address */
  113.     ulong_t    size;        /* display memory size */
  114. };
  115.  
  116. struct kd_disparam {
  117.     long    type;         /* display type */
  118.     char    *addr;        /* display memory address */
  119. };
  120.  
  121. struct kd_memloc {
  122.     char    *vaddr;        /* virtual address to map to */
  123.     char    *physaddr;    /* physical address to map to */
  124.     long    length;        /* size in bytes to map */
  125.     long    ioflg;        /* enable I/O addresses if non-zero */
  126. };
  127.