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

2000/0522/alphapc/screen.h (diff list | history)

alphapc/screen.h on 1999/0415
1999/0415    
typedef struct Cursor Cursor; 
typedef struct Cursorinfo Cursorinfo; 
struct Cursorinfo { 
	Cursor; 
	Lock; 
}; 
 
/* devmouse.c */ 
extern void mousetrack(int, int, int); 
extern Point mousexy(void); 
 
extern void mouseaccelerate(int); 
extern int m3mouseputc(Queue*, int); 
extern int mouseputc(Queue*, int); 
 
extern Cursorinfo cursor; 
extern Cursor arrow; 
 
/* 
 * Generic VGA registers. 
 */ 
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, 
}; 
 
#define vgai(port)		inb(port) 
#define vgao(port, data)	outb(port, data) 
 
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*); 
2000/0401    
	void	(*drawinit)(VGAscr*); 
	int	(*fill)(VGAscr*, Rectangle, ulong); 
 
1999/0415    
}; 
 
struct VGAcur { 
	char*	name; 
 
	void	(*enable)(VGAscr*); 
	void	(*disable)(VGAscr*); 
	void	(*load)(VGAscr*, Cursor*); 
	int	(*move)(VGAscr*, Point); 
2000/0401    
 
	int	doespanning; 
1999/0415    
}; 
 
/* 
 */ 
struct VGAscr { 
	Lock	devlock; 
	VGAdev*	dev; 
 
	VGAcur*	cur; 
	ulong	storage; 
	Cursor; 
 
	int	useflush; 
 
1999/0512    
	ulong	aperture;			/* physical address, kernel */ 
	ulong	pciaddr;			/* physical address, user */ 
1999/0415    
	int	isupamem; 
	int	apsize; 
 
	ulong	io;				/* device specific registers */ 
 
	ulong	colormap[Pcolours][3]; 
2000/0401    
	int	palettedepth; 
1999/0415    
 
2000/0407    
	ulong	*mmio; 
1999/0415    
	Memimage* gscreen; 
	Memdata* gscreendata; 
	Memsubfont* memdefont; 
2000/0401    
 
	int	(*fill)(VGAscr*, Rectangle, ulong); 
	int	(*scroll)(VGAscr*, Rectangle, Rectangle); 
2000/0407    
	void	(*blank)(VGAscr*, int); 
2000/0401    
	ulong	id;	/* internal identifier for driver use */ 
1999/0415    
}; 
2000/0407    
 
1999/0415    
extern VGAscr vgascreen[]; 
 
enum { 
2000/0401    
	Backgnd		= 0,	/* black */ 
1999/0415    
}; 
 
/* mouse.c */ 
extern void mousectl(char*[], int); 
 
/* screen.c */ 
2000/0401    
extern int		hwaccel;	/* use hw acceleration; default on */ 
2000/0407    
extern int		hwblank;	/* use hw blanking; default on */ 
1999/0415    
extern void	flushmemscreen(Rectangle); 
extern int	cursoron(int); 
extern void	cursoroff(int); 
extern void	setcursor(Cursor*); 
2000/0401    
extern int	screensize(int, int, int, ulong); 
1999/0415    
extern int	screenaperture(int, int); 
2000/0401    
extern Rectangle physgscreenr;	/* actual monitor size */ 
2000/0407    
extern void	blankscreen(int); 
1999/0415    
 
2000/0401    
/* devdraw.c */ 
extern void	deletescreenimage(void); 
extern int		drawhasclients(void); 
2000/0522    
extern ulong	blanktime; 
1999/0415    
/* vga.c */ 
extern void	vgascreenwin(VGAscr*); 
2000/0401    
extern void	vgaimageinit(ulong); 
2000/0407    
extern ulong	vgapcilinear(VGAscr*, int*, int*, int, int); 
2000/0401    
 
extern void	drawblankscreen(int); 
2000/0407    
extern void	vgablank(VGAscr*, int); 


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