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

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

?? dh.c

?? UNIX v6 源代碼
?? C
字號:
#/* *//* *	DH-11 driver *	This driver calls on the DHDM driver. *	If the DH has no DM11-BB, then the latter will *	be fake. To insure loading of the correct DM code, *	lib2 should have dhdm.o, dh.o and dhfdm.o in that order. */#include "../param.h"#include "../conf.h"#include "../user.h"#include "../tty.h"#include "../proc.h"#define	DHADDR	0160020#define	NDH11	16	/* number of lines */#define	DHNCH	8	/* max number of DMA chars */struct	tty dh11[NDH11];/* * Place from which to do DMA on output */char	dh_clist[NDH11][DHNCH];/* * Used to communicate the number of lines to the DM */int	ndh11	NDH11;/* * Hardware control bits */#define	BITS6	01#define	BITS7	02#define	BITS8	03#define	TWOSB	04#define	PENABLE	020/* DEC manuals incorrectly say this bit causes generation of even parity. */#define	OPAR	040#define	HDUPLX	040000#define	IENABLE	030100#define	PERROR	010000#define	FRERROR	020000#define	XINT	0100000#define	SSPEED	7	/* standard speed: 300 baud *//* * Software copy of last dhbar */int	dhsar;struct dhregs {	int dhcsr;	int dhnxch;	int dhlpr;	int dhcar;	int dhbcr;	int dhbar;	int dhbreak;	int dhsilo;};/* * Open a DH11 line. */dhopen(dev, flag){	register struct tty *tp;	extern dhstart();	if (dev.d_minor >= NDH11) {		u.u_error = ENXIO;		return;	}	tp = &dh11[dev.d_minor];	tp->t_addr = dhstart;	tp->t_dev = dev;	DHADDR->dhcsr =| IENABLE;	tp->t_state =| WOPEN|SSTART;	if ((tp->t_state&ISOPEN) == 0) {		tp->t_erase = CERASE;		tp->t_kill = CKILL;		tp->t_speeds = SSPEED | (SSPEED<<8);		tp->t_flags = ODDP|EVENP|ECHO;		dhparam(tp);	}	dmopen(dev);	tp->t_state =& ~WOPEN;	tp->t_state =| ISOPEN;	if (u.u_procp->p_ttyp == 0)		u.u_procp->p_ttyp = tp;}/* * Close a DH11 line. */dhclose(dev){	register struct tty *tp;	tp = &dh11[dev.d_minor];	dmclose(dev);	tp->t_state =& (CARR_ON|SSTART);	wflushtty(tp);}/* * Read from a DH11 line. */dhread(dev){	ttread(&dh11[dev.d_minor]);}/* * write on a DH11 line */dhwrite(dev){	ttwrite(&dh11[dev.d_minor]);}/* * DH11 receiver interrupt. */dhrint(){	register struct tty *tp;	register int c;	while ((c = DHADDR->dhnxch) < 0) {	/* char. present */		tp = &dh11[(c>>8)&017];		if (tp >= &dh11[NDH11])			continue;		if((tp->t_state&ISOPEN)==0 || (c&PERROR)) {			wakeup(tp);			continue;		}		if (c&FRERROR)		/* break */			if (tp->t_flags&RAW)				c = 0;		/* null (for getty) */			else				c = 0177;	/* DEL (intr) */		ttyinput(c, tp);	}}/* * stty/gtty for DH11 */dhsgtty(dev, av)int *av;{	register struct tty *tp;	register r;	tp = &dh11[dev.d_minor];	if (ttystty(tp, av))		return;	dhparam(tp);}/* * Set parameters from open or stty into the DH hardware * registers. */dhparam(atp)struct tty *atp;{	register struct tty *tp;	register int lpr;	tp = atp;	spl5();	DHADDR->dhcsr.lobyte = tp->t_dev.d_minor | IENABLE;	/*	 * Hang up line?	 */	if (tp->t_speeds.lobyte==0) {		tp->t_flags =| HUPCL;		dmclose(tp->t_dev);		return;	}	lpr = (tp->t_speeds.hibyte<<10) | (tp->t_speeds.lobyte<<6);	if (tp->t_speeds.lobyte == 4)		/* 134.5 baud */		lpr =| BITS6|PENABLE|HDUPLX; else		if (tp->t_flags&EVENP)			if (tp->t_flags&ODDP)				lpr =| BITS8; else				lpr =| BITS7|PENABLE; else			lpr =| BITS7|OPAR|PENABLE;	if (tp->t_speeds.lobyte == 3)	/* 110 baud */		lpr =| TWOSB;	DHADDR->dhlpr = lpr;	spl0();}/* * DH11 transmitter interrupt. * Restart each line which used to be active but has * terminated transmission since the last interrupt. */dhxint(){	register struct tty *tp;	register ttybit, bar;	bar = dhsar & ~DHADDR->dhbar;	DHADDR->dhcsr =& ~XINT;	ttybit = 1;	for (tp = dh11; bar; tp++) {		if(bar&ttybit) {			dhsar =& ~ttybit;			bar =& ~ttybit;			tp->t_state =& ~BUSY;			dhstart(tp);		}		ttybit =<< 1;	}}/* * Start (restart) transmission on the given DH11 line. */dhstart(atp)struct tty *atp;{	extern ttrstrt();	register c, nch;	register struct tty *tp;	int sps;	char *cp;	sps = PS->integ;	spl5();	tp = atp;	/*	 * If it's currently active, or delaying,	 * no need to do anything.	 */	if (tp->t_state&(TIMEOUT|BUSY))		goto out;	/*	 * t_char is a delay indicator which may have been	 * left over from the last start.	 * Arrange for the delay.	 */	if (c = tp->t_char) {		tp->t_char = 0;		timeout(ttrstrt, tp, (c&0177)+6);		tp->t_state =| TIMEOUT;		goto out;	}	cp = dh_clist[tp->t_dev.d_minor];	nch = 0;	/*	 * Copy DHNCH characters, or up to a delay indicator,	 * to the DMA area.	 */	while (nch > -DHNCH && (c = getc(&tp->t_outq))>=0) {		if (c >= 0200) {			tp->t_char = c;			break;		}		*cp++ = c;		nch--;	}	/*	 * If the writer was sleeping on output overflow,	 * wake him when low tide is reached.	 */	if (tp->t_outq.c_cc<=TTLOWAT && tp->t_state&ASLEEP) {		tp->t_state =& ~ASLEEP;		wakeup(&tp->t_outq);	}	/*	 * If any characters were set up, start transmission;	 * otherwise, check for possible delay.	 */	if (nch) {		DHADDR->dhcsr.lobyte = tp->t_dev.d_minor | IENABLE;		DHADDR->dhcar = cp+nch;		DHADDR->dhbcr = nch;		c = 1<<tp->t_dev.d_minor;		DHADDR->dhbar =| c;		dhsar =| c;		tp->t_state =| BUSY;	} else if (c = tp->t_char) {		tp->t_char = 0;		timeout(ttrstrt, tp, (c&0177)+6);		tp->t_state =| TIMEOUT;	}    out:	PS->integ = sps;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩中文字幕不卡| 国产精品国产a| 2024国产精品| 亚洲在线成人精品| 国产九色精品成人porny| 色综合久久久久综合| 精品国产91洋老外米糕| 亚洲风情在线资源站| 国产精品18久久久| 欧美另类videos死尸| 中文字幕一区在线| 日韩av网站在线观看| 99精品久久免费看蜜臀剧情介绍| 欧美一区二区三区播放老司机| 26uuu久久天堂性欧美| 亚洲成a人片在线观看中文| 国产精品1区2区3区| 777xxx欧美| 亚洲欧美另类图片小说| 国产精品一二三区在线| 日韩一区二区影院| 亚洲午夜成aⅴ人片| 99re视频精品| 欧美激情一区二区三区四区| 免费的国产精品| 日韩一区二区三区在线观看| 日韩精品成人一区二区三区| 色视频成人在线观看免| 久久久久久久久伊人| 婷婷中文字幕一区三区| 在线视频一区二区三| 综合av第一页| 99热这里都是精品| 中文欧美字幕免费| 国产白丝精品91爽爽久久| 2022国产精品视频| 国产成人精品1024| 久久综合狠狠综合久久激情| 国产电影一区二区三区| xvideos.蜜桃一区二区| 激情文学综合插| 久久精品人人做人人爽97| 国产综合久久久久久鬼色| 精品日韩一区二区三区| 国产一区美女在线| 国产欧美日韩在线视频| 国产一区二区日韩精品| 国产欧美日韩卡一| 99天天综合性| 亚洲激情av在线| 欧美亚洲国产bt| 婷婷六月综合网| 日韩欧美一区二区久久婷婷| xf在线a精品一区二区视频网站| 国产精品久久久久影院老司 | 蜜桃91丨九色丨蝌蚪91桃色| 日韩女优制服丝袜电影| 日韩专区一卡二卡| 欧美电影免费观看高清完整版在线| 日韩国产在线一| 精品理论电影在线观看 | 国产大陆亚洲精品国产| 国产精品欧美综合在线| 99re亚洲国产精品| 午夜欧美大尺度福利影院在线看| 欧美一区二区三区免费| 国产成人综合亚洲91猫咪| 综合欧美一区二区三区| 欧美日韩国产美女| 国产美女精品一区二区三区| 国产精品成人免费精品自在线观看| 欧美伊人久久久久久午夜久久久久| 久久精品国产久精国产爱| 国产日韩欧美高清| 欧美日韩国产一区| 成人动漫一区二区| 蜜桃av一区二区在线观看| 亚洲欧美在线观看| 日韩视频免费直播| 在线观看亚洲专区| 国产一区二区三区av电影 | 欧美一区二区视频网站| 久久国产精品第一页| 欧美韩日一区二区三区| 一本大道久久a久久精品综合| 日本麻豆一区二区三区视频| 中文字幕高清不卡| 日韩西西人体444www| 波多野结衣中文一区| 日韩中文字幕亚洲一区二区va在线| 久久久精品蜜桃| 欧美日韩成人综合| 成人av午夜电影| 国产一区二区不卡老阿姨| 亚洲444eee在线观看| 亚洲美女视频在线观看| 国产欧美一区二区精品性色 | 这里只有精品视频在线观看| 99精品国产热久久91蜜凸| 狠狠色丁香婷婷综合| 毛片av一区二区| 亚洲风情在线资源站| 亚洲午夜电影在线观看| 亚洲欧美日韩中文播放 | 欧美激情一二三区| 26uuu精品一区二区| 91麻豆精品国产| 日韩一卡二卡三卡国产欧美| 欧美老人xxxx18| 6080亚洲精品一区二区| 欧美日韩久久久久久| 在线精品国精品国产尤物884a| 欧美日韩的一区二区| 欧美亚洲国产怡红院影院| 色综合久久综合网欧美综合网| 不卡高清视频专区| 成人av电影免费在线播放| 粉嫩av亚洲一区二区图片| 国产精品99久| 粉嫩嫩av羞羞动漫久久久| 成人午夜视频网站| 成人av在线资源| 91亚洲精华国产精华精华液| 91视频xxxx| 在线日韩一区二区| 欧美日韩国产123区| 日韩视频免费观看高清完整版在线观看 | 日本不卡一二三| 亚洲成人av资源| 久久精品国产第一区二区三区| 老汉av免费一区二区三区| 国产精品99久久久久久宅男| 成人免费看视频| 在线中文字幕不卡| 欧美狂野另类xxxxoooo| 欧美mv日韩mv亚洲| 国产日韩成人精品| 亚洲欧美一区二区三区国产精品 | 亚洲激情五月婷婷| 亚洲成av人在线观看| 精品一二三四区| 91片在线免费观看| 欧美老肥妇做.爰bbww视频| 久久久www免费人成精品| 亚洲精品免费在线| 狠狠色丁香婷婷综合| 色综合久久综合网97色综合| 日韩美女视频一区二区在线观看| 欧美精品一区二区三区视频| 久久久久国产精品免费免费搜索| 国产午夜精品久久久久久久| 精品剧情在线观看| 亚洲精品国产一区二区三区四区在线| 亚洲视频在线观看一区| 亚洲欧洲一区二区三区| 日韩黄色免费电影| 久久99精品久久久久| 国产一区二区在线电影| 国产高清成人在线| 99re这里只有精品6| 欧美日韩在线亚洲一区蜜芽| 91.成人天堂一区| 精品久久国产字幕高潮| 国产91综合一区在线观看| 国产高清成人在线| 白白色亚洲国产精品| 久久综合色8888| 国产精品护士白丝一区av| 亚洲bt欧美bt精品| 色呦呦日韩精品| 欧美日韩免费观看一区二区三区 | 丝袜a∨在线一区二区三区不卡| 午夜亚洲福利老司机| 久久激情综合网| 国产乱码精品1区2区3区| 91精品国产91热久久久做人人| 欧美一级一级性生活免费录像| 色系网站成人免费| 日本一二三不卡| 一区二区三区影院| 亚洲第一成人在线| 在线亚洲免费视频| 日韩精品在线网站| 欧美—级在线免费片| 九九视频精品免费| 色天天综合久久久久综合片| 久久久久久免费| 亚洲国产一区二区三区青草影视| 久久99这里只有精品| 国产传媒日韩欧美成人| 精品视频999| 国产日产欧美一区二区三区 | 亚洲精品日韩专区silk| 成人综合在线观看| 欧美日韩国产综合草草| 3atv在线一区二区三区| 天天综合日日夜夜精品| 成人免费va视频| 制服丝袜一区二区三区| 欧美—级在线免费片|