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

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

?? du.c

?? unix v7是最后一個廣泛發布的研究型UNIX版本
?? C
字號:
/* * DU-11 Synchronous interface driver */#include "../h/param.h"#include "../h/systm.h"#include "../h/dir.h"#include "../h/user.h"#include "../h/buf.h"/* device registers */struct dureg {	int	rxcsr, rxdbuf;#define	parcsr	rxdbuf	int	txcsr, txdbuf;};struct du {	struct dureg	*du_addr;	int		du_state;	struct proc	*du_proc;	struct buf	*du_buf;	caddr_t		du_bufb;	caddr_t		du_bufp;	int		du_nxmit;	int		du_timer;} du[] = {	{ (struct dureg *) 0160110 },};#define	NDU	(sizeof(du)/sizeof(du[0]))#define	DONE	0200#define	IE	0100#define	SIE	040#define CTS	020000#define	CARRIER	010000#define	RCVACT	04000#define	DSR	01000#define STRIP	0400#define SCH	020#define RTS	04#define	DTR	02#define MR	0400#define SEND	020#define	HALF	010#define	READ	0#define	WRITE	1#define PWRIT	2#define	DUPRI	(PZERO+1)duopen(dev)register dev;{	int dutimeout();	register struct du *dp;	register struct dureg *lp;	dev = minor(dev);	if (dev >= NDU ||	   ((dp = &du[dev])->du_proc!=NULL && dp->du_proc!=u.u_procp)) {		u.u_error = ENXIO;		return;	}	dp->du_proc = u.u_procp;	lp = dp->du_addr;	if (dp->du_buf==NULL) {		dp->du_buf = geteblk();		dp->du_bufb = dp->du_buf->b_un.b_addr;		dp->du_state = WRITE;		lp->txcsr = MR;		lp->parcsr = 035026;		/* Sync Int, 7 bits, even parity, sync=026 */		timeout(dutimeout, (caddr_t)dp, HZ);		duturn(dp);	}}duclose(dev){	register struct du *dp;	register struct dureg *lp;	dp = &du[minor(dev)];	lp = dp->du_addr;	lp->rxcsr = 0;	lp->txcsr = 0;	dp->du_timer = 0;	dp->du_proc = 0;	if (dp->du_buf != NULL) {		brelse(dp->du_buf);		dp->du_buf = NULL;	}}duread(dev){	register char *bp;	register struct du *dp;	dp = &du[minor(dev)];	bp = dp->du_bufb;	for(;;) {		if(duwait(dev))			return;		if (dp->du_bufp > bp)			break;		spl6();		if (dp->du_timer <= 1) {			spl0();			return;		}		sleep((caddr_t)dp, DUPRI);		spl0();	}	u.u_offset = 0;	iomove(dp->du_bufb, (int)min(u.u_count, (unsigned)(dp->du_bufp-bp)), B_READ);}duwrite(dev){	register struct du *dp;	register struct dureg *lp;	dev = minor(dev);	dp = &du[dev];	if (u.u_count==0 || duwait(dev))		return;	dp->du_bufp = dp->du_bufb;	dp->du_state = PWRIT;	dp->du_addr->rxcsr &= ~SCH;	dp->du_addr->rxcsr = SIE|RTS|DTR;	if (u.u_count > BSIZE)		u.u_count = BSIZE;	dp->du_nxmit = u.u_count;	u.u_offset = 0;	iomove(dp->du_bufb, (int)u.u_count, B_WRITE);	lp = dp->du_addr;	dp->du_timer = 10;	spl6();	while((lp->rxcsr&CTS)==0)		sleep((caddr_t)dp, DUPRI);	if (dp->du_state != WRITE) {		dp->du_state = WRITE;		lp->txcsr = IE|SIE|SEND|HALF;		dustart(dev);	}	spl0();}duwait(dev){	register struct du *dp;	register struct dureg *lp;	dp = &du[minor(dev)];	lp = dp->du_addr;	for(;;) {		if ((lp->rxcsr&DSR)==0 || dp->du_buf==0) {			u.u_error = EIO;			return(1);		}		spl6();		if (dp->du_state==READ &&			((lp->rxcsr&RCVACT)==0)) {			spl0();			return(0);		}		sleep((caddr_t)dp, DUPRI);		spl0();	}}dustart(dev){	register struct du *dp;	register struct dureg *lp;	dp = &du[minor(dev)];	lp = dp->du_addr;	dp->du_timer = 10;	if (dp->du_nxmit > 0) {		dp->du_nxmit--;		lp->txdbuf = *dp->du_bufp++;	} else {		duturn(dp);	}}durint(dev){	register struct du *dp;	register c, s;	int dustat;	dp = &du[minor(dev)];	dustat = dp->du_addr->rxcsr;	if(dustat<0) {		if((dustat&CARRIER)==0 && dp->du_state==READ)			duturn(dp);		else			wakeup((caddr_t)dp);	} else	if(dustat&DONE) {		dp->du_addr->rxcsr = IE|SIE|SCH|DTR;		c = s = dp->du_addr->rxdbuf;		c &= 0177;		if(s<0)			c |= 0200;		if (dp->du_bufp < dp->du_bufb+BSIZE)			*dp->du_bufp++ = c;	}}duxint(dev){	register struct du *dp;	register struct dureg *lp;	register int dustat;	dp = &du[minor(dev)];	lp = dp->du_addr;	dustat = lp->txcsr;	if(dustat<0)		duturn(dp);	else if(dustat&DONE)		dustart(dev);}duturn(dp)register struct du *dp;{	register struct dureg *lp;	lp = dp->du_addr;	if (dp->du_state!=READ) {		dp->du_state = READ;		dp->du_timer = 10;		dp->du_bufp = dp->du_bufb;	}	lp->txcsr = HALF;	lp->rxcsr &= ~SCH;	lp->rxcsr = STRIP|IE|SIE|SCH|DTR;	wakeup((caddr_t)dp);}dutimeout(dp)register struct du *dp;{	if (dp->du_timer == 0)		return;	if (--dp->du_timer == 0) {		duturn(dp);		dp->du_timer = 1;	}	timeout(dutimeout, (caddr_t)dp, HZ);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲人成网站| 色综合天天性综合| 爽好久久久欧美精品| 亚洲色图在线播放| 中文字幕亚洲在| 中文字幕在线观看一区二区| 国产欧美一区二区精品性色超碰 | 成人av影视在线观看| 狠狠色2019综合网| 久久精品国产亚洲aⅴ| 麻豆一区二区三| 精品一区二区在线看| 精品一区二区精品| 国产精品一区二区三区四区| 国产一区二区三区视频在线播放| 国产麻豆欧美日韩一区| 国产乱妇无码大片在线观看| 国产精品99久久久| 99久久99久久久精品齐齐| 色婷婷综合久久久久中文| 欧美亚洲丝袜传媒另类| 日韩一级片网站| 久久嫩草精品久久久久| 亚洲欧洲av在线| 亚洲国产精品一区二区www| 日韩av一级片| 国产91精品精华液一区二区三区 | 欧美一区二区福利在线| 精品动漫一区二区三区在线观看| 2020国产精品自拍| 日韩美女视频19| 日本视频在线一区| 成人小视频免费观看| 欧美三区在线观看| 国产亚洲欧洲一区高清在线观看| ...xxx性欧美| 久久激情五月婷婷| 99精品黄色片免费大全| 欧美一区二区三区四区视频| 国产女人aaa级久久久级| 亚洲国产成人av网| 成人精品免费视频| 日韩午夜av一区| 亚洲精品日日夜夜| 国产伦精品一区二区三区在线观看| 91网页版在线| 久久综合久久综合久久| 亚洲小说春色综合另类电影| 国产伦理精品不卡| 日韩欧美综合一区| 亚洲电影一区二区三区| 国产91丝袜在线观看| 欧美人妇做爰xxxⅹ性高电影| 国产精品美日韩| 国产一区二区三区在线观看免费 | 国产精品一区免费视频| 欧美在线一区二区三区| 国产日韩欧美一区二区三区综合| 亚洲成av人片在线| 91视频91自| 欧美激情一区二区三区不卡 | 午夜精品在线看| 99v久久综合狠狠综合久久| 26uuu色噜噜精品一区二区| 午夜一区二区三区视频| 色综合天天综合网国产成人综合天| 久久久久久久久久久黄色| 奇米四色…亚洲| 欧美日韩国产综合一区二区| 亚洲免费观看高清完整版在线观看| 久久国产精品99精品国产| 欧美丰满少妇xxxbbb| 午夜久久久久久电影| 欧美丝袜第三区| 一区二区久久久久| 欧美系列亚洲系列| 亚洲综合一区二区精品导航| 97精品久久久午夜一区二区三区 | 国产视频一区不卡| 国产成人精品三级| 欧美激情一区二区三区| 粉嫩aⅴ一区二区三区四区| 久久久久久久久伊人| 大胆亚洲人体视频| 国产精品色一区二区三区| 成人不卡免费av| 18欧美乱大交hd1984| 色婷婷综合久久| 亚洲成人av一区二区| 91超碰这里只有精品国产| 日本不卡在线视频| 26uuu亚洲综合色| 成人美女视频在线观看18| 国产精品久久久久久久久久免费看| 成人在线视频一区二区| 国产精品国产馆在线真实露脸 | 欧美xxxxx裸体时装秀| 激情综合色综合久久| 久久精品男人天堂av| 成人免费毛片片v| 亚洲一二三级电影| xvideos.蜜桃一区二区| 不卡的看片网站| 天天色天天爱天天射综合| 精品久久久久久久久久久久包黑料 | 色悠久久久久综合欧美99| 亚洲精品第1页| 欧美一区二区美女| 国产99久久久久久免费看农村| 中文字幕一区二| 日韩一区二区三区视频| 成人午夜av在线| 亚洲一区av在线| www欧美成人18+| 欧美日韩在线观看一区二区| 久久国产免费看| 亚洲猫色日本管| 精品国产乱码久久久久久图片| 波多野结衣91| 久久精品av麻豆的观看方式| 亚洲美女免费在线| 久久久久久久精| 欧美精品v国产精品v日韩精品| 国产精品888| 美女在线一区二区| 一区二区激情视频| 国产精品天天看| 精品国产一区二区亚洲人成毛片| 日本韩国欧美三级| 成人综合在线视频| 国产精品一区二区三区99| 亚洲丶国产丶欧美一区二区三区| 国产精品乱人伦一区二区| 日韩免费观看高清完整版在线观看| av在线这里只有精品| 国产一区二区三区免费看| 首页国产丝袜综合| 亚洲精品成人悠悠色影视| 国产精品美女久久福利网站| 欧美成人福利视频| 91麻豆精品国产91久久久使用方法 | 国产成人午夜高潮毛片| 日韩成人一区二区三区在线观看| 国产精品久久久久久久久晋中 | 777久久久精品| 91久久线看在观草草青青| 不卡电影一区二区三区| 国产乱理伦片在线观看夜一区| 卡一卡二国产精品 | 成人免费不卡视频| 国产激情精品久久久第一区二区| 日本女优在线视频一区二区| 亚洲福利电影网| 亚洲国产成人av好男人在线观看| 一区二区高清在线| 亚洲另类春色校园小说| 亚洲欧美色综合| 一区二区三区在线高清| 亚洲精品精品亚洲| 悠悠色在线精品| 亚洲永久精品国产| 图片区日韩欧美亚洲| 五月天激情小说综合| 青青国产91久久久久久| 久久精品国产精品亚洲精品| 国产精品亚洲人在线观看| 国产盗摄精品一区二区三区在线| 激情综合一区二区三区| 成人黄色av网站在线| 99久久久久免费精品国产| 色综合一个色综合| 91麻豆精品91久久久久同性| 欧美成人激情免费网| 日本一区二区电影| 一区二区久久久久| 麻豆91在线看| 国产成人av电影免费在线观看| 成人国产精品免费观看动漫| 日本高清不卡在线观看| 制服丝袜中文字幕一区| 国产午夜亚洲精品理论片色戒| 国产精品黄色在线观看| 日韩不卡一区二区三区| 国产精品一区二区三区网站| 色视频成人在线观看免| 91精品婷婷国产综合久久| 久久久综合精品| 亚洲乱码精品一二三四区日韩在线| 天堂午夜影视日韩欧美一区二区| 极品少妇xxxx偷拍精品少妇| 91免费看`日韩一区二区| 欧美一区二区在线免费观看| 国产亚洲精品中文字幕| 夜夜嗨av一区二区三区四季av| 久久精品国产99久久6| 色婷婷综合久久久| 国产日韩在线不卡| 日本怡春院一区二区| heyzo一本久久综合| 日韩欧美国产一二三区|