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

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

?? ht.c

?? <B>Digital的Unix操作系統VAX 4.2源碼</B>
?? C
?? 第 1 頁 / 共 2 頁
字號:
	if ((ds & (HTDS_ERR|HTDS_MOL)) != HTDS_MOL || mbs & MBSR_EBITS) {		/*		 * save the registers before we clear them		 */		ht_regs[0] = MASKREG(htaddr->htcs1);		ht_regs[1] = MASKREG(htaddr->htds);		ht_regs[2] = MASKREG(htaddr->hter);		ht_regs[3] = MASKREG(htaddr->htmr);		ht_regs[4] = MASKREG(htaddr->htas);		ht_regs[5] = MASKREG(htaddr->htfc);		ht_regs[6] = MASKREG(htaddr->htdt);		ht_regs[7] = MASKREG(htaddr->htck);		ht_regs[8] = MASKREG(htaddr->htsn);		ht_regs[9] = MASKREG(htaddr->httc);		htaddr->htcs1 = HT_DCLR|HT_GO;		mbclrattn(mi);		if (bp != &chtbuf[htunit]) {			er &= ~HTER_FCE;			mbs &= ~(MBSR_DTABT|MBSR_MBEXC);		}		if (bp->b_flags & B_READ && ds & HTDS_PES) {			sc->sc_category_flags |= DEV_SHRTREC;			er &= ~(HTER_CSITM|HTER_CORCRC);		}		if (er & HTER_HARD || mbs & MBSR_EBITS ||		    (ds & HTDS_MOL) == 0 || er &&		    ++mi->mi_tab.b_errcnt >= 7) {			sc->sc_flags |= DEV_HARDERR;			sc->sc_hardcnt++;			if ((ds & HTDS_MOL) == 0 && sc->sc_openf > 0) {				sc->sc_flags |= DEV_OFFLINE;				sc->sc_openf = -1;			}			if ((er & HTER_HARD) == HTER_FCE &&			    (mbs & MBSR_EBITS) == (MBSR_DTABT|MBSR_MBEXC)			    && (ds & HTDS_MOL))				goto noprint;			mprintf("%s: unit#:%d hard err blk#:%d mbsr:%b \			        htcs1:%x htds:%x hter:%x htmr:%x htas:%x \				htfc:%x htdt:%x htck:%x htsn:%x httc:%x\n",				sc->sc_device, unit, bp->b_blkno,				mbsr, mbsr_bits, ht_regs[0], ht_regs[1], 				ht_regs[2], ht_regs[3], ht_regs[4], ht_regs[5],				ht_regs[6], ht_regs[7], ht_regs[8], ht_regs[9]);noprint:			bp->b_flags |= B_ERROR;			sc->sc_flags |= DEV_DONE;			return (MBD_DONE);		}		if (er) {			sc->sc_flags |= DEV_RETRY;			return (MBD_RETRY);		}	}	bp->b_resid = 0;	if (bp->b_flags & B_READ)		if (ds & HTDS_TM) {			sc->sc_category_flags |= DEV_TPMARK;			bp->b_resid = bp->b_bcount;			sc->sc_nxrec = bdbtofsb(bp->b_blkno);		} else if(bp->b_bcount > MASKREG(htaddr->htfc))			bp->b_resid = bp->b_bcount -				      MASKREG(htaddr->htfc);	sc->sc_flags |= DEV_DONE;	return (MBD_DONE);}htndtint(mi)	register struct mba_device *mi;{	register struct htdevice *htaddr = (struct htdevice *)mi->mi_drv;	register struct tu_softc *sc;	register struct buf *bp = mi->mi_tab.b_actf;	register int htunit;	register int unit;	int er, ds, fc;	u_short ht_regs[10];	if (bp == 0) {		return (MBN_SKIP);	/* Just return if unexpected */	}	htunit = HTUNIT(bp->b_dev);	unit = UNIT(bp->b_dev);	sc = &tu_softc[unit];	sc->sc_erreg = er = MASKREG(htaddr->hter);	sc->sc_dsreg = ds = MASKREG(htaddr->htds);	sc->sc_resid = fc = MASKREG(htaddr->htfc);	if (er) {		/*		 * save the registers before we clear them		 */		ht_regs[0] = MASKREG(htaddr->htcs1);		ht_regs[1] = MASKREG(htaddr->htds);		ht_regs[2] = MASKREG(htaddr->hter);		ht_regs[3] = MASKREG(htaddr->htmr);		ht_regs[4] = MASKREG(htaddr->htas);		ht_regs[5] = MASKREG(htaddr->htfc);		ht_regs[6] = MASKREG(htaddr->htdt);		ht_regs[7] = MASKREG(htaddr->htck);		ht_regs[8] = MASKREG(htaddr->htsn);		ht_regs[9] = MASKREG(htaddr->httc);		htaddr->htcs1 = HT_DCLR|HT_GO;		mbclrattn(mi);	}	if((ds & HTDS_EOT) && (dis_eot_tu[unit] != DISEOT)) {		sc->sc_flags |= DEV_EOM;	} else {		if(dis_eot_tu[unit] != DISEOT)			sc->sc_flags &= ~(DEV_EOM|DEV_CSE);	}	if (bp == &chtbuf[htunit]) {		switch (bp->b_command) {		case HT_REWOFFL:			sc->sc_flags |= DEV_OFFLINE;			ds |= HTDS_MOL;			break;		case HT_SREV:			sc->sc_category_flags &= ~DEV_RWDING;			if (er == (HTER_NEF|HTER_FCE) && ds & HTDS_BOT &&			    bp->b_repcnt == INF) {				er &= ~HTER_NEF;				sc->sc_flags |= DEV_BOM;			}			break;		}		er &= ~HTER_FCE;		if (er == 0)			ds &= ~HTDS_ERR;	}	if ((ds & (HTDS_ERR|HTDS_MOL)) != HTDS_MOL) {		sc->sc_flags |= DEV_HARDERR;		sc->sc_hardcnt++;		if ((ds & HTDS_MOL) == 0 && sc->sc_openf > 0) {			sc->sc_flags |= DEV_OFFLINE;			sc->sc_openf = -1;		}		mprintf("%s: unit#:%d hard err blk#:%d \		        htcs1:%x htds:%x hter:%x htmr:%x htas:%x \			htfc:%x htdt:%x htck:%x htsn:%x httc:%x\n",			sc->sc_device, unit, bp->b_blkno,			ht_regs[0], ht_regs[1], ht_regs[2], ht_regs[3],			ht_regs[4], ht_regs[5], ht_regs[6], ht_regs[7],			ht_regs[8], ht_regs[9]);		bp->b_flags |= B_ERROR;		sc->sc_flags |= DEV_DONE;		return (MBN_DONE);	}	if (bp == &chtbuf[htunit]) {		if (sc->sc_category_flags & DEV_RWDING) {			if (ds & HTDS_BOT) {				sc->sc_flags |= (DEV_DONE | DEV_BOM);				sc->sc_dsreg &= ~HTDS_EOT;			} else {				sc->sc_flags |= DEV_RETRY;			}			return (ds & HTDS_BOT ? MBN_DONE : MBN_RETRY);		}	bp->b_resid = -sc->sc_resid;	sc->sc_flags |= DEV_DONE;	return (MBN_DONE);	}	if (ds & HTDS_TM) {		sc->sc_category_flags |= DEV_TPMARK;		if (sc->sc_blkno > bdbtofsb(bp->b_blkno)) {			sc->sc_nxrec = bdbtofsb(bp->b_blkno) - fc;			sc->sc_blkno = sc->sc_nxrec;		} else {			sc->sc_blkno = bdbtofsb(bp->b_blkno) + fc;			sc->sc_nxrec = sc->sc_blkno - 1;		}	} else		sc->sc_blkno = bdbtofsb(bp->b_blkno);	sc->sc_flags |= DEV_RETRY;	return (MBN_RETRY);}htread(dev, uio)	register dev_t dev;	register struct uio *uio;{	register int htunit = HTUNIT(dev);	return (physio(htstrategy, &rhtbuf[htunit], dev, B_READ,		minphys, uio));}htwrite(dev, uio)	register dev_t dev;	register struct uio *uio;{	register int htunit = HTUNIT(dev);	return (physio(htstrategy, &rhtbuf[htunit], dev, B_WRITE,		minphys, uio));}htioctl(dev, cmd, data, flag)	dev_t dev;	register int cmd;	caddr_t data;	int flag;{	register struct mba_device *mi = htinfo[HTUNIT(dev)];	register struct tu_softc *sc = &tu_softc[UNIT(dev)];	register struct buf *bp = &chtbuf[HTUNIT(dev)];	register int callcount;	register int fcount;	struct mtop *mtop;	struct mtget *mtget;	struct devget *devget;	int unit = UNIT(dev);	/* we depend of the values and order of the MT codes here */	static htops[] = { HT_WEOF,HT_SFORW,HT_SREV,HT_SFORW,HT_SREV,			   HT_REW,HT_REWOFFL,HT_SENSE };	switch (cmd) {	case MTIOCTOP:				/* tape operation */		mtop = (struct mtop *)data;		switch (mtop->mt_op) {		case MTWEOF:			callcount = mtop->mt_count;			fcount = 1;			break;		case MTFSF: case MTBSF:			callcount = mtop->mt_count;			fcount = INF;			break;		case MTFSR: case MTBSR:			callcount = 1;			fcount = mtop->mt_count;			break;		case MTREW: case MTOFFL:			sc->sc_flags &= ~DEV_EOM;			callcount = 1;			fcount = 1;			break;		case MTNOP: case MTCACHE:		case MTNOCACHE: 			return(0);		case MTCSE:			sc->sc_flags |= DEV_CSE;			sc->sc_category_flags &= ~DEV_TPMARK;			return(0);		case MTCLX: case MTCLS:			return(0);		case MTENAEOT:			dis_eot_tu[unit] = 0;			return(0);		case MTDISEOT:			dis_eot_tu[unit] = DISEOT;			sc->sc_flags &= ~DEV_EOM;			return(0);			case MTFLUSH:			/*			 * Flush controller's write back cache.  Since this			 * driver can not support this functionality, return			 * ENXIO to indicate the lack of support.			 */			return (ENXIO);		default:			return (ENXIO);		}		if (callcount <= 0 || fcount <= 0)			return (EINVAL);		while (--callcount >= 0) {			htcommand(dev, htops[mtop->mt_op], fcount);			if ((mtop->mt_op == MTFSR || mtop->mt_op			    == MTBSR) && bp->b_resid) {				return (EIO);			}			if ((bp->b_flags & B_ERROR) ||			    sc->sc_dsreg & HTDS_BOT) {				break;			}		}		return (geterror(bp));	case MTIOCGET:				/* tape status */		mtget = (struct mtget *)data;		mtget->mt_dsreg = sc->sc_dsreg;		mtget->mt_erreg = sc->sc_erreg;		mtget->mt_resid = sc->sc_resid;		mtget->mt_type = MT_ISHT;		break;	case DEVIOCGET: 			/* device status */		devget = (struct devget *)data;		bzero(devget,sizeof(struct devget));		devget->category = DEV_TAPE;		devget->bus = DEV_MB;		bcopy(DEV_TM03,devget->interface,		      strlen(DEV_TM03));		bcopy(sc->sc_device,devget->device,		      strlen(sc->sc_device));		devget->adpt_num = mi->mi_adpt; 	/* which adapter*/		devget->nexus_num = mi->mi_nexus;	/* which nexus	*/		devget->bus_num = mi->mi_mbanum;	/* which MBA	*/		devget->ctlr_num = mi->mi_drive;	/* which TM03	*/		devget->slave_num = sc->sc_slave;	/* which plug	*/		bcopy(mi->mi_driver->md_sname,		      devget->dev_name,		      strlen(mi->mi_driver->md_sname)); /* Ult. "t[eu]" */		devget->unit_num = unit;		/* which t[eu]??*/		devget->soft_count = sc->sc_softcnt;	/* soft er. cnt.*/		devget->hard_count = sc->sc_hardcnt;	/* hard er. cnt.*/		devget->stat = sc->sc_flags;		/* status	*/		devget->category_stat = sc->sc_category_flags;	/* c.st.*/		break;	default:		return (ENXIO);	}	return (0);}htdump(){	register struct mba_device *mi;	register struct mba_regs *mp;	register struct htdevice *htaddr;	register int blk;	register int num;	register int start;	start = 0;	num = maxfree;	if (htinfo[0] == 0)		return (ENXIO);	mi = PHYS(htinfo[0], struct mba_device *);	mp = PHYS(mi->mi_hd, struct mba_hd *)->mh_physmba;	mp->mba_cr = MBCR_IE;	htaddr = (struct htdevice *)&mp->mba_drv[mi->mi_drive];	htaddr->httc = HTTC_PDP11|HTTC_1600BPI;	htaddr->htcs1 = HT_DCLR|HT_GO;	while (num > 0) {		blk = num > DBSIZE ? DBSIZE : num;		htdwrite(start, blk, htaddr, mp);		start += blk;		num -= blk;	}	hteof(htaddr);	hteof(htaddr);	htwait(htaddr);	if (htaddr->htds&HTDS_ERR)		return (EIO);	htaddr->htcs1 = HT_REW|HT_GO;	return (0);}htdwrite(dbuf, num, htaddr, mp)	register int dbuf;	register int num;	register struct htdevice *htaddr;	register struct mba_regs *mp;{	register struct pte *io;	register int i;	htwait(htaddr);	io = mp->mba_map;	for (i = 0; i < num; i++)		*(int *)io++ = dbuf++ | PG_V;	htaddr->htfc = -(num*NBPG);	mp->mba_sr = -1;	mp->mba_bcr = -(num*NBPG);	mp->mba_var = 0;	htaddr->htcs1 = HT_WCOM|HT_GO;}htwait(htaddr)	register struct htdevice *htaddr;{	register int s;	do		s = htaddr->htds;	while ((s & HTDS_DRY) == 0);}hteof(htaddr)	register struct htdevice *htaddr;{	htwait(htaddr);	htaddr->htcs1 = HT_WEOF|HT_GO;}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲视频一区二区在线观看| 国产一区二区三区精品视频| 精品动漫一区二区三区在线观看| 久久国产精品无码网站| 日韩久久久久久| 6080午夜不卡| 91久久精品午夜一区二区| 国产91精品一区二区麻豆网站| 久久99九九99精品| 久久精品一级爱片| 久久在线免费观看| 精品欧美黑人一区二区三区| 在线观看日韩电影| 粉嫩aⅴ一区二区三区四区| 日韩精品免费专区| 韩国精品一区二区| 午夜av区久久| 久久精品国产精品青草| 免费看日韩精品| 国内精品国产成人国产三级粉色| 奇米亚洲午夜久久精品| 韩国三级在线一区| 不卡的电影网站| 欧美日韩精品一区二区在线播放| 欧美色视频在线观看| 91蜜桃网址入口| 成人aaaa免费全部观看| 国产高清久久久| 加勒比av一区二区| 丁香桃色午夜亚洲一区二区三区| 色婷婷综合久久久久中文一区二区| 欧美日韩国产高清一区二区 | 欧美欧美午夜aⅴ在线观看| 99久久99久久综合| 日韩一级片网站| 一区二区视频在线看| 同产精品九九九| 精品一区二区三区欧美| 成人午夜视频福利| 26uuu精品一区二区三区四区在线| 1024成人网| 精品一区二区三区免费视频| 蜜桃免费网站一区二区三区| 成人黄色电影在线| www日韩大片| 免费看欧美女人艹b| 99久久亚洲一区二区三区青草| 欧美一区二区在线看| 亚洲蜜臀av乱码久久精品蜜桃| 久久99久久精品| 精品国产污网站| 亚洲超碰97人人做人人爱| 91丝袜高跟美女视频| 中文字幕欧美一区| 国产69精品一区二区亚洲孕妇| 久久综合久久久久88| 激情亚洲综合在线| 国产色爱av资源综合区| 国产麻豆午夜三级精品| 精品国产一区二区在线观看| 午夜精品影院在线观看| 欧美精品日韩精品| 日韩福利电影在线| 国产日韩欧美一区二区三区综合| 一区二区在线电影| 欧美日韩一区二区在线观看视频 | 激情综合色综合久久| 欧美不卡激情三级在线观看| 亚洲成人免费观看| 久久久精品国产免费观看同学| 国产成人在线视频播放| 国产精品福利影院| 国产高清无密码一区二区三区| 欧美在线小视频| 精品一区二区三区免费毛片爱 | 国产精品一区在线观看乱码| 26uuu国产日韩综合| 99久久国产综合精品麻豆| 一区二区三区四区乱视频| 精品美女在线播放| 成人久久视频在线观看| 亚洲午夜日本在线观看| 欧美一区二区三区四区视频| 色屁屁一区二区| 激情五月激情综合网| 午夜影院久久久| 亚洲资源中文字幕| 久久午夜色播影院免费高清| 欧美疯狂做受xxxx富婆| 91蜜桃网址入口| av中文字幕在线不卡| 免费观看30秒视频久久| 日韩国产欧美在线视频| 欧美精品一区二区在线播放 | 成人av在线资源网站| 日韩国产精品久久| 亚洲成人先锋电影| 亚洲欧美日韩小说| 亚洲精品成a人| 久久这里只有精品首页| 91精品国产一区二区三区| 在线视频你懂得一区| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 亚洲欧洲成人自拍| 国产欧美一区二区三区鸳鸯浴 | 色婷婷综合久色| 日韩欧美的一区| 亚洲视频1区2区| 久久99国产精品免费| 粉嫩久久99精品久久久久久夜| 成人午夜看片网址| 欧美男生操女生| 欧美激情在线一区二区三区| 一区二区三区不卡在线观看| 天堂va蜜桃一区二区三区| 国产一区二区福利视频| 在线看国产日韩| 久久精品人人做人人综合| 亚洲视频狠狠干| 国产综合久久久久久鬼色| 欧美揉bbbbb揉bbbbb| 欧美国产精品v| 国产精品综合在线视频| 欧美日产在线观看| 精品国产三级电影在线观看| 亚洲欧美另类久久久精品2019| 国精产品一区一区三区mba桃花| 91久久香蕉国产日韩欧美9色| 久久久久高清精品| 麻豆精品一区二区av白丝在线| 欧美电影免费观看高清完整版| 专区另类欧美日韩| 91日韩精品一区| 亚洲欧美激情视频在线观看一区二区三区| 国产乱人伦偷精品视频免下载| 精品免费一区二区三区| 国产精一区二区三区| 久久精品视频一区二区三区| 日韩电影免费一区| 51精品视频一区二区三区| 午夜一区二区三区在线观看| 欧美午夜精品久久久久久孕妇| 亚洲欧美另类小说| 欧美日韩在线精品一区二区三区激情 | 欧美精品一区二区三区高清aⅴ| 极品少妇xxxx精品少妇| 中文字幕精品在线不卡| 成人av在线影院| 亚洲综合色自拍一区| 欧美一区二区高清| 成人手机在线视频| 亚洲一区二区三区四区在线观看| 欧美三级午夜理伦三级中视频| 蜜桃视频在线一区| 亚洲黄色录像片| 日韩免费看的电影| 99国产精品一区| 精品系列免费在线观看| 中文字幕综合网| 久久久久高清精品| 欧美四级电影网| 92精品国产成人观看免费| 视频一区二区三区在线| 中文字幕第一区| 精品国产伦一区二区三区免费 | 国产精品二三区| 久久久久免费观看| 欧美日韩国产高清一区二区三区| 国产精品18久久久久久久久久久久| 亚洲精品亚洲人成人网在线播放| 欧美电影精品一区二区| 欧美日韩精品免费| 99热国产精品| 91色在线porny| 成人av片在线观看| 日韩精品五月天| 亚洲国产一区视频| 亚洲在线中文字幕| 亚洲1区2区3区4区| 亚洲午夜成aⅴ人片| 午夜成人免费视频| 蜜桃精品视频在线观看| 亚洲一区二区在线观看视频 | 精品亚洲欧美一区| 国产精品一区二区三区四区 | 欧美一二三在线| 欧美日韩电影在线播放| 欧美一级理论片| 日韩精品一区二区三区四区视频| 欧美电影免费观看高清完整版在线 | 一区二区三区久久| 亚欧色一区w666天堂| 国产主播一区二区三区| 六月丁香婷婷色狠狠久久| 久久99蜜桃精品| jlzzjlzz亚洲日本少妇| 欧美色中文字幕| 国产精品少妇自拍| 日欧美一区二区| 成人天堂资源www在线|