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

1994/0503/pc/devvga.c (diff list | history)

1994/0422/sys/src/9/pc/devvga.c:79,841994/0503/sys/src/9/pc/devvga.c:79,85 (short | long | prev | next)
1992/1119    
{ 
	char	*name; 
1993/1116    
	void	(*setpage)(int);	/* routine to page though display memory */ 
1994/0503    
	void	(*mvcursor)(Point);	/* routine to move hardware cursor */ 
1992/1119    
}; 
 
enum 
1994/0422/sys/src/9/pc/devvga.c:95,1131994/0503/sys/src/9/pc/devvga.c:96,117
1993/1116    
static void	nopage(int), tsengpage(int), tridentpage(int), parapage(int); 
1994/0311    
static void	atipage(int), cirruspage(int), s3page(int); 
1993/1116    
 
1994/0503    
static void	nomvcursor(Point); 
 
1993/0106    
Vgacard vgachips[] = 
1992/1119    
{ 
1993/0106    
[Ati]		{ "ati", atipage, }, 
1992/1124    
[Pvga1a]	{ "pvga1a", parapage, }, 
1992/1216    
[Trident]	{ "trident", tridentpage, }, 
1992/1119    
[Tseng]		{ "tseng", tsengpage, }, 
1993/0915    
[Cirrus]	{ "cirrus", cirruspage, }, 
1994/0311    
[S3]		{ "s3", s3page, }, 
1992/1119    
[Generic]	{ "generic", nopage, }, 
1994/0503    
[Ati]		{ "ati", atipage, nomvcursor, }, 
[Pvga1a]	{ "pvga1a", parapage, nomvcursor, }, 
[Trident]	{ "trident", tridentpage, nomvcursor, }, 
[Tseng]		{ "tseng", tsengpage, nomvcursor, }, 
[Cirrus]	{ "cirrus", cirruspage, nomvcursor, }, 
[S3]		{ "s3", s3page, nomvcursor, }, 
[Generic]	{ "generic", nopage, nomvcursor, }, 
1992/1119    
		{ 0, 0, }, 
}; 
 
Vgacard	*vgacard;	/* current vga card */ 
1994/0503    
static int hwcursor; 
1992/1119    
 
1994/0415    
/* 
 *  work areas for bitblting screen characters, scrolling, and cursor redraw 
1994/0422/sys/src/9/pc/devvga.c:174,1801994/0503/sys/src/9/pc/devvga.c:178,185
1992/1119    
	Qvgatype=	2, 
	Qvgaport=	3, 
1993/1116    
	Qvgaportw=	4, 
	Nvga=		4, 
1994/0503    
	Qvgactl=	5, 
	Nvga=		5, 
1992/1119    
}; 
1992/0527    
Dirtab vgadir[]={ 
	"vgasize",	{Qvgasize},	0,		0666, 
1994/0422/sys/src/9/pc/devvga.c:181,1861994/0503/sys/src/9/pc/devvga.c:186,192
1992/1119    
	"vgatype",	{Qvgatype},	0,		0666, 
1992/0528    
	"vgaport",	{Qvgaport},	0,		0666, 
1993/1116    
	"vgaportw",	{Qvgaportw},	0,		0666, 
1994/0503    
	"vgactl",	{Qvgactl},	0,		0666, 
1992/0527    
}; 
 
void 
1994/0422/sys/src/9/pc/devvga.c:295,3001994/0503/sys/src/9/pc/devvga.c:301,314
1992/1119    
				return n; 
			} 
		error(Ebadarg); 
1994/0503    
	case Qvgactl: 
		if(offset != 0 || n >= sizeof(cbuf)) 
			error(Ebadarg); 
		memmove(cbuf, buf, n); 
		cbuf[n] = 0; 
		if(strncmp(cbuf, "hwcursor", 8) == 0) 
			hwcursor = 1; 
		break; 
1992/0527    
	case Qvgasize: 
1992/1119    
		if(offset != 0 || n >= sizeof(cbuf)) 
1992/0528    
			error(Ebadarg); 
1994/0422/sys/src/9/pc/devvga.c:675,6811994/0503/sys/src/9/pc/devvga.c:689,695
1993/1116    
	if(!rectclip(&r, gscreen.r) || tl<=0) 
		return; 
1994/0412    
 
	if(dolock) 
1994/0503    
	if(dolock && hwcursor == 0) 
1994/0412    
		cursorlock(r); 
1994/0415    
	lock(&loadlock); 
1994/0412    
 
1994/0422/sys/src/9/pc/devvga.c:758,7641994/0503/sys/src/9/pc/devvga.c:772,778
1993/1116    
		} 
1994/0412    
 
1994/0415    
	unlock(&loadlock); 
1994/0412    
	if(dolock) 
1994/0503    
	if(dolock && hwcursor == 0) 
1994/0412    
		cursorunlock(); 
1993/1116    
} 
 
1994/0422/sys/src/9/pc/devvga.c:831,8371994/0503/sys/src/9/pc/devvga.c:845,851
1994/0412    
	if(!rectclip(&r, gscreen.r) || tl<=0) 
1993/1116    
		return; 
 
1994/0412    
	if(dolock) 
1994/0503    
	if(dolock && hwcursor == 0) 
1994/0412    
		cursorlock(r); 
1994/0415    
	lock(&loadlock); 
1993/1116    
 
1994/0422/sys/src/9/pc/devvga.c:914,9201994/0503/sys/src/9/pc/devvga.c:928,934
1994/0412    
		} 
 
1994/0415    
	unlock(&loadlock); 
1994/0412    
	if(dolock) 
1994/0503    
	if(dolock && hwcursor == 0) 
1994/0412    
		cursorunlock(); 
1993/1116    
} 
 
1994/0422/sys/src/9/pc/devvga.c:1064,10691994/0503/sys/src/9/pc/devvga.c:1078,1092
1992/1119    
} 
 
1994/0415    
/* 
1994/0503    
 *  hardware cursor routines 
 */ 
static void 
nomvcursor(Point p) 
{ 
	USED(p.x); 
} 
 
/* 
1994/0415    
 *  character mode console 
 */ 
1992/1119    
static void 
1994/0422/sys/src/9/pc/devvga.c:1321,13271994/0503/sys/src/9/pc/devvga.c:1344,1352
1994/0414    
	if(dolock) 
		lock(&cursor); 
 
	if(cursor.visible++ == 0){ 
1994/0503    
	if(hwcursor) 
		(*vgacard->mvcursor)(mousexy()); 
	else if(cursor.visible++ == 0){ 
1994/0414    
		cursor.r.min = mousexy(); 
		cursor.r.max = add(cursor.r.min, Pt(16, 16)); 
		cursor.r = raddp(cursor.r, cursor.offset); 
1994/0422/sys/src/9/pc/devvga.c:1374,13791994/0503/sys/src/9/pc/devvga.c:1399,1406
1994/0414    
void 
cursoroff(int dolock) 
{ 
1994/0503    
	if(hwcursor) 
		return; 
1994/0414    
	if(cursor.disable) 
		return; 
	if(dolock) 


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