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

2002/0718/bitsy/sdata.c (diff list | history)

2002/0615/sys/src/9/bitsy/sdata.c:7,132002/0718/sys/src/9/bitsy/sdata.c:7,13 (short | long | prev | next)
2001/0908    
#include "ureg.h" 
#include "../port/error.h" 
 
#include "../port/sd.h" 
2002/0718    
#include "sd.h" 
2001/0908    
 
 
extern SDifc sdataifc; 
2002/0615/sys/src/9/bitsy/sdata.c:353,3692002/0718/sys/src/9/bitsy/sdata.c:353,368
2001/0908    
		 * can be used as a test for !Bsy. 
		 */ 
		as = inb(ctlport+As); 
		if(as & reset) 
			; 
		else if(dev){ 
			outb(cmdport+Dh, dev); 
			dev = 0; 
2002/0718    
		if((as & reset) == 0){ 
			if(dev){ 
				outb(cmdport+Dh, dev); 
				dev = 0; 
			} 
			else if(ready == 0 || (as & ready)){ 
				atadebug(0, 0, "ataready: %d 0x%2.2uX\n", micro, as); 
				return as; 
			} 
2001/0908    
		} 
		else if(ready == 0 || (as & ready)){ 
			atadebug(0, 0, "ataready: %d 0x%2.2uX\n", micro, as); 
			return as; 
		} 
                 
		if(micro-- <= 0){ 
			atadebug(0, 0, "ataready: %d 0x%2.2uX\n", micro, as); 
			break; 
2002/0615/sys/src/9/bitsy/sdata.c:1581,15982002/0718/sys/src/9/bitsy/sdata.c:1580,1594
2001/0908    
ataid(SDev* sdev) 
{ 
	int i; 
	Ctlr *ctlr; 
 
	if(sdev == nil) 
		return nil; 
	ctlr = sdev->ctlr; 
	i = 0; 
	while(sdev){ 
		if(sdev->ifc == &sdataifc){ 
			ctlr = sdev->ctlr; 
			sdev->idno = 'C'+i; 
			i++; 
			snprint(sdev->name, NAMELEN, "sd%c", sdev->idno); 
2002/0718    
			snprint(sdev->name, KNAMELEN, "sd%c", sdev->idno); 
2001/0908    
		} 
		sdev = sdev->next; 
	} 
2002/0615/sys/src/9/bitsy/sdata.c:1606,16122002/0718/sys/src/9/bitsy/sdata.c:1602,1608
2001/0908    
ataenable(SDev* sdev) 
{ 
	Ctlr *ctlr; 
	char name[NAMELEN]; 
2002/0718    
	char name[KNAMELEN]; 
2001/0908    
 
	ctlr = sdev->ctlr; 
 
2002/0615/sys/src/9/bitsy/sdata.c:1613,16192002/0718/sys/src/9/bitsy/sdata.c:1609,1615
2001/0908    
	if(ctlr->bmiba){ 
		ctlr->prdt = xspanalloc(Nprd*sizeof(Prd), 4, 4*1024); 
	} 
	snprint(name, NAMELEN, "%s (%s)", sdev->name, sdev->ifc->name); 
2002/0718    
	snprint(name, KNAMELEN, "%s (%s)", sdev->name, sdev->ifc->name); 
2001/0908    
//	intrenable(ctlr->irq, atainterrupt, ctlr, ctlr->tbdf, name); 
	outb(ctlr->ctlport+Dc, 0); 
	intrenable(ataitype, atairq, atainterrupt, ctlr, name); 
2002/0615/sys/src/9/bitsy/sdata.c:2040,20482002/0718/sys/src/9/bitsy/sdata.c:2036,2043
2001/0908    
}; 
 
static SDev* 
ataconfig(int on, char *, void *pf) 
2002/0718    
ataconfig(int on, char *, DevConf *cf) 
2001/0908    
{ 
	DevConf* cf = pf; 
	int	cmdport; 
	int	ctlport; 
	int	irq; 
2002/0615/sys/src/9/bitsy/sdata.c:2054,20632002/0718/sys/src/9/bitsy/sdata.c:2049,2058
2001/0908    
	rc = nil; 
	for (try = &tries[0]; try->p != 0 || try->c != 0; try++){ 
		ataitype = cf->itype; 
2002/0615    
		atairq  = cf->intnum; 
2002/0718    
		atairq  = cf->irq; 
2001/0908    
		cmdport = cf->port + try->p; 
		ctlport = cmdport + try->c; 
2002/0615    
		irq = cf->intnum; 
2002/0718    
		irq = cf->irq; 
2001/0908    
		rc = ataprobe(cmdport, ctlport, irq); 
		if (rc) 
			break; 


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