home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.2 (Developer) / NS_dev_3.2.iso / NextDeveloper / Headers / bsd / dev / m68k / video.h < prev   
Text File  |  1993-10-19  |  4KB  |  152 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 MegaPixel 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. #define    DKIOCDISABLE    _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 mp12Cursor {
  104.     unsigned int image[4][16];
  105.     unsigned int mask[4][16];
  106.     unsigned int save[16];
  107. };
  108.  
  109. struct mp18Cursor {
  110.     unsigned char image[4][256];
  111.     unsigned char mask[4][256];
  112.     unsigned char save[256];
  113. };
  114.  
  115. struct mp34Cursor {
  116.     unsigned short image[4][256];
  117.     unsigned short save[256];
  118. };
  119.  
  120. struct mp38Cursor {
  121.     unsigned int image[4][256];
  122.     unsigned int save[256];
  123. };
  124.  
  125. typedef struct {
  126.     int frame;
  127.     int cursorSema;
  128.     char cursorShow;
  129.     char cursorObscured;
  130.     char shieldFlag;
  131.     char shielded;
  132.     Bounds saveRect;
  133.     Bounds shieldRect;
  134.     Point cursorLoc;
  135.     Bounds cursorRect;
  136.     Bounds oldCursorRect;
  137.     Bounds screenBounds;
  138.     Point hotSpot[4];
  139.     union {
  140.     struct mp12Cursor bw;
  141.     struct mp18Cursor bw8;
  142.     struct mp34Cursor rgb;
  143.     struct mp38Cursor rgb24;
  144.     } cursor;
  145. } vidShmemStruct;
  146.  
  147. #define VIDSETSEMA() if (msp->cursorSema) return 1; else msp->cursorSema = 1
  148. #define VIDCLEARSEMA() msp->cursorSema = 0
  149. #endif    ASSEMBLER
  150.  
  151. #endif    _M68K_DEV_VIDEO_PRIV_
  152.