home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.0 / NeXTSTEP3.0.iso / NextDeveloper / Headers / bsd / dev / m68k / video.h < prev   
Encoding:
C/C++ Source or Header  |  1992-07-30  |  3.9 KB  |  137 lines

  1. /*
  2.  *    Copyright (C) 1989, NeXT, Inc.
  3.  *
  4.  * HISTORY
  5.  *
  6.  * 01-Mar-90  Ted Cohn (tcohn) at NeXT
  7.  *    Added DKIOCREGISTER ioctl to register the Me!1Sxel with ev driver.
  8.  *
  9.  * 28-Feb-90  John Seamons (jks) at NeXT
  10.  *    Added STOP_ANIM flag.
  11.  *
  12.  * 12-Aug-87  John Seamons (jks) at NeXT
  13.  *    Created.
  14.  */
  15.  
  16. #ifndef    _M68K_DEV_VIDEO_PRIV_
  17. #define    _M68K_DEV_VIDEO_PRIV_
  18.  
  19. #import <sys/ioctl.h>
  20.  
  21. /* 2 bit display parameters */
  22. #define PIXPERXFER    16        /* pixel alignment of a transfer */
  23. #define PPXMASK        ((unsigned int)0x0000000f)
  24. #define LONGSIZE    32        /* pixel width of saved rect */
  25.  
  26. #define    NPPB        4        /* Pixels per byte */
  27. #define    VIDEO_W        1120        /* Visible pixels per scanline */
  28. #define    VIDEO_MW    ((dma_chip == 313)? 1152 : 1120)    /* Actual pixels per scanline */
  29. #define    VIDEO_H        832        /* Visible scanlines */
  30. #define    VIDEO_MH    ((dma_chip == 313)? 910 : 936)
  31. #define    VIDEO_NBPL    (VIDEO_MW >> 2)
  32. #define    WHITE        0x00000000
  33. #define    LT_GRAY        0x55555555
  34. #define    DK_GRAY        0xaaaaaaaa
  35. #define    BLACK        0xffffffff
  36. #define    RETRACE_START    0x00
  37. #define    RETRACE_LIMIT    0xea        /* limit reg value to int @ retrace */
  38. #define    RETRACE_MAX    0xfc
  39. #define    CONTINUE_ANIM    0x12345678    /* continue animation (if any) */
  40. #define    STOP_ANIM    0x87654321
  41.  
  42. /*
  43.  *    Size of video memory area to be mapped.  The lower limit is the
  44.  *    minimum size that can be transparently translated, which is 16 Mbytes
  45.  *    on the 68030 and 68040.
  46.  */
  47. #define VID_MAPPED_SIZE        0x01000000
  48.  
  49. /* 16 bit color display parameters */
  50. #define C16_VIDEO_1120x832_W    1120
  51. #define C16_VIDEO_1120x832_MW    ((dma_chip == 313)? 1152 : 1120)
  52. #define C16_VIDEO_1120x832_H    832
  53. #define C16_VIDEO_1120x832_MH    ((dma_chip == 313)? 910 : 936)
  54. #define C16_VIDEO_832x624_W    832
  55. #define C16_VIDEO_832x624_MW    832
  56. #define C16_VIDEO_832x624_H    624
  57. #define C16_VIDEO_832x624_MH    1260
  58. #define C16_VIDEO_NBPP        2    /* 2 bytes/pixel */
  59. #define C16_VID_SIZE        0x00200000     /* 2 Mbytes of VRAM */
  60. #define C16_VID_MAPPED_SIZE    0x01000000
  61.  
  62. #define C16_NPPW        2    /* 2 pixels per word. */
  63. #define    C16_WHITE        0xFFF0FFF0
  64. #define    C16_LT_GRAY        0xAAA0AAA0
  65. #define    C16_DK_GRAY        0x55505550
  66. #define    C16_BLACK        0
  67.  
  68. /* Bits for the write-only P_C16_CMD_REG register (Warp9C only). */
  69. #define C16_CMD_CLRINTR        1
  70. #define C16_CMD_INTRENA        2
  71. #define C16_CMD_UNBLANK        4
  72. #define C16_CMD_FASTWRITE    8
  73. #define C16_CMD_DFLT        C16_CMD_UNBLANK
  74.  
  75. #define    DKIOCGADDR    _IOWR('v', 0, int)    /* get address of video mem */
  76. #define    DKIOCSMWF    _IOWR('v', 1, struct mwf) /* set mwf bounds */
  77. #define    DKIOCBRIGHT    _IOWR('v', 2, int)    /* get/set brightness */
  78. #defi!1TKIOCDISABLE    _IO('v', 3)        /* disable translation */
  79. #define    DKIOCGNVRAM    _IOR('v', 4, struct nvram_info) /* get NVRAM */
  80. #define    DKIOCSNVRAM    _IOW('v', 4, struct nvram_info) /* set NVRAM */
  81. #define    DKIOCREGISTER    _IO('v', 5)            /* register screen */
  82. #define    DKIOCGFBINFO    _IO('v', 6) /* Get info on built-in frame buffer */
  83. #define    DKIOCGALARM    _IOR('v', 7, struct alarm)    /* get RTC alarm */
  84. #define    DKIOCSALARM    _IOW('v', 7, struct alarm)    /* set RTC alarm */
  85.  
  86.  
  87. #ifndef    ASSEMBLER
  88.  
  89. struct alarm {
  90.     int    alarm_enabled;
  91.     int    alarm_time;
  92. };
  93.  
  94. #if !defined(__Bounds__) && !defined(BINTREE_H)
  95. #define __Bounds__
  96. typedef struct { short minx, maxx, miny, maxy; } Bounds;
  97. #endif
  98. #if !defined(__Point__) && !defined(BINTREE_H)
  99. #define __Point__
  100. typedef struct { short x, y; } Point;
  101. #endif
  102.  
  103. struct vidRGBCursor {
  104.     unsigned short image[4][256];
  105.     unsigned short save[256];
  106. };
  107.  
  108. typedef struct {
  109.     int frame;
  110.     int cursorSema;
  111.     char cursorShow;
  112.     char cursorObscured;
  113.     char shieldFlag;
  114.     char shielded;
  115.     Bounds saveRect;
  116.     Bounds shieldRect;
  117.     Point cursorLoc;
  118.     Bounds cursorRect;
  119.     Bounds oldCursorRect;
  120.     Bounds screenBounds;
  121.     Point hotSpot[4];
  122.     union {
  123.     struct {
  124.         unsigned int image[4][16];
  125.         unsigned int mask[4][16];
  126.         unsigned int save[16];
  127.     } bw;
  128.     struct vidRGBCursor rgb;
  129.     } cursor;
  130. } vidShmemStruct;
  131.  
  132. #define VIDSETSEMA() if (msp->cursorSema) return 1; else msp->cursorSema = 1
  133. #define VIDCLEARSEMA() msp->cursorSema = 0
  134. #endif    ASSEMBLER
  135.  
  136. #endif    _M68K_DEV_VIDEO_PRIV_
  137.