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

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

?? ht.c

?? unix v7是最后一個廣泛發布的研究型UNIX版本
?? C
字號:
/* * TJU16 tape driver */#include "../h/param.h"#include "../h/systm.h"#include "../h/buf.h"#include "../h/conf.h"#include "../h/dir.h"#include "../h/file.h"#include "../h/user.h"struct	device{	int	htcs1;	int	htwc;	caddr_t	htba;	int	htfc;	int	htcs2;	int	htds;	int	hter;	int	htas;	int	htck;	int	htdb;	int	htmr;	int	htdt;	int	htsn;	int	httc;	int	htbae;	/* 11/70 bus extension */	int	htcs3;};struct	buf	httab;struct	buf	rhtbuf;struct	buf	chtbuf;#define	NUNIT	1#define	INF	1000000char	h_flags[NUNIT];char	h_openf[NUNIT];daddr_t	h_blkno[NUNIT];daddr_t	h_nxrec[NUNIT];#define	HTADDR	((struct device *)0172440)#define	GO	01#define	WCOM	060#define	RCOM	070#define	NOP	0#define	WEOF	026#define	SFORW	030#define	SREV	032#define	ERASE	024#define	REW	06#define	DCLR	010#define P800	01300		/* 800 + pdp11 mode */#define	P1600	02300		/* 1600 + pdp11 mode */#define	IENABLE	0100#define	RDY	0200#define	TM	04#define	DRY	0200#define EOT	02000#define CS	02000#define COR	0100000#define PES	040#define WRL	04000#define MOL	010000#define ERR	040000#define FCE	01000#define	TRE	040000#define HARD	064023	/* UNS|OPI|NEF|FMT|RMR|ILR|ILF */#define	CLR	040	/* controller clear (in cs2) */#define	NED	010000#define	SIO	1#define	SSFOR	2#define	SSREV	3#define SRETRY	4#define SCOM	5#define SOK	6#define H_WRITTEN 1htopen(dev, flag){	register unit, ds;	httab.b_flags |= B_TAPE;	unit = minor(dev) & 077;	if (unit >= NUNIT || h_openf[unit]) {		u.u_error = ENXIO;		return;	}	h_blkno[unit] = 0;	h_nxrec[unit] = INF;	h_flags[unit] = 0;	ds = hcommand(dev, NOP);	if ((ds&MOL)==0 || (flag && (ds&WRL)))		u.u_error = ENXIO;	if (u.u_error==0)		h_openf[unit]++;}htclose(dev, flag){	register int unit;	unit = minor(dev) & 077;	if (flag == FWRITE || ((flag&FWRITE) && (h_flags[unit]&H_WRITTEN))) {		hcommand(dev, WEOF);		hcommand(dev, WEOF);		hcommand(dev, SREV);	}	if ((minor(dev)&0200) == 0)		hcommand(dev, REW);	h_openf[unit] = 0;}hcommand(dev, com){	register struct buf *bp;	bp = &chtbuf;	spl5();	while(bp->b_flags&B_BUSY) {		bp->b_flags |= B_WANTED;		sleep((caddr_t)bp, PRIBIO);	}	spl0();	bp->b_dev = dev;	bp->b_resid = com;	bp->b_blkno = 0;	bp->b_flags = B_BUSY|B_READ;	htstrategy(bp);	iowait(bp);	if(bp->b_flags&B_WANTED)		wakeup((caddr_t)bp);	bp->b_flags = 0;	return(bp->b_resid);}htstrategy(bp)register struct buf *bp;{	register daddr_t *p;	if(bp != &chtbuf) {		p = &h_nxrec[minor(bp->b_dev)&077];		if(bp->b_blkno > *p) {			bp->b_flags |= B_ERROR;			bp->b_error = ENXIO;			iodone(bp);			return;		}		if(bp->b_blkno == *p && bp->b_flags&B_READ) {			clrbuf(bp);			bp->b_resid = bp->b_bcount;			iodone(bp);			return;		}		if ((bp->b_flags&B_READ)==0) {			*p = bp->b_blkno + 1;			h_flags[minor(bp->b_dev)&077] |= H_WRITTEN;		}	}	bp->av_forw = NULL;	spl5();	if (httab.b_actf == NULL)		httab.b_actf = bp;	else		httab.b_actl->av_forw = bp;	httab.b_actl = bp;	if (httab.b_active==0)		htstart();	spl0();}htstart(){	register struct buf *bp;	register unit, den;	daddr_t blkno;    loop:	if ((bp = httab.b_actf) == NULL)		return;	unit = minor(bp->b_dev) & 0177;	HTADDR->htcs2 = ((unit>>3)&07);	den = P1600 | (unit&07);	if(unit > 077)		den = P800 | (unit&07);	if((HTADDR->httc&03777) != den)		HTADDR->httc = den;	if (HTADDR->htcs2 & NED || (HTADDR->htds&MOL)==0)		goto abort;	unit &= 077;	blkno = h_blkno[unit];	if (bp == &chtbuf) {		if (bp->b_resid==NOP) {			bp->b_resid = HTADDR->htds;			goto next;		}		httab.b_active = SCOM;		HTADDR->htfc = 0;		HTADDR->htcs1 = bp->b_resid|IENABLE|GO;		return;	}	if (h_openf[unit] < 0 || bp->b_blkno > h_nxrec[unit])		goto abort;	if (blkno == bp->b_blkno) {		httab.b_active = SIO;		HTADDR->htba = bp->b_un.b_addr;		if(cputype == 70)			HTADDR->htbae = bp->b_xmem;		HTADDR->htfc = -bp->b_bcount;		HTADDR->htwc = -(bp->b_bcount>>1);		den = ((bp->b_xmem&3) << 8) | IENABLE | GO;		if(bp->b_flags & B_READ)			den |= RCOM;		else {			if(HTADDR->htds & EOT) {				bp->b_resid = bp->b_bcount;				goto next;			}			den |= WCOM;		}		HTADDR->htcs1 = den;	} else {		if (blkno < bp->b_blkno) {			httab.b_active = SSFOR;			HTADDR->htfc = blkno - bp->b_blkno;			HTADDR->htcs1 = SFORW|IENABLE|GO;		} else {			httab.b_active = SSREV;			HTADDR->htfc = bp->b_blkno - blkno;			HTADDR->htcs1 = SREV|IENABLE|GO;		}	}	return;    abort:	bp->b_flags |= B_ERROR;    next:	httab.b_actf = bp->av_forw;	iodone(bp);	goto loop;}htintr(){	register struct buf *bp;	register int unit, state;	int	err;	if ((bp = httab.b_actf)==NULL)		return;	unit = minor(bp->b_dev) & 077;	state = httab.b_active;	httab.b_active = 0;	if (HTADDR->htcs1&TRE) {		err = HTADDR->hter;		if (HTADDR->htcs2&077400 || (err&HARD))			state = 0;		if (bp == &rhtbuf)			err &= ~FCE;		if ((bp->b_flags&B_READ) && (HTADDR->htds&PES))			err &= ~(CS|COR);		if((HTADDR->htds&MOL) == 0) {			if(h_openf[unit])				h_openf[unit] = -1;		}		else if(HTADDR->htds&TM) {			HTADDR->htwc = -(bp->b_bcount>>1);			h_nxrec[unit] = bp->b_blkno;			state = SOK;		}		else if(state && err == 0)			state = SOK;		if(httab.b_errcnt > 4)			deverror(bp, HTADDR->hter, HTADDR->htcs2);		htinit();		if (state==SIO && ++httab.b_errcnt < 10) {			httab.b_active = SRETRY;			h_blkno[unit]++;			HTADDR->htfc = -1;			HTADDR->htcs1 = SREV|IENABLE|GO;			return;		}		if (state!=SOK) {			bp->b_flags |= B_ERROR;			state = SIO;		}	} else if (HTADDR->htcs1 < 0) {	/* SC */		if(HTADDR->htds & ERR)			htinit();	}	switch(state) {	case SIO:	case SOK:		h_blkno[unit]++;	case SCOM:		httab.b_errcnt = 0;		httab.b_actf = bp->av_forw;		iodone(bp);		bp->b_resid = (-HTADDR->htwc)<<1;		break;	case SRETRY:		if((bp->b_flags&B_READ)==0) {			httab.b_active = SSFOR;			HTADDR->htcs1 = ERASE|IENABLE|GO;			return;		}	case SSFOR:	case SSREV:		if(HTADDR->htds & TM) {			if(state == SSREV) {				h_nxrec[unit] = bp->b_blkno - HTADDR->htfc;				h_blkno[unit] = h_nxrec[unit];			} else {				h_nxrec[unit] = bp->b_blkno + HTADDR->htfc - 1;				h_blkno[unit] = h_nxrec[unit]+1;			}		} else			h_blkno[unit] = bp->b_blkno;		break;	default:		return;	}	htstart();}htinit(){	register ocs2;	register omttc;		omttc = HTADDR->httc & 03777;	/* preserve old slave select, dens, format */	ocs2 = HTADDR->htcs2 & 07;	/* preserve old unit */	HTADDR->htcs2 = CLR;	HTADDR->htcs2 = ocs2;	HTADDR->httc = omttc;	HTADDR->htcs1 = DCLR|GO;}htread(dev){	htphys(dev);	physio(htstrategy, &rhtbuf, dev, B_READ);}htwrite(dev){	htphys(dev);	physio(htstrategy, &rhtbuf, dev, B_WRITE);}htphys(dev){	register unit;	daddr_t a;	unit = minor(dev) & 077;	if(unit < NUNIT) {		a = u.u_offset >> 9;		h_blkno[unit] = a;		h_nxrec[unit] = a+1;	}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕第一区综合| 中文字幕亚洲在| 色综合久久88色综合天天免费| 亚洲1区2区3区视频| 欧美国产精品专区| 欧美一二三四在线| 91官网在线免费观看| 成人免费黄色在线| 精品一区二区三区免费| 亚洲综合偷拍欧美一区色| 中文字幕乱码亚洲精品一区| 日韩欧美中文一区二区| 欧美视频中文一区二区三区在线观看| 国产精品白丝jk黑袜喷水| 热久久免费视频| 亚洲精品大片www| 国产精品嫩草久久久久| 久久亚洲欧美国产精品乐播| 欧美一区二区三区在线视频| 在线观看视频一区二区| 91在线无精精品入口| 不卡的电影网站| 国产.欧美.日韩| 国产成人精品在线看| 国产一区二区在线免费观看| 蜜桃久久精品一区二区| 免播放器亚洲一区| 日精品一区二区| 日韩高清中文字幕一区| 日韩高清不卡一区二区三区| 午夜精品久久久久影视| 亚洲成人一二三| 丝袜美腿亚洲一区| 日韩和的一区二区| 日韩国产成人精品| 男人的j进女人的j一区| 久久国产精品区| 国产一区二区三区日韩| 国产经典欧美精品| 成人国产精品免费| 99国产精品国产精品久久| 91麻豆国产福利在线观看| 99久久精品免费精品国产| 色婷婷久久久久swag精品| 欧美在线一二三| 在线播放亚洲一区| 精品国偷自产国产一区| 国产日韩精品一区二区浪潮av| 久久精品欧美一区二区三区麻豆| 国产日韩亚洲欧美综合| 国产精品乱子久久久久| 亚洲美女少妇撒尿| 日日摸夜夜添夜夜添国产精品 | 国产精选一区二区三区| 国内成人免费视频| 豆国产96在线|亚洲| 91网站最新地址| 777亚洲妇女| 久久蜜桃一区二区| 亚洲视频小说图片| 天堂久久久久va久久久久| 久久av资源站| 不卡高清视频专区| 欧美男人的天堂一二区| 精品sm捆绑视频| 一区在线中文字幕| 肉丝袜脚交视频一区二区| 国产一区二区看久久| 99精品视频免费在线观看| 欧美日韩卡一卡二| 久久久久国产成人精品亚洲午夜| 中文字幕在线观看一区二区| 五月婷婷综合网| 国产成人一区在线| 欧美影院精品一区| 久久精品视频免费观看| 亚洲成人激情av| 国产精品一区二区男女羞羞无遮挡 | 国产欧美一区二区三区在线看蜜臀| 中文字幕在线一区免费| 日韩电影网1区2区| fc2成人免费人成在线观看播放 | 国产综合一区二区| 91搞黄在线观看| 久久精品免视看| 图片区小说区区亚洲影院| 成人黄色大片在线观看| 日韩欧美成人午夜| 一区二区三区欧美亚洲| 国产一区视频导航| 5566中文字幕一区二区电影| 国产精品乱码久久久久久| 日韩中文字幕区一区有砖一区| 99视频在线精品| 欧美成人一区二区三区片免费| 亚洲精品视频在线看| 国内久久精品视频| 91精品国产综合久久久蜜臀粉嫩| 国产精品免费久久久久| 久久99精品国产麻豆婷婷洗澡| 欧美中文字幕不卡| 综合久久久久综合| 国产精品69毛片高清亚洲| 7777精品伊人久久久大香线蕉的 | 日韩一区二区三区电影| 亚洲一区二区欧美激情| 99久久精品一区| 国产欧美一区二区在线观看| 日本免费在线视频不卡一不卡二 | 在线免费观看日韩欧美| 国产精品视频看| 国产毛片精品国产一区二区三区| 欧美一区三区四区| 亚洲综合视频在线| 日本乱人伦一区| 亚洲欧洲精品一区二区三区 | 亚洲bt欧美bt精品| 色88888久久久久久影院按摩| 中文字幕电影一区| 成人综合婷婷国产精品久久蜜臀| 久久综合九色综合97婷婷| 日本中文字幕不卡| 日韩一级高清毛片| 男人的j进女人的j一区| 91 com成人网| 天天综合网天天综合色| 欧美人妇做爰xxxⅹ性高电影| 亚洲成人综合在线| 欧美男同性恋视频网站| 三级影片在线观看欧美日韩一区二区| 日本韩国一区二区| 亚洲国产一区二区视频| 欧美日韩小视频| 丝袜亚洲精品中文字幕一区| 欧美乱妇23p| 蜜臀精品一区二区三区在线观看| 777久久久精品| 免费高清成人在线| 精品久久五月天| 国产精品香蕉一区二区三区| 国产亲近乱来精品视频 | 欧美一级黄色大片| 久久97超碰色| 日本一区二区三区四区| 成人国产精品免费观看动漫| 亚洲视频精选在线| 欧美三级中文字幕| 捆绑调教美女网站视频一区| 久久久久久久久岛国免费| 风间由美一区二区三区在线观看 | 成人性生交大片免费看中文| 国产精品视频一二三区| 91首页免费视频| 亚洲国产一区二区在线播放| 日韩一级大片在线观看| 国产精品亚洲专一区二区三区 | 国产九色sp调教91| 亚洲欧美在线视频| 欧美精品vⅰdeose4hd| 国产在线精品一区二区不卡了| 中文字幕av一区 二区| 色婷婷av一区二区三区gif| 亚洲v精品v日韩v欧美v专区| 精品日韩成人av| 97se亚洲国产综合自在线不卡 | 亚洲一区在线视频观看| 日韩午夜在线播放| kk眼镜猥琐国模调教系列一区二区 | 成人美女在线观看| 亚洲成年人影院| 国产午夜精品美女毛片视频| 色婷婷激情一区二区三区| 蜜桃av一区二区三区| 亚洲欧洲精品天堂一级| 91精品久久久久久久91蜜桃| 国产成+人+日韩+欧美+亚洲| 亚洲香肠在线观看| 久久久久国产成人精品亚洲午夜 | 欧美一级日韩免费不卡| 不卡在线视频中文字幕| 亚洲v日本v欧美v久久精品| 亚洲国产激情av| 欧美日韩1区2区| 成人av手机在线观看| 日本亚洲电影天堂| 亚洲欧美一区二区不卡| 精品入口麻豆88视频| 91久久一区二区| 成人一级视频在线观看| 免费在线观看视频一区| 亚洲精品日韩综合观看成人91| 精品国产三级a在线观看| 欧美色网一区二区| 成人免费精品视频| 韩国成人福利片在线播放| 午夜婷婷国产麻豆精品| 17c精品麻豆一区二区免费| 精品国产91洋老外米糕| 欧美日韩视频第一区| 色综合久久中文综合久久97|