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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? hp.c

?? unix v7是最后一個(gè)廣泛發(fā)布的研究型UNIX版本
?? C
字號(hào):
/* * RP04/RP06 disk driver */#include "../h/param.h"#include "../h/systm.h"#include "../h/buf.h"#include "../h/conf.h"#include "../h/dir.h"#include "../h/user.h"#define	DK_N	0struct	device{	union {		int	w;		char	c[2];	} hpcs1;		/* Control and Status register 1 */	int	hpwc;		/* Word count register */	caddr_t	hpba;		/* UNIBUS address register */	int	hpda;		/* Desired address register */	union {		int	w;		char	c[2];	} hpcs2;		/* Control and Status register 2*/	int	hpds;		/* Drive Status */	int	hper1;		/* Error register 1 */	int	hpas;		/* Attention Summary */	int	hpla;		/* Look ahead */	int	hpdb;		/* Data buffer */	int	hpmr;		/* Maintenance register */	int	hpdt;		/* Drive type */	int	hpsn;		/* Serial number */	int	hpof;		/* Offset register */	int	hpdc;		/* Desired Cylinder address register*/	int	hpcc;		/* Current Cylinder */	int	hper2;		/* Error register 2 */	int	hper3;		/* Error register 3 */	int	hpec1;		/* Burst error bit position */	int	hpec2;		/* Burst error bit pattern */	int	hpbae;		/* 11/70 bus extension */	int	hpcs3;};#define	HPADDR	((struct device *)0176700)#define	NHP	2#define	NSECT	22#define	NTRAC	19#define	SDIST	2#define	RDIST	6struct	size{	daddr_t	nblocks;	int	cyloff;} hp_sizes[8] ={	9614,	0,		/* cyl 0 thru 22 */	8778,	23,		/* cyl 23 thru 43 */	0,	0,	0,	0,	161348,	44,		/* cyl 44 thru 429 */	160930, 430,		/* cyl 430 thru 814 */	153406,	44,		/* cyl 44 thru 410 (rp04, rp05) */	322278,	44,		/* cyl 44 thru 814 (rp06) */};#define	P400	020#define	M400	0220#define	P800	040#define	M800	0240#define	P1200	060#define	M1200	0260int	hp_offset[16] ={	P400, M400, P400, M400,	P800, M800, P800, M800,	P1200, M1200, P1200, M1200,	0, 0, 0, 0,};struct	buf	hptab;struct	buf	rhpbuf;struct	buf	hputab[NHP];#define	GO	01#define	PRESET	020#define	RTC	016#define	OFFSET	014#define	SEARCH	030#define	RECAL	06#define DCLR	010#define	WCOM	060#define	RCOM	070#define	IE	0100#define	PIP	020000#define	DRY	0200#define	ERR	040000#define	TRE	040000#define	DCK	0100000#define	WLE	04000#define	ECH	0100#define VV	0100#define	DPR	0400#define	MOL	010000#define FMT22	010000#define	b_cylin	b_residdaddr_t dkblock();hpstrategy(bp)register struct buf *bp;{	register struct buf *dp;	register unit;	long sz, bn;	unit = minor(bp->b_dev) & 077;	sz = bp->b_bcount;	sz = (sz+511) >> 9;	if (unit >= (NHP<<3) ||	    bp->b_blkno < 0 ||	    (bn = dkblock(bp))+sz > hp_sizes[unit&07].nblocks) {		bp->b_flags |= B_ERROR;		iodone(bp);		return;	}	bp->b_cylin = bn/(NSECT*NTRAC) + hp_sizes[unit&07].cyloff;	unit = dkunit(bp);	dp = &hputab[unit];	spl5();	disksort(dp, bp);	if (dp->b_active == 0) {		hpustart(unit);		if(hptab.b_active == 0)			hpstart();	}	spl0();}hpustart(unit)register unit;{	register struct buf *bp, *dp;	daddr_t bn;	int sn, cn, csn;	HPADDR->hpcs2.w = unit;	HPADDR->hpcs1.c[0] = IE;	HPADDR->hpas = 1<<unit;	if(unit >= NHP)		return;	dk_busy &= ~(1<<(unit+DK_N));	dp = &hputab[unit];	if((bp=dp->b_actf) == NULL)		return;	if((HPADDR->hpds & VV) == 0) {		HPADDR->hpcs1.c[0] = IE|PRESET|GO;		HPADDR->hpof = FMT22;	}	if(dp->b_active)		goto done;	dp->b_active++;	if ((HPADDR->hpds & (DPR|MOL)) != (DPR|MOL))		goto done;	bn = dkblock(bp);	cn = bp->b_cylin;	sn = bn%(NSECT*NTRAC);	sn = (sn+NSECT-SDIST)%NSECT;	if(HPADDR->hpcc != cn)		goto search;	csn = (HPADDR->hpla>>6) - sn + SDIST - 1;	if(csn < 0)		csn += NSECT;	if(csn > NSECT-RDIST)		goto done;search:	HPADDR->hpdc = cn;	HPADDR->hpda = sn;	HPADDR->hpcs1.c[0] = IE|SEARCH|GO;	unit += DK_N;	dk_busy |= 1<<unit;	dk_numb[unit] += 1;	return;done:	dp->b_forw = NULL;	if(hptab.b_actf == NULL)		hptab.b_actf = dp; else		hptab.b_actl->b_forw = dp;	hptab.b_actl = dp;}hpstart(){	register struct buf *bp, *dp;	register unit;	daddr_t bn;	int dn, sn, tn, cn;loop:	if ((dp = hptab.b_actf) == NULL)		return;	if ((bp = dp->b_actf) == NULL) {		hptab.b_actf = dp->b_forw;		goto loop;	}	hptab.b_active++;	unit = minor(bp->b_dev) & 077;	dn = dkunit(bp);	bn = dkblock(bp);	cn = bn/(NSECT*NTRAC) + hp_sizes[unit&07].cyloff;	sn = bn%(NSECT*NTRAC);	tn = sn/NSECT;	sn = sn%NSECT;	HPADDR->hpcs2.w = dn;	if ((HPADDR->hpds & (DPR|MOL)) != (DPR|MOL)) {		hptab.b_active = 0;		hptab.b_errcnt = 0;		dp->b_actf = bp->av_forw;		bp->b_flags |= B_ERROR;		iodone(bp);		goto loop;	}	if(hptab.b_errcnt >= 16) {		HPADDR->hpof = hp_offset[hptab.b_errcnt & 017] | FMT22;		HPADDR->hpcs1.w = OFFSET|GO;		while(HPADDR->hpds & PIP)			;	}	HPADDR->hpdc = cn;	HPADDR->hpda = (tn << 8) + sn;	HPADDR->hpba = bp->b_un.b_addr;	if(cputype == 70)		HPADDR->hpbae = bp->b_xmem;	HPADDR->hpwc = -(bp->b_bcount>>1);	unit = ((bp->b_xmem&3) << 8) | IE | GO;	if(bp->b_flags & B_READ)		unit |= RCOM; else		unit |= WCOM;	HPADDR->hpcs1.w = unit;	dk_busy |= 1<<(DK_N+NHP);	dk_numb[DK_N+NHP] += 1;	unit = bp->b_bcount>>6;	dk_wds[DK_N+NHP] += unit;}hpintr(){	register struct buf *bp, *dp;	register unit;	int as, i, j;	as = HPADDR->hpas & 0377;	if(hptab.b_active) {		dk_busy &= ~(1<<(DK_N+NHP));		dp = hptab.b_actf;		bp = dp->b_actf;		unit = dkunit(bp);		HPADDR->hpcs2.c[0] = unit;		if (HPADDR->hpcs1.w & TRE) {		/* error bit */			while((HPADDR->hpds & DRY) == 0)				;			if(++hptab.b_errcnt > 28 || HPADDR->hper1&WLE)				bp->b_flags |= B_ERROR; else				hptab.b_active = 0;			if(hptab.b_errcnt > 27)				deverror(bp, HPADDR->hpcs2.w, HPADDR->hper1);			if((bp->b_flags&B_PHYS) == 0 &&			   (HPADDR->hper1 & (DCK|ECH)) == DCK) {				i = HPADDR->hpec1 - 1;				j = i&017;				i >>= 4;				if(i >= 0 && i <256) {					bp->b_un.b_words[i] ^= HPADDR->hpec2 << j;					bp->b_un.b_words[i+1] ^= HPADDR->hpec2 >> (16-j);				}				hptab.b_active++;				printf("%D ", bp->b_blkno);				prdev("ECC", bp->b_dev);			}			HPADDR->hpcs1.w = TRE|IE|DCLR|GO;			if((hptab.b_errcnt&07) == 4) {				HPADDR->hpcs1.w = RECAL|IE|GO;				while(HPADDR->hpds & PIP)					;			}		}		if(hptab.b_active) {			if(hptab.b_errcnt) {				HPADDR->hpcs1.w = RTC|GO;				while(HPADDR->hpds & PIP)					;			}			hptab.b_active = 0;			hptab.b_errcnt = 0;			hptab.b_actf = dp->b_forw;			dp->b_active = 0;			dp->b_errcnt = 0;			dp->b_actf = bp->av_forw;			bp->b_resid = -(HPADDR->hpwc<<1);			iodone(bp);			HPADDR->hpcs1.w = IE;			if(dp->b_actf)				hpustart(unit);		}		as &= ~(1<<unit);	} else {		if(as == 0)			HPADDR->hpcs1.w = IE;		HPADDR->hpcs1.c[1] = TRE>>8;	}	for(unit=0; unit<NHP; unit++)		if(as & (1<<unit))			hpustart(unit);	hpstart();}hpread(dev){	physio(hpstrategy, &rhpbuf, dev, B_READ);}hpwrite(dev){	physio(hpstrategy, &rhpbuf, dev, B_WRITE);}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产校园另类小说区| 一区二区三区四区在线免费观看 | 亚洲一区在线免费观看| 精品理论电影在线观看| 日本韩国欧美三级| 国产精品中文有码| 日韩福利电影在线观看| 亚洲欧美另类图片小说| 国产视频一区在线观看| 制服.丝袜.亚洲.另类.中文| 成人av动漫在线| 国产麻豆精品在线观看| 天天综合色天天综合| 亚洲女同一区二区| 亚洲国产精品99久久久久久久久 | 这里是久久伊人| 91免费国产在线| 国产99一区视频免费| 精彩视频一区二区| 日本欧美肥老太交大片| 亚洲va欧美va天堂v国产综合| 亚洲欧美偷拍另类a∨色屁股| 久久精品亚洲一区二区三区浴池| 欧美一区二区免费视频| 欧美日韩国产综合草草| 欧洲一区在线电影| 99精品一区二区三区| av在线不卡电影| 粗大黑人巨茎大战欧美成人| 国内外成人在线视频| 麻豆91精品视频| 久久er99热精品一区二区| 久久精品国产99| 免费高清在线一区| 九九九精品视频| 国产在线观看一区二区| 国产乱码精品一区二区三区忘忧草| 奇米影视一区二区三区| 久久精品国产一区二区三| 久久9热精品视频| 国产一区二区看久久| 国产精品中文字幕日韩精品| 国产成人精品亚洲午夜麻豆| 成人免费毛片a| av一区二区久久| 99v久久综合狠狠综合久久| 色综合久久综合| 欧美亚洲日本一区| 欧美精品vⅰdeose4hd| 日韩免费电影一区| 日韩欧美国产高清| 久久亚洲二区三区| 亚洲国产电影在线观看| 日韩一区日韩二区| 亚洲一区二区三区视频在线播放 | 一区二区视频在线看| 一区二区三区四区五区视频在线观看 | 在线观看不卡视频| 欧美人动与zoxxxx乱| 欧美成人乱码一区二区三区| 国产色91在线| 亚洲色图一区二区三区| 无码av中文一区二区三区桃花岛| 蜜桃视频免费观看一区| 国产99久久久国产精品免费看| 97久久精品人人做人人爽50路| 欧美日韩精品系列| 久久蜜桃av一区精品变态类天堂| 国产精品乱人伦一区二区| 亚洲影院免费观看| 久久精品免费观看| 色综合色综合色综合色综合色综合 | 欧美一级欧美三级| 久久精品欧美日韩| 亚洲一二三四在线| 黄色小说综合网站| 在线免费不卡电影| 久久亚洲私人国产精品va媚药| 亚洲欧美另类小说| 极品少妇一区二区| 欧美在线播放高清精品| 精品成人一区二区三区| 亚洲蜜臀av乱码久久精品| 九一九一国产精品| 在线视频一区二区三区| 亚洲精品一区二区精华| 亚洲精品中文字幕在线观看| 久久66热偷产精品| 欧美中文字幕一区| 国产精品女同互慰在线看| 天天综合色天天综合色h| www.日韩精品| 精品成人私密视频| 天堂va蜜桃一区二区三区漫画版| 高清久久久久久| 日韩一区二区在线播放| 亚洲日本电影在线| 国产一区二区三区黄视频 | 日本欧美一区二区在线观看| 成人福利视频在线| 久久综合九色综合97婷婷女人| 亚洲天堂免费看| 国产高清视频一区| 欧美大片顶级少妇| 亚洲国产欧美在线| 色先锋资源久久综合| 国产欧美综合色| 久久se这里有精品| 91精品国产综合久久久久久久| 亚洲男人电影天堂| av亚洲产国偷v产偷v自拍| 久久久亚洲精品一区二区三区| 婷婷夜色潮精品综合在线| 91久久精品国产91性色tv| 国产精品私人自拍| 丁香婷婷综合激情五月色| 欧美精品一区二区三区在线| 日韩电影免费一区| 欧美电影一区二区三区| 亚洲高清中文字幕| 欧美日韩在线亚洲一区蜜芽| 中文字幕一区三区| 不卡高清视频专区| 国产精品毛片高清在线完整版| 国产精品 日产精品 欧美精品| 欧美刺激午夜性久久久久久久| 青青草原综合久久大伊人精品| 91蜜桃免费观看视频| 亚洲三级理论片| 色婷婷久久久久swag精品| 亚洲视频精选在线| 91在线免费看| 亚洲自拍偷拍网站| 欧美日韩大陆一区二区| 日韩电影一区二区三区四区| 欧美一区二区在线看| 美女一区二区在线观看| 欧美电影免费观看高清完整版| 久久精品国产色蜜蜜麻豆| 欧美不卡在线视频| 国产在线一区二区| 国产日韩欧美综合在线| 北岛玲一区二区三区四区| 亚洲视频在线观看三级| 欧美图区在线视频| 日韩高清不卡在线| 欧美videos大乳护士334| 国产精品66部| 亚洲精品免费一二三区| 欧美三片在线视频观看 | 972aa.com艺术欧美| 一区二区三区四区亚洲| 91精品免费在线| 国产一区二区三区美女| 国产精品久久久一本精品 | 国产日韩欧美一区二区三区综合| 国产精品一区久久久久| 中文字幕亚洲区| 欧美日韩亚洲另类| 国产一区二区调教| 综合久久久久久| 欧美日韩国产中文| 国产另类ts人妖一区二区| 亚洲欧美日韩在线不卡| 91精品国产全国免费观看| 国产一区二区久久| 洋洋av久久久久久久一区| 欧美一区二区日韩| 不卡一区中文字幕| 日本三级亚洲精品| 亚洲欧美在线另类| 日韩三级.com| 色哟哟国产精品免费观看| 免费观看成人鲁鲁鲁鲁鲁视频| 国产精品免费网站在线观看| 在线不卡欧美精品一区二区三区| 国产尤物一区二区在线| 亚洲欧美偷拍另类a∨色屁股| 日韩一区二区电影在线| 99久久亚洲一区二区三区青草| 午夜免费欧美电影| 国产精品午夜在线| 69堂亚洲精品首页| 成人av电影在线| 美女看a上一区| 亚洲精品久久久久久国产精华液| 欧美tk—视频vk| 欧美久久久久久蜜桃| av在线免费不卡| 国产一区二区伦理| 三级一区在线视频先锋| 国产精品久久免费看| 精品欧美黑人一区二区三区| 91浏览器入口在线观看| 国产精品99久久久| 九九九精品视频| 天天综合日日夜夜精品| 日韩美女久久久| 中文成人av在线| 久久久久久影视|