亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rl.c

?? unix v7是最后一個廣泛發布的研究型UNIX版本
?? C
字號:
/* * RL disk driver * Reworked to handle RL01/RL02 *	R.A.Mason	Oct.1980 * Intended to eventually handle overlapped seeks */#include "../h/param.h"#include "../h/buf.h"#include "../h/dir.h"#include "../h/user.h"#include "../h/systm.h"#define DK_N	1struct device {	int rlcs;	int rlba;	int rlda;	int rlmp;};#define	RLADDR	((struct device *)0174400)#define	NPDISK	4#define	NLDISK	1	/* no subdivision into logical disks */#define RLCYLSZ		10240#define RLSECSZ		256#define RL01SIZE	10240#define RL02SIZE	20480/* rlcs bits */#define DRDY		0000001#define GETSTAT		0000004#define SEEK		0000006#define RDHDR		0000010#define WCOM		0000012#define RCOM		0000014#define IENABLE		0000100#define CRDY		0000200#define DS		0001400#define OPI		0002000#define CRC		0004000#define DLT		0010000#define NXM		0020000#define DE		0040000#define ERROR		0100000#define ACCESS_ERROR	(NXM|DLT|CRC|OPI)/* rlda bits	- during seek */#define SEEKLO		0000001#define SEEKHI		0000005/*		- during get status */#define GS		0000002#define RST		0000010#define RESET		(RST|GS|01)#define STAT		(GS|01)/* status bits */#define HO		0000020#define DT		0000200#define VC		0001000#define WL		0020000struct	buf	rltab;struct	buf	rrlbuf;struct rl{	int	status;		/* drive status */	int	headp;		/* location of heads */	struct buf *iop;	/* current transfer on drive */	int	errcnt;		/* error count on drive	*/	int	com;		/* read or write command word */	int	chn;		/* cylinder and head number */	unsigned int	bleft;	/* bytes left to be transferred */	unsigned int	bpart;	/* number of bytes transferred */	int	sn;		/* sector number */	union {		int	w[2];		long	l;	} addr;			/* address of memory for transfer */} rl[NPDISK];/* Bit sets for drive status */#define RL01		01#define RL02		02#define HEADKNOWN	010rlopen(dev,rw)dev_t dev;{	register struct rl *rlp;	register struct device *rp;	int drive,status;	drive = minor(dev);	if(drive >= NPDISK) {		u.u_error = ENXIO;		return;	}	rlp = &rl[drive];	rp = RLADDR;	spl5();	while((rp->rlcs & CRDY) == 0);	rp->rlda = STAT;	rp->rlcs = (drive << 8) | GETSTAT;	while((rp->rlcs & CRDY) == 0);	status = rp->rlmp;	rp->rlda = RESET;	rp->rlcs = (drive << 8) | GETSTAT;	while((rp->rlcs & CRDY) == 0);	spl0();	if((status&HO) == 0) {		u.u_error = ENXIO;		return;	}	if(rw && (status&WL)) {		u.u_error = EROFS;		return;	}	if(status&DT)		rlp->status |= RL02;	else		rlp->status |= RL01;}rlclose(dev)dev_t dev;{	register struct rl *rlp;	rlp = &rl[minor(dev)];	/* will do something on next rework */}rlstrategy(bp)register struct buf *bp;{	register struct rl *rlp;	int drive,dsize;#ifdef UNIBMAP	if(bp->b_flags&B_PHYS)		mapalloc(bp);#endif UNIBMAP	drive = minor(bp->b_dev);	rlp = &rl[drive];	dsize = 0;	if(rlp->status&RL01)		dsize = RL01SIZE;	else	if(rlp->status&RL02)		dsize = RL02SIZE;	if(bp->b_blkno >= dsize) {		if((bp->b_blkno == dsize) && (bp->b_flags&B_READ))			bp->b_resid = bp->b_bcount;		else {			bp->b_flags |= B_ERROR;			bp->b_error = ENXIO;		}		iodone(bp);		return;	}	bp->av_forw = NULL;	spl5();	if(rltab.b_actf == NULL)		rltab.b_actf = bp;	else		rltab.b_actl->av_forw = bp;	rltab.b_actl = bp;	if(rltab.b_active == NULL)		rlstart();	spl0();}rlstart(){	register struct buf *bp;	register struct rl *rlp;	int drive;	if((bp = rltab.b_actf) == NULL)		return;	rltab.b_active++;	drive = minor(bp->b_dev);	rlp = &rl[drive];	rlp->iop = bp;	rlp->chn = bp->b_blkno/20;	rlp->sn = (bp->b_blkno%20) << 1;	rlp->bleft = bp->b_bcount;	rlp->addr.w[0] = bp->b_xmem & 3;	rlp->addr.w[1] = (int)bp->b_un.b_addr;	rlp->com = (drive << 8) | IENABLE;	if(bp->b_flags & B_READ)		rlp->com |= RCOM;	else		rlp->com |= WCOM;	rlio(drive);}rlintr(){	register struct buf *bp;	register struct device *rp;	register struct rl *rlp;	int drive,status;	rp = RLADDR;	drive = (rp->rlcs&DS) >> 8;	rlp = &rl[drive];	if(rlp->iop == NULL) {/*		logstray(rp); */		return;	}	bp = rlp->iop;#ifdef INSTRM	dk_busy &= ~(1<<DK_N);#endif INSTRM	if(rp->rlcs&ERROR) {		if(rp->rlcs&ACCESS_ERROR) {			if(rlp->errcnt > 2)				deverror(bp, rp->rlcs, rp->rlda);		}		if(rp->rlcs&DE) {			rp->rlda = STAT;			rp->rlcs = (drive << 8) | GETSTAT;			while((rp->rlcs & CRDY) == 0);			status = rp->rlmp;			if(rlp->errcnt > 2)				deverror(bp, status, rp->rlda);			rp->rlda = RESET;			rp->rlcs = (drive << 8) | GETSTAT;			while((rp->rlcs & CRDY) == 0);			if(status&DT)		/* drive type */				rlp->status |= RL02;			else				rlp->status |= RL01;			if(status&VC) {		/* volume check */				rlstart();				return;			}		}		if(++rlp->errcnt <= 10) {			rlp->status &= ~HEADKNOWN;			rlstart();			return;		}		else {			bp->b_flags |= B_ERROR;			rlp->bpart = rlp->bleft;		}	}	if((rlp->bleft -= rlp->bpart) > 0) {		rlp->addr.l += rlp->bpart;		rlp->sn = 0;		rlp->chn++;		rlio(drive);		return;	}	rlp->iop = NULL;	rlp->errcnt = 0;	rltab.b_active = NULL;	rltab.b_actf = bp->av_forw;	bp->b_resid = 0;	iodone(bp);	rlstart();}rlio(dn)int dn;{	register struct device *rp;	register struct rl *rlp;	int dif,head;	rp = RLADDR;	rlp = &rl[dn];#ifdef INSTRM	dk_busy |= 1<<DK_N;	dk_numb[DK_N] += 1;	dk_wds[DK_N] += (rlp->bpart>>6);#endif INSTRM	if((rlp->status&HEADKNOWN) == 0) {		rp->rlcs = (dn << 8) | RDHDR;		while((rp->rlcs&CRDY) == 0);		rlp->headp = ((unsigned)(rp->rlmp&0177700)) >> 6;		rlp->status |= HEADKNOWN;	}	dif = (rlp->headp >> 1) - (rlp->chn >>1);	head = (rlp->chn & 1) << 4;	if(dif < 0)		rp->rlda = (-dif<<7) | SEEKHI | head;	else		rp->rlda = (dif<< 7) | SEEKLO | head;	rp->rlcs = (dn << 8) | SEEK;	rlp->headp = rlp->chn;	if(rlp->bleft < (rlp->bpart = RLCYLSZ - (rlp->sn * RLSECSZ)))		rlp->bpart = rlp->bleft;	while((rp->rlcs&CRDY) == 0);	rp->rlda = (rlp->chn << 6) | rlp->sn;	rp->rlba = rlp->addr.w[1];	rp->rlmp = -(rlp->bpart >> 1);	rp->rlcs = rlp->com | rlp->addr.w[0] << 4;}rlread(dev){	physio(rlstrategy, &rrlbuf, dev, B_READ);}rlwrite(dev){	physio(rlstrategy, &rrlbuf, dev, B_WRITE);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
青青青爽久久午夜综合久久午夜| 亚洲日本在线a| 欧美三级日韩三级| 99国产精品久久久久久久久久 | 99精品久久免费看蜜臀剧情介绍| 国产精选一区二区三区| 国产精品主播直播| 粉嫩aⅴ一区二区三区四区五区| 国产成人亚洲综合色影视| 国产高清不卡一区二区| 国产激情91久久精品导航| 成人网男人的天堂| 97久久超碰国产精品电影| 欧美亚洲动漫制服丝袜| 欧美另类变人与禽xxxxx| 精品国产髙清在线看国产毛片| 精品国产一二三| 国产精品欧美一级免费| 《视频一区视频二区| 亚洲成人1区2区| 激情久久久久久久久久久久久久久久| 国产一区二区三区不卡在线观看 | 亚洲丝袜另类动漫二区| 亚洲女人****多毛耸耸8| 亚洲午夜在线电影| 精品一区二区在线看| 成人黄动漫网站免费app| 日本韩国欧美国产| 精品欧美一区二区三区精品久久| 国产午夜亚洲精品午夜鲁丝片 | 国产视频一区不卡| 亚洲女性喷水在线观看一区| 日韩成人一区二区三区在线观看| 粉嫩aⅴ一区二区三区四区| 欧美亚州韩日在线看免费版国语版| 欧美一区二区久久久| 国产精品久久久久久久久图文区| 亚洲高清视频在线| 国产成人精品网址| 欧美日韩精品一区二区天天拍小说 | 久久er99热精品一区二区| 成人一区二区三区在线观看| 7777精品伊人久久久大香线蕉的| 久久久www成人免费无遮挡大片| 依依成人综合视频| 国产尤物一区二区在线| 欧美日韩中字一区| 国产精品久久久久久福利一牛影视| 强制捆绑调教一区二区| 色视频欧美一区二区三区| 久久久亚洲精华液精华液精华液| 亚洲成人激情av| 在线中文字幕一区二区| 国产精品美女久久久久久久久久久| 免费高清不卡av| 欧美日韩久久一区二区| 亚洲三级理论片| 波多野结衣91| 久久久精品国产免费观看同学| 麻豆国产精品官网| 欧美高清视频一二三区| 亚洲福利视频三区| 色8久久精品久久久久久蜜| 亚洲国产精品ⅴa在线观看| 国产一区二区不卡在线| 欧美一级日韩一级| 日韩高清在线不卡| 欧美日韩久久久| 天天综合网 天天综合色| 91蜜桃视频在线| 国产精品电影一区二区| 成人午夜看片网址| 国产精品亲子乱子伦xxxx裸| 国产成人精品免费视频网站| 久久综合久久鬼色中文字| 极品销魂美女一区二区三区| 国产精品区一区二区三| 国产成人免费av在线| 久久久精品免费免费| 国产精品77777| 国产精品私人影院| 91麻豆免费视频| 亚洲免费视频中文字幕| 日本韩国欧美国产| 午夜成人在线视频| 日韩免费福利电影在线观看| 久久99国产精品成人| 久久久久久久电影| 成人av动漫在线| 一区二区视频在线| 欧美日韩亚洲丝袜制服| 男女性色大片免费观看一区二区| 欧美变态tickle挠乳网站| 国产精品一区二区在线观看不卡| 欧美韩国日本一区| 欧美图区在线视频| 久久99精品国产.久久久久久| 久久伊人中文字幕| 99久久免费精品高清特色大片| 亚洲精品一卡二卡| 日韩一区二区免费在线电影| 国产美女一区二区三区| 亚洲人成网站影音先锋播放| 欧美人妖巨大在线| 国产精品18久久久久久久久| 亚洲视频在线一区| 欧美电影免费观看高清完整版在线 | 国产日韩欧美精品在线| 91丨九色丨尤物| 日韩精品久久久久久| 久久九九全国免费| 欧美三级韩国三级日本一级| 国产成人综合视频| 婷婷综合五月天| 国产精品久久久久婷婷| 在线电影院国产精品| 国产成人午夜片在线观看高清观看 | 国产亚洲一二三区| 欧美日韩国产一级片| 粗大黑人巨茎大战欧美成人| 午夜视频一区二区三区| 综合久久一区二区三区| 精品国产一区a| 91精品麻豆日日躁夜夜躁| 99精品国产视频| 国产麻豆91精品| 久久99精品久久久| 日日夜夜免费精品视频| 亚洲精品自拍动漫在线| 国产欧美一区二区三区网站 | 99久免费精品视频在线观看| 美女脱光内衣内裤视频久久影院| 亚洲乱码国产乱码精品精的特点| 久久久综合网站| 日韩一卡二卡三卡国产欧美| 欧美无砖专区一中文字| 91麻豆蜜桃一区二区三区| 成人一级视频在线观看| 国产精品乡下勾搭老头1| 久热成人在线视频| 日韩激情视频网站| 午夜精品免费在线观看| 亚洲精选免费视频| 亚洲免费在线视频| 亚洲精品国产高清久久伦理二区| 中文乱码免费一区二区| 久久久精品国产99久久精品芒果| 精品国产一区久久| 精品国产乱码久久久久久1区2区| 日韩欧美亚洲另类制服综合在线 | 国产成人精品免费| 国产一区二区三区免费| 韩国成人在线视频| 精品一区二区综合| 国产91精品免费| 风间由美一区二区三区在线观看 | 亚洲一区影音先锋| 一区二区欧美国产| 五月天中文字幕一区二区| 午夜影院久久久| 麻豆精品在线看| 国产成人精品一区二区三区网站观看 | 人人狠狠综合久久亚洲| 午夜电影网亚洲视频| 美女看a上一区| 经典三级视频一区| 国产成a人亚洲| av在线不卡电影| 在线一区二区三区| 91麻豆精品国产91久久久久久久久 | 日韩精品免费视频人成| 看片网站欧美日韩| 国产成人精品影视| 91黄色免费网站| 欧美一区二区观看视频| 国产校园另类小说区| 一区二区三区日韩精品| 麻豆免费看一区二区三区| 成人综合在线视频| 欧美日韩视频在线第一区| 久久夜色精品国产噜噜av| 国产精品不卡在线观看| 日韩高清国产一区在线| 成人午夜精品在线| 欧美精品一卡二卡| 国产精品美女一区二区| 日日摸夜夜添夜夜添亚洲女人| 国产一区二区按摩在线观看| 色婷婷亚洲精品| 精品999在线播放| 亚洲综合丝袜美腿| 国产精品一区免费在线观看| 欧美亚州韩日在线看免费版国语版| 精品sm捆绑视频| 亚洲午夜久久久久久久久久久 | 欧美成人综合网站| 亚洲精品成人精品456| 九色porny丨国产精品| 91福利精品视频| 国产色综合久久|