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

1994/1109/pc/devastar.c (diff list | history)

1994/1108/sys/src/9/pc/devastar.c:225,2301994/1109/sys/src/9/pc/devastar.c:225,231 (short | long | prev | next)
1994/1106    
{ 
	QLock; 
 
1994/1109    
	Astar	*a;	/* controller */ 
1994/1107    
	CCB	*ccb;	/* control block */ 
 
1994/1106    
	/* buffers */ 
1994/1108/sys/src/9/pc/devastar.c:242,2501994/1109/sys/src/9/pc/devastar.c:243,252
1994/1106    
	uchar	*oe; 
}; 
 
1994/1107    
Astar *a[Maxcard]; 
1994/1109    
Astar *astar[Maxcard]; 
int nastar; 
1994/1107    
 
int astarsetup(Astar*); 
1994/1109    
static int astarsetup(Astar*); 
1994/1107    
 
1994/1106    
void 
1994/1107    
astarreset(void) 
1994/1108/sys/src/9/pc/devastar.c:254,2631994/1109/sys/src/9/pc/devastar.c:256,265
1994/1106    
	Dirtab *dp; 
 
	for(i = 0; i < Maxcard; i++){ 
1994/1107    
		a = astar[i] = xalloc(sizeof(Astar)); 
1994/1109    
		a = astar[nastar] = xalloc(sizeof(Astar)); 
1994/1107    
		if(isaconfig("serial", i, &a) == 0){ 
			xfree(a); 
			astar[i] = 0; 
1994/1109    
			astar[nastar] = 0; 
1994/1106    
			break; 
		} 
 
1994/1108/sys/src/9/pc/devastar.c:276,2841994/1109/sys/src/9/pc/devastar.c:278,287
1994/1107    
 
		if(astarsetup(a) < 0){ 
			xfree(a); 
			astar[i] = 0; 
1994/1109    
			astar[nastar] = 0; 
1994/1107    
			continue; 
		} 
1994/1109    
		nastar++; 
1994/1107    
	} 
 
1994/1106    
	ndir = 3*nuart; 
1994/1108/sys/src/9/pc/devastar.c:306,3161994/1109/sys/src/9/pc/devastar.c:309,319
1994/1107    
{ 
} 
 
int isaport[] = 
	{ 0x200, 0x208, 0x300, 0x308, 0x600, 0x608, 0x700, 0x708, 0 }; 
1994/1109    
/* isa ports an ax00i can appear at */ 
int isaport[] = { 0x200, 0x208, 0x300, 0x308, 0x600, 0x608, 0x700, 0x708, 0 }; 
1994/1107    
 
int 
isax00i(int port) 
1994/1109    
static int 
astarprobe(int port) 
1994/1107    
{ 
	uchar c, c1; 
 
1994/1108/sys/src/9/pc/devastar.c:323,3291994/1109/sys/src/9/pc/devastar.c:326,332
1994/1107    
		|| (c == ISAid1 && c1 == ISAid0)); 
} 
 
int 
1994/1109    
static int 
1994/1107    
astarsetup(Astar *a) 
{ 
	int i, j, found; 
1994/1108/sys/src/9/pc/devastar.c:333,3391994/1109/sys/src/9/pc/devastar.c:336,342
1994/1107    
	if(a->port == 0) 
		for(i = 0; isaport[i]; i++){ 
			a->port = isaport[i]; 
			found = isax00i(isaport[i]); 
1994/1109    
			found = astarprobe(isaport[i]); 
1994/1107    
			if(found){ 
				isaport[i] = -1; 
				break; 
1994/1108/sys/src/9/pc/devastar.c:357,3601994/1109/sys/src/9/pc/devastar.c:360,365
1994/1107    
	} 
	c = inb(a->port + ISActl1) & ~ISAirq; 
	outb(a->port + ISActl1, c | isairqcode(a->irq)); 
1994/1109    
 
	return 0; 
1994/1106    
} 


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