ftp.nice.ch/pub/next/developer/languages/c/gcc.2.7.2.2.I.b.tar.gz#/lib/gcc-lib/i386-next-nextstep3/2.7.2.2.f.2/include/bsd/dev/m68k/video.h

This is video.h in view mode; [Download] [Up]

/*
 *	Copyright (C) 1989, NeXT, Inc.
 *
 * HISTORY
 *
 * 01-Mar-90  Ted Cohn (tcohn) at NeXT
 *	Added DKIOCREGISTER ioctl to register the MegaPixel with ev driver.
 *
 * 28-Feb-90  John Seamons (jks) at NeXT
 *	Added STOP_ANIM flag.
 *
 * 12-Aug-87  John Seamons (jks) at NeXT
 *	Created.
 */

#ifndef	_M68K_DEV_VIDEO_PRIV_
#define	_M68K_DEV_VIDEO_PRIV_

#import <sys/ioctl.h>

/* 2 bit display parameters */
#define PIXPERXFER	16		/* pixel alignment of a transfer */
#define PPXMASK		((unsigned int)0x0000000f)
#define LONGSIZE	32		/* pixel width of saved rect */

#define	NPPB		4		/* Pixels per byte */
#define	VIDEO_W		1120		/* Visible pixels per scanline */
#define	VIDEO_MW	((dma_chip == 313)? 1152 : 1120)	/* Actual pixels per scanline */
#define	VIDEO_H		832		/* Visible scanlines */
#define	VIDEO_MH	((dma_chip == 313)? 910 : 936)
#define	VIDEO_NBPL	(VIDEO_MW >> 2)
#define	WHITE		0x00000000
#define	LT_GRAY		0x55555555
#define	DK_GRAY		0xaaaaaaaa
#define	BLACK		0xffffffff
#define	RETRACE_START	0x00
#define	RETRACE_LIMIT	0xea		/* limit reg value to int @ retrace */
#define	RETRACE_MAX	0xfc
#define	CONTINUE_ANIM	0x12345678	/* continue animation (if any) */
#define	STOP_ANIM	0x87654321

/*
 *	Size of video memory area to be mapped.  The lower limit is the
 *	minimum size that can be transparently translated, which is 16 Mbytes
 *	on the 68030 and 68040.
 */
#define VID_MAPPED_SIZE		0x01000000

/* 16 bit color display parameters */
#define C16_VIDEO_1120x832_W	1120
#define C16_VIDEO_1120x832_MW	((dma_chip == 313)? 1152 : 1120)
#define C16_VIDEO_1120x832_H	832
#define C16_VIDEO_1120x832_MH	((dma_chip == 313)? 910 : 936)
#define C16_VIDEO_832x624_W	832
#define C16_VIDEO_832x624_MW	832
#define C16_VIDEO_832x624_H	624
#define C16_VIDEO_832x624_MH	1260
#define C16_VIDEO_NBPP		2	/* 2 bytes/pixel */
#define C16_VID_SIZE		0x00200000	 /* 2 Mbytes of VRAM */
#define C16_VID_MAPPED_SIZE	0x01000000

#define C16_NPPW		2	/* 2 pixels per word. */
#define	C16_WHITE		0xFFF0FFF0
#define	C16_LT_GRAY		0xAAA0AAA0
#define	C16_DK_GRAY		0x55505550
#define	C16_BLACK		0

/* Bits for the write-only P_C16_CMD_REG register (Warp9C only). */
#define C16_CMD_CLRINTR		1
#define C16_CMD_INTRENA		2
#define C16_CMD_UNBLANK		4
#define C16_CMD_FASTWRITE	8
#define C16_CMD_DFLT		C16_CMD_UNBLANK

#define	DKIOCGADDR	_IOWR('v', 0, int)	/* get address of video mem */
#define	DKIOCSMWF	_IOWR('v', 1, struct mwf) /* set mwf bounds */
#define	DKIOCBRIGHT	_IOWR('v', 2, int)	/* get/set brightness */
#define	DKIOCDISABLE	_IO('v', 3)		/* disable translation */
#define	DKIOCGNVRAM	_IOR('v', 4, struct nvram_info) /* get NVRAM */
#define	DKIOCSNVRAM	_IOW('v', 4, struct nvram_info) /* set NVRAM */
#define	DKIOCREGISTER	_IO('v', 5)			/* register screen */
#define	DKIOCGFBINFO	_IO('v', 6) /* Get info on built-in frame buffer */
#define	DKIOCGALARM	_IOR('v', 7, struct alarm)	/* get RTC alarm */
#define	DKIOCSALARM	_IOW('v', 7, struct alarm)	/* set RTC alarm */


#ifndef	ASSEMBLER

struct alarm {
	int	alarm_enabled;
	int	alarm_time;
};

#if !defined(__Bounds__) && !defined(BINTREE_H)
#define __Bounds__
typedef struct { short minx, maxx, miny, maxy; } Bounds;
#endif
#if !defined(__Point__) && !defined(BINTREE_H)
#define __Point__
typedef struct { short x, y; } Point;
#endif

struct mp12Cursor {
    unsigned int image[4][16];
    unsigned int mask[4][16];
    unsigned int save[16];
};

struct mp18Cursor {
    unsigned char image[4][256];
    unsigned char mask[4][256];
    unsigned char save[256];
};

struct mp34Cursor {
    unsigned short image[4][256];
    unsigned short save[256];
};

struct mp38Cursor {
    unsigned int image[4][256];
    unsigned int save[256];
};

typedef struct {
    int frame;
    int cursorSema;
    char cursorShow;
    char cursorObscured;
    char shieldFlag;
    char shielded;
    Bounds saveRect;
    Bounds shieldRect;
    Point cursorLoc;
    Bounds cursorRect;
    Bounds oldCursorRect;
    Bounds screenBounds;
    Point hotSpot[4];
    union {
	struct mp12Cursor bw;
	struct mp18Cursor bw8;
	struct mp34Cursor rgb;
	struct mp38Cursor rgb24;
    } cursor;
} vidShmemStruct;

#define VIDSETSEMA() if (msp->cursorSema) return 1; else msp->cursorSema = 1
#define VIDCLEARSEMA() msp->cursorSema = 0
#endif

#endif

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.