plan 9 kernel history: overview | file list | diff list

2002/1201/pc/screen.h (diff list | history)

pc/screen.h on 1999/0119
1999/0119    
typedef struct Cursor Cursor; 
1997/1101    
typedef struct Cursorinfo Cursorinfo; 
struct Cursorinfo { 
1994/0414    
	Cursor; 
	Lock; 
}; 
 
1997/1101    
/* devmouse.c */ 
2001/0527    
extern void mousetrack(int, int, int, int); 
1997/1101    
extern Point mousexy(void); 
1997/0327    
 
1999/0225    
extern void mouseaccelerate(int); 
1999/0320    
extern int m3mouseputc(Queue*, int); 
extern int mouseputc(Queue*, int); 
1997/1101    
 
extern Cursorinfo cursor; 
1998/0209    
extern Cursor arrow; 
 
1997/0327    
/* 
1997/1101    
 * Generic VGA registers. 
1997/0327    
 */ 
1997/1101    
enum { 
	MiscW		= 0x03C2,	/* Miscellaneous Output (W) */ 
	MiscR		= 0x03CC,	/* Miscellaneous Output (R) */ 
	Status0		= 0x03C2,	/* Input status 0 (R) */ 
	Status1		= 0x03DA,	/* Input Status 1 (R) */ 
	FeatureR	= 0x03CA,	/* Feature Control (R) */ 
	FeatureW	= 0x03DA,	/* Feature Control (W) */ 
 
	Seqx		= 0x03C4,	/* Sequencer Index, Data at Seqx+1 */ 
	Crtx		= 0x03D4,	/* CRT Controller Index, Data at Crtx+1 */ 
	Grx		= 0x03CE,	/* Graphics Controller Index, Data at Grx+1 */ 
	Attrx		= 0x03C0,	/* Attribute Controller Index and Data */ 
 
	PaddrW		= 0x03C8,	/* Palette Address Register, write */ 
	Pdata		= 0x03C9,	/* Palette Data Register */ 
	Pixmask		= 0x03C6,	/* Pixel Mask Register */ 
	PaddrR		= 0x03C7,	/* Palette Address Register, read */ 
	Pstatus		= 0x03C7,	/* DAC Status (RO) */ 
 
	Pcolours	= 256,		/* Palette */ 
	Pred		= 0, 
	Pgreen		= 1, 
	Pblue		= 2, 
 
	Pblack		= 0x00, 
	Pwhite		= 0xFF, 
1997/0327    
}; 
 
1997/1101    
#define vgai(port)		inb(port) 
#define vgao(port, data)	outb(port, data) 
1997/0327    
 
1997/1101    
extern int vgaxi(long, uchar); 
extern int vgaxo(long, uchar, uchar); 
 
/* 
 */ 
typedef struct VGAdev VGAdev; 
typedef struct VGAcur VGAcur; 
typedef struct VGAscr VGAscr; 
 
struct VGAdev { 
	char*	name; 
 
	void	(*enable)(VGAscr*); 
	void	(*disable)(VGAscr*); 
	void	(*page)(VGAscr*, int); 
	ulong	(*linear)(VGAscr*, int*, int*); 
1999/1005    
	void	(*drawinit)(VGAscr*); 
	int	(*fill)(VGAscr*, Rectangle, ulong); 
2001/1005    
	void	(*ovlctl)(VGAscr*, Chan*, void*, int); 
	int	(*ovlwrite)(VGAscr*, void*, int, vlong); 
2002/0404    
	void (*flush)(VGAscr*, Rectangle); 
1997/1101    
}; 
 
struct VGAcur { 
	char*	name; 
 
	void	(*enable)(VGAscr*); 
	void	(*disable)(VGAscr*); 
	void	(*load)(VGAscr*, Cursor*); 
	int	(*move)(VGAscr*, Point); 
1999/1005    
 
	int	doespanning; 
1997/1101    
}; 
 
/* 
 */ 
struct VGAscr { 
	Lock	devlock; 
	VGAdev*	dev; 
 
	VGAcur*	cur; 
	ulong	storage; 
	Cursor; 
 
	int	useflush; 
 
	ulong	aperture;			/* physical address */ 
	int	isupamem; 
	int	apsize; 
 
1998/0507    
	ulong	io;				/* device specific registers */ 
 
1997/1101    
	ulong	colormap[Pcolours][3]; 
1999/1005    
	int	palettedepth; 
1997/1101    
 
1999/1005    
	ulong	*mmio; 
1997/1101    
	Memimage* gscreen; 
	Memdata* gscreendata; 
	Memsubfont* memdefont; 
1999/1005    
 
	int	(*fill)(VGAscr*, Rectangle, ulong); 
	int	(*scroll)(VGAscr*, Rectangle, Rectangle); 
2000/0326    
	void	(*blank)(VGAscr*, int); 
1999/1005    
	ulong	id;	/* internal identifier for driver use */ 
2002/1201    
	int isblank; 
1997/1101    
}; 
1999/1005    
 
1997/1101    
extern VGAscr vgascreen[]; 
 
enum { 
1999/1005    
	Backgnd		= 0,	/* black */ 
1997/1101    
}; 
1998/0319    
 
/* mouse.c */ 
2001/1120    
extern void mousectl(Cmdbuf*); 
1998/0319    
 
/* screen.c */ 
1999/1006    
extern int		hwaccel;	/* use hw acceleration; default on */ 
2000/0326    
extern int		hwblank;	/* use hw blanking; default on */ 
2001/1015    
extern int		panning;	/* use virtual screen panning; default off */ 
2001/0908    
extern void addvgaseg(char*, ulong, ulong); 
2001/0527    
extern uchar* attachscreen(Rectangle*, ulong*, int*, int*, int*); 
1998/0319    
extern void	flushmemscreen(Rectangle); 
extern int	cursoron(int); 
extern void	cursoroff(int); 
extern void	setcursor(Cursor*); 
1999/1005    
extern int	screensize(int, int, int, ulong); 
1998/0319    
extern int	screenaperture(int, int); 
1999/1005    
extern Rectangle physgscreenr;	/* actual monitor size */ 
2000/0326    
extern void	blankscreen(int); 
1999/1009    
 
/* devdraw.c */ 
1999/1005    
extern void	deletescreenimage(void); 
1999/1009    
extern int		drawhasclients(void); 
2000/0522    
extern ulong	blanktime; 
2001/1015    
extern void	setscreenimageclipr(Rectangle); 
2002/0404    
extern void	drawflush(void); 
2002/1201    
extern int drawidletime(void); 
1998/0319    
 
/* vga.c */ 
extern void	vgascreenwin(VGAscr*); 
1999/1005    
extern void	vgaimageinit(ulong); 
extern ulong	vgapcilinear(VGAscr*, int*, int*, int, int); 
 
extern void	drawblankscreen(int); 
2000/0330    
extern void	vgablank(VGAscr*, int); 


source code copyright © 1990-2005 Lucent Technologies; see license
Plan 9 distribution
comments to russ cox (rsc@swtch.com)