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

1991/0920/pc/devfloppy.c (diff list | history)

1991/0919/sys/src/9/pc/devfloppy.c:6,111991/0920/sys/src/9/pc/devfloppy.c:6,13 (short | long | prev | next)
1991/0727    
#include	"io.h" 
1991/0802    
#include	"errno.h" 
1991/0727    
 
1991/0920    
/* NEC PD765A (8272A compatible) floppy controller */ 
 
1991/0802    
typedef	struct Drive		Drive; 
1991/0727    
typedef	struct Controller	Controller; 
1991/0802    
typedef struct Type		Type; 
1991/0919/sys/src/9/pc/devfloppy.c:42,471991/0920/sys/src/9/pc/devfloppy.c:44,50
1991/0728    
	/* file types */ 
	Qdir=		0, 
1991/0802    
	Qdata=		(1<<2), 
1991/0920    
	Qctl=		(2<<2), 
1991/0802    
	Qmask=		(3<<2), 
1991/0727    
}; 
 
1991/0919/sys/src/9/pc/devfloppy.c:160,1681991/0920/sys/src/9/pc/devfloppy.c:163,175
1991/0731    
 
1991/0802    
Dirtab floppydir[]={ 
1991/0823    
	"fd0disk",		{Qdata + 0},	0,	0600, 
1991/0920    
	"fd0ctl",		{Qctl + 0},	0,	0600, 
1991/0823    
	"fd1disk",		{Qdata + 1},	0,	0600, 
1991/0920    
	"fd1ctl",		{Qctl + 1},	0,	0600, 
1991/0823    
	"fd2disk",		{Qdata + 2},	0,	0600, 
1991/0920    
	"fd2ctl",		{Qctl + 2},	0,	0600, 
1991/0823    
	"fd3disk",		{Qdata + 3},	0,	0600, 
1991/0920    
	"fd3ctl",		{Qctl + 3},	0,	0600, 
1991/0802    
}; 
1991/0811    
#define NFDIR	2	/* directory entries/drive */ 
1991/0731    
 
1991/0919/sys/src/9/pc/devfloppy.c:215,2291991/0920/sys/src/9/pc/devfloppy.c:222,241
1991/0731    
void 
floppyinit(void) 
{ 
	/* 
	 *  watchdog to turn off the motors 
	 */ 
1991/0802    
	kproc("floppy", floppykproc, 0); 
1991/0731    
} 
1991/0802    
 
Chan* 
floppyattach(char *spec) 
{ 
1991/0920    
	static int kstarted; 
 
	if(kstarted == 0){ 
		/* 
		 *  watchdog to turn off the motors 
		 */ 
		kstarted = 1; 
		kproc("floppy", floppykproc, 0); 
	} 
1991/0802    
	return devattach('f', spec); 
} 
 
1991/0919/sys/src/9/pc/devfloppy.c:274,2881991/0920/sys/src/9/pc/devfloppy.c:286,291
1991/0802    
	error(Eperm); 
} 
 
static void 
ul2user(uchar *a, ulong x) 
{ 
	a[0] = x >> 24; 
	a[1] = x >> 16; 
	a[2] = x >> 8; 
	a[3] = x; 
} 
                 
1991/0809    
/* 
1991/0831    
 *  look for a floppy change 
 */ 
1991/0919/sys/src/9/pc/devfloppy.c:292,2981991/0920/sys/src/9/pc/devfloppy.c:295,301
1991/0831    
	if((inb(Fchanged) & Fchange) == 0) 
		return; 
 
	                 
1991/0920    
	print("floppy has changed\n"); 
1991/0831    
} 
 
/* 


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