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

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

?? dmb.c

?? <B>Digital的Unix操作系統VAX 4.2源碼</B>
?? C
?? 第 1 頁 / 共 5 頁
字號:
#ifndef lintstatic char *sccsid = "@(#)dmb.c	4.5	ULTRIX	4/30/91";#endif lint/************************************************************************ *									* *			Copyright (c) 1986-1988 by			* *		Digital Equipment Corporation, Maynard, MA		* *			All rights reserved.				* *									* *   This software is furnished under a license and may be used and	* *   copied  only  in accordance with the terms of such license and	* *   with the  inclusion  of  the  above  copyright  notice.   This	* *   software  or  any	other copies thereof may not be provided or	* *   otherwise made available to any other person.  No title to and	* *   ownership of the software is hereby transferred.			* *									* *   This software is  derived	from  software	received  from	the	* *   University    of	California,   Berkeley,   and	from   Bell	* *   Laboratories.  Use, duplication, or disclosure is	subject  to	* *   restrictions  under  license  agreements  with  University  of	* *   California and with AT&T.						* *									* *   The information in this software is subject to change  without	* *   notice  and should not be construed as a commitment by Digital	* *   Equipment Corporation.						* *									* *   Digital assumes no responsibility for the use  or	reliability	* *   of its software on equipment which is not supplied by Digital.	* *									* ************************************************************************//* * dmb.c * * Modification history * * DMB32 terminal driver * * 25-Apr-91 - R. Craig Peterson * *	Don't generate a formfeed when closing a dmb parallel port *	unless the device is currently on-line and ready to print. * *	Don't allow a minor number for dmb printer that is out of *	the range of the number of dmb's on the system. * * 28-Jan-91 - Stuart Hollander *	Replaced code with functionally equivalent code to avoid *	bug in C optimizer.  in dmbxint() * * 08-Aug-90 - Kuo-Hsiung Hsieh * *	Added a missing case for a break condition.  If neither  *	IGNBRK or BRKINT is set, and PARMRK is set, a break condition *	is read as '\377', '\0' , '\0'. * * 31-Oct-89 - Randall Brown * *	Added the support to allow the device to determine if baudrate is  *	supported before it is set in the tty data structures. * * 11-Oct-89 - Randall Brown * *	Added support for MIPS based machines.  Converted the DMA to be done *	in physical mode. * * 15-Aug-89 - Randall Brown * *	Changed all references of TCSADFLUSH to TCSAFLUSH  * * 11-Aug-89 - dws * *	Release dmb lock after trusted path processing in dmbrintr(). * * 21-Jul-89 - Randall Brown * *	Moved default open and default close code to tty.c and call it *	using tty_def_open() and tty_def_close().  In the close routine, *	don't clear the baudrate so that subsequent opens will keep the *	present attributes.  This only applies to a Berkeley environment. * * 30-Jun-89 - Tim Burke * *	Keep dmb lock held while examining dmb_tbuffct in dmbxint.  This *	is needed to keep the line number in acsr fixed to determine an *	accurate transfer count.  Also in dmbxint, don't mask off the error *	bits in tbuf before examining them. * * 19-Jun-89 - Randall Brown *	Change to dmblopen to not allow open of the printer on DHB. * * 15-Jun-89 - darrell *	Removed cpup as function arg. * * 12-Jun-89 - dws * *	Added trusted path support. * * 02-Sep-88 - Tim Burke * *	Return EINVAL instead of ENOTTY for POSIX programs on invalid ioctls. * * 18-Aug-88 - Tim Burke * *	If PARMRK is set and a BREAK occurs, return '\0377','\0','\0'. * * 5-Aug-88 - Tim Burke * *	Return the 2 character sequence 0377, 0377 upon receipt of a valid *	0377 character only when PARMRK is set under the termio line disc. * * 07-Jul-88 - Tim Burke *	Use address of post_wakeup when calling dmb_start_tty. * * 16-May-88 - Tim Burke * * 	Call param routine for setting of local mode word because it can  * 	affect bit size and parity. * * 22-Mar-88 - Tim Burke *	Added initial version of locking for SMP.  Locks are used on the *	individual tty line as well as one lock per dmb board. * * 09-Mar-88 - Tim Burke *	Changed flow control mechanism to enable support for the DHB32. *	Previously if a stop char was received the dmbstop routine would do *	a dma abort, the start routine would resetup for the resumption. *	Now in dmbstop, simply turn off transmit enable, and make note of the *	fact in the state (TS_OABORT).  Dmbstart now will turn on transmit  *	enable to resume a previously stopped transmission. * * 20-Feb-88 - Tim Burke *	Changed most softCAR[unit&LINEMASK] references to use the CLOCAL *	bit of the control flags to determine if the line is set to be a *	modem line or a direct connect.  The setting of softCAR[] remains *	to allow one to set default settings for device open. * *	Provide Support for the DHB32.  This device is a 16 line terminal *	multiplexer.  It does not have a printer port or sync port.  Modem *	control is not provided on all lines, only the first two lines if  *	configured for modem control. * *  3-Feb-88 - Tim Burke *  	Only examine O_NONBLOCK for POSIX mode. *	A valid character of 0377 is returned as 0377,0377 in TERMIODISC only. * *  1-Dec-87 - Tim Burke * *	Added support for both System V termio(7) and POSIX termios(7).  These *	changes also include support for 8-bit canonical processing.  Changes *	involve: * *	- Default settings on first open depend on mode of open.  For termio *	  opens the defaults are "RAW" style, while non-termio opens default *	  to the traditional "cooked" style. *	- The driver now represents its terminal attributes and special  *	  characters in the POSIX termios data structure.  This contrasts the *	  original approach of storing attributes and special chars in the *	  t_flags, ltchars and tchars. *	- New termio ioctls: TCSANOW, TCSADRAIN, TCSADFLUSH, TCSETA, TESETAW, *	  TCSETAF.	 *	- Addition of LPASS8 to local mode word for 8-bit canonical support. * *  8-Sep-87 - Ricky Palmer (rsp) * *	Defined LINEMASK for this driver and replaced references where  *	appropriate. Also fixed DEVIOCGET code to use LINEMASK.	 * *  2-Sept-87 - Tim Burke * *	Added support for hardware auto flow control on the outgoing side.  This *	will provide quick response to start/stop characters which will reduce *	buffer overflow on the receiving device. * *  1-Sept-87 - Tim Burke * *	Put a timer in dmbstart to prevent possible system hang if the DMA *	start bit doesn't clear due to hardware failure. * 19-Mar-87 - Tim Burke * *	Added full TERMIO functionality to terminal subsystem. * * * 28-Jan-87 - Tim Burke * *	Added the capability to ignore the "DSR" modem signal.  This is being *	done to allow modems that do not follow DEC Standard 52 to still  *	function as they would have prior to the addition of DECSTD52 code *	into the drivers.  If the driver is setup to ignore "DSR" then it will *	not be following DECSTD52.  To follow DECSTD52 set dmbdsr to "1", to *	ignore "DSR" set dmbdsr to be "0"; * *	Removed unnecessary return values from dmblint, dmb_dsr_check,  *	dmb_cd_drop, dmb_tty_drop. A few other lint cleanups with Jim *	Woodward. * *  9-Jan-87 - Tim Burke * *	Bug fix to TIOCMODEM to clear modem flags if signals are not up. * * 15-Dec-86 - Tim Burke * *	When a break occurs, (interpreted as a framing error) set the variable *	c to be the interrupt character.  There was a problem here due to the *	fact that sign extension is done which causes unwanted side affects. To *	solve this bug, the character is stripped to 8 bits. * *	Fix DEVIOGET to return propper modem status information. * *  4-Dec-86 - Tim Burke * *	Bug fix to modem control.  In dmb_tty_drop routine, clear the stopped *	state to prevent modem lines from hanging on close.   * * 26-Sep-86 - afd (Al Delorey) * *	Enable external vector in the User Interface Interrupt Control *	Register (a BIIC reg).  Original DMB32 always had this bit set, but *	that violated BI standard. So driver does it in dmbinit() & dmbreset(). *	 * 26-Aug-86 - rsp (Ricky Palmer) * *	Cleaned up devioctl code to (1) zero out devget structure *	upon entry and (2) use strlen instead of fixed storage *	for bcopy's. * * 25-Aug-86 - Tim Burke * *	Insure that a modem will drop and restart line on a flase call.  Also *	set state to ~TS_CARR_ON on line drop to terminate associated processes. * * 05-Aug-86 - Tim Burke * *	In dmbrint, record the present timestamp in the event of a *	carrier drop. * * 11-Jul-86 - ricky palmer * *	Added adpt and nexus fields to DEVIOCGET code. * * 29-May-86 - afd & tim burke *	Enable DTR & RTS in open routine for both hardwired and modem lines. *	This was being done only for modem lines. * * 26-Apr-86 - ricky palmer *	Added new DEVIOCGET ioctl request code. V2.0 * *  4-Apr-86 - afd *	Call "bidev_vec()" form dmbinit() to set up interrupt vector handlers. * */#include "dmb.h"#if NDMB > 0 || defined (BINARY)#include "../data/dmb_data.c"/* * The line printer on dmbx is indicated by a minor device code of 128+x * The flags field of the config file is interpreted as follows: * * bits 	meaning * ---- 	------- * 0-7		soft carrier bits for the  8 async tty lines on DMB32 * 0-15		soft carrier bits for the 16 async tty lines on DHB32 * 8-15 	number of cols/line on the line printer (if 0, 132 will be used) * 16-23	number of lines/page on the line printer (if 0, 66 will be used) * */#ifdef DEBUGint dmbdebug = 0;#define printd if (dmbdebug) mprintf#define printd10 if (dmbdebug >= 10) mprintf#endifextern struct bidata bidata[];/* * Definition of the driver for the auto-configuration program. */int	dmbinit(), dmbattach(), dmbaint(), dmbsint(), dmblint(), dmbbaudrate();struct	uba_device *dmbinfo[NDMB];u_short dmbstd[] = { 0 };struct	uba_driver dmbdriver =	{ dmbinit, 0, dmbattach, 0, dmbstd, "dmb", dmbinfo };/* function type definitions */int	dmbstart(), ttrstrt();int	wakeup();/* For for DEC std 52, modem control */int	dmb_cd_drop(), dmb_dsr_check_timeout(), dmb_cd_down(), dmb_tty_drop();struct	timeval dmbzerotime = {0,0};int	dmbcdtime = 2;#ifndef MODEM_CD#define MODEM_CD   0x01#define MODEM_DSR  0x02#define MODEM_CTS  0x04#define MODEM_DSR_START  0x08#endif#define LINEMASK        0xF    /* line number mask */#define LINEBITS	0x4    /* 4 bits are needed to represent line number *//* * Local variables for the driver */int	dmb_timeout = 10;		/* receive fifo timeout, in ms */char dmb_speeds[] =	{ 0, 0, 01, 02, 03, 04, 0, 05, 06, 07, 010, 012, 013, 015, 016, 017 };	/*  50	75  110 134 150   300 600 1200 1800 2400 4800 9600 19.2 38.4 */short	dmb_valid_speeds = 0xffbf; /* 1,1,1,1, 1,1,1,1, 1,0,1,1, 1,1,1,1 */#define ASLP 1		/* waiting for interrupt from dmb for printer port */#define OPEN 2		/* line printer is open */#define ERROR 4 	/* error while printing, driver			   refuses to do anything till closed *//* * Macros used for smp locking. *//* * Macro:  DMB_TTY_LOCK(tp,saveipl) * * Description: * Raise ipl to level 15 and save off old * value in "saveipl". * Lock the tty structure pointed * to by "tp". */#define DMB_TTY_LOCK(tp,saveipl) {	\		saveipl = spltty();\		smp_lock(&tp->t_lk_tty, LK_RETRY);\	}/* * Macro:  DMB_TTY_UNLOCK * * Description: * Unlock tty structure pointed to by  * "tp".  Restore IPL to "saveipl". */#define DMB_TTY_UNLOCK(tp,saveipl) {\	smp_unlock(&tp->t_lk_tty);\	splx(saveipl);\	}/* * Macro:  DMB_LOCK * * Description: * Lock dmb device. */#define DMB_LOCK(dmb) \	smp_lock(&lk_dmb[dmb],LK_RETRY);/* * Macro:  DMB_UNLOCK * * Description: * Unlock dmb device. */#define DMB_UNLOCK(dmb) \	smp_unlock(&lk_dmb[dmb]);/* * Define which address to do a wakeup on.  These are used to insure that * wakeups are not called while locks are held. */#define WAKEUP_RAWQ	0x1		/* wakeup on raw queue */#define WAKEUP_DEV	0x2		/* wakeup on device address */#define WAKEUP_OUTQ	0x4		/* wakeup on output queue */#define WAKEUP_STATE	0x8		/* wakeup on line printer state */#define WAKEUP_BUF	0x10		/* wakeup on line printer buffer */#define WAKEUP_SELECT	0x20		/* select wakeup */ /* * Routine for configuration to see if the DMB32 is functional *//*ARGSUSED*/dmbinit(nxv,nxp,binumber,binode,ui)	caddr_t nxv;			/* virt addr of device */	caddr_t nxp;			/* phys addr of device */	int binumber;			/* this bi number on the system */	int binode;			/* the node number on this bi */	struct uba_device *ui;{	register struct dmb_device *addr;	addr = (struct dmb_device *)nxv;#	ifdef DEBUG	printd("dmbinit: addr = 0x%x, devtype = 0x%x, revcode = 0x%x, nodeid = %d\n",		addr,		addr->dmb_biic.biic_typ & 0xFFFF,		(addr->dmb_biic.biic_typ >> 16) & 0xFFFF,		addr->dmb_biic.biic_ctrl & 0xF);#	endif	/*	 * Determine the number of asynchronous lines on the device: 	 *	DMB has 8 lines	 *	DHB has 16 lines	 */	dmb_lines[ui->ui_unit] = addr->dmb_config & DMB_ASYNC_MASK;	/*	 * Check for device malfunction.  Distribution cable is connected.	 */	if ((addr->dmb_mainthigh & DMB_ALP) == 0)		{		printf("dmbinit: async lines unavailable\n");		return(0);		}	/*	 * Only the DMB has a printer port. (The DHB doesn't)	 */	if ((dmb_lines[ui->ui_unit]==DMB_8_LINES) && ((addr->dmb_mainthigh & DMB_PP) == 0))		{		printf("dmbinit: printer port unavailable\n");		return(0);		}	/*	 * Check results of powerup self tests (if they've completed).	 */	if ((addr->dmb_maintlow & DMB_RESET) == 0) {		if (addr->dmb_mainthigh & DMB_DFAIL)			printf("dmbinit: warning, self test diagnostic failure\n");#       	ifdef DEBUG		/*		 * See if the 6 ribbon cables are correctly connected to pannel.		 * This was being printed on functional systems (DMB) ??		 */		if (((addr->dmb_mainthigh & DMB_CABLE) == 0) && dmbdebug)			printf("dmbinit: CABLE error, check ribbon cables, reg=%x\n",				addr->dmb_mainthigh);#       	endif	}	/*	 * Enable external vector	 */	addr->dmb_biic.biic_int_ctrl |= BIIC_EXVEC;	/*	 * Set up interrupt vectors for DMB32.	It has 4.	 * BIIC (14), sync (15), async (16), & printer (17).	 * There are 4 interrupt vectors for a dmb.  They are LEVEL14,15,16,17.	 * These levels do not correspond to ipl levels, for example LEVEL15 on	 * the async lines cause interrupts at ipl14.	 */	bidev_vec(binumber,binode,LEVEL15,ui);	return(1);}dmbattach(ui)	struct uba_device *ui;{	register int cols;	register int lines, i;	register struct dmb_device *addr;	register struct tty *tp;	addr = (struct dmb_device *)ui->ui_addr;#	ifdef DEBUG

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
18欧美乱大交hd1984| 中文字幕 久热精品 视频在线 | 亚洲精品免费在线观看| 日本久久精品电影| 天堂va蜜桃一区二区三区| 欧美精品一区二区精品网| 成人综合在线观看| 亚洲精品视频一区二区| 国产精品毛片a∨一区二区三区| 色综合久久久久| 日本v片在线高清不卡在线观看| 欧美国产精品专区| 国产精品久久久久影院老司 | 偷拍亚洲欧洲综合| 欧美主播一区二区三区| 日日骚欧美日韩| 午夜欧美2019年伦理| 亚洲卡通动漫在线| 亚洲蜜臀av乱码久久精品蜜桃| 国产aⅴ精品一区二区三区色成熟| 在线成人av网站| 精品亚洲成a人| 麻豆视频一区二区| 欧美这里有精品| 色综合久久综合网97色综合| 成人免费毛片aaaaa**| 国产精品亚洲第一| 国产精品久久午夜夜伦鲁鲁| 国产网站一区二区| 欧美性受xxxx黑人xyx性爽| 在线一区二区观看| 色天天综合久久久久综合片| 91一区在线观看| 亚洲夂夂婷婷色拍ww47| 91精品国产色综合久久不卡蜜臀 | 亚洲男人天堂一区| 亚洲蜜臀av乱码久久精品蜜桃| 亚洲欧美色一区| 亚洲国产一区二区在线播放| 亚洲成人免费视频| 精品亚洲欧美一区| 国产91精品一区二区麻豆网站| 夫妻av一区二区| 色婷婷av一区二区三区大白胸 | 欧美人体做爰大胆视频| 香蕉乱码成人久久天堂爱免费| 日韩一区中文字幕| 水蜜桃久久夜色精品一区的特点| 亚洲va国产va欧美va观看| 蜜臀va亚洲va欧美va天堂| 精品一二线国产| 大陆成人av片| 欧美精品第1页| 久久久99久久| 亚洲欧美一区二区在线观看| 亚洲123区在线观看| 精品一区二区三区久久久| 成人精品视频一区| 精品视频在线看| 国产色91在线| 午夜精彩视频在线观看不卡| 高潮精品一区videoshd| 欧美午夜理伦三级在线观看| 欧美精品一区二区三区蜜臀| 一区二区三区在线视频观看| 91麻豆精品国产91久久久使用方法| eeuss鲁一区二区三区| 欧美日韩精品欧美日韩精品一| 国产色一区二区| 日韩电影一区二区三区四区| 成人三级伦理片| 日韩欧美中文字幕公布| 亚洲美女偷拍久久| 国产成人在线视频网址| 3atv在线一区二区三区| 一个色在线综合| 成人性生交大合| 欧美mv和日韩mv国产网站| 一区二区三区久久久| 成人性生交大片免费看在线播放| 欧美一区二区三区影视| 亚洲免费观看高清完整版在线观看 | 99国产精品国产精品久久| 日韩欧美在线综合网| 亚洲精品乱码久久久久| 成人aa视频在线观看| 久久久噜噜噜久久中文字幕色伊伊| 亚洲电影一区二区三区| 91女厕偷拍女厕偷拍高清| 国产午夜亚洲精品羞羞网站| 久久99国产精品久久99| 欧美日韩在线一区二区| 一二三区精品视频| 在线一区二区三区| 亚洲精品亚洲人成人网在线播放| 顶级嫩模精品视频在线看| 日韩美女在线视频| 日本91福利区| 欧美一区二区三区日韩视频| 丝袜美腿亚洲一区| 日韩视频永久免费| 另类小说欧美激情| 日韩欧美国产高清| 午夜精品久久久久| 欧美日韩一级片在线观看| 亚洲丶国产丶欧美一区二区三区| 色婷婷精品久久二区二区蜜臀av| 国产精品美日韩| 成人av综合一区| 一区二区三区在线观看网站| 国产乱一区二区| 国产欧美日韩综合精品一区二区| 国产精品18久久久久久vr| 国产色产综合色产在线视频| 成人毛片老司机大片| 一区二区激情小说| 欧美一卡二卡在线| 九九视频精品免费| 国产亚洲综合色| 色呦呦国产精品| 偷拍自拍另类欧美| 久久精品视频在线免费观看| 成人精品视频一区二区三区| 亚洲国产日韩a在线播放性色| 欧美情侣在线播放| 国产一区二区三区免费看| 国产精品久久久久久久久免费丝袜| 日本高清不卡aⅴ免费网站| 亚洲欧美乱综合| 7777精品伊人久久久大香线蕉经典版下载| 青青草原综合久久大伊人精品优势| 日韩精品一区二| 99久久99久久综合| 蜜臀av性久久久久蜜臀aⅴ四虎| 26uuu国产日韩综合| 成人激情黄色小说| 免费成人小视频| 亚洲日本va午夜在线影院| 6080国产精品一区二区| 成人黄色大片在线观看| 日韩精品成人一区二区三区| 中文在线资源观看网站视频免费不卡 | 国产精品女同一区二区三区| 欧美三级电影网站| 国产69精品久久99不卡| 日韩影视精彩在线| 自拍偷拍国产精品| 欧美大片免费久久精品三p| 在线一区二区三区四区五区| 国产精品资源在线观看| 亚洲国产一区二区在线播放| 国产精品久久久久久久午夜片| 欧美色精品天天在线观看视频| 国产一区欧美二区| 亚洲线精品一区二区三区八戒| 日韩不卡一区二区| 一区二区三区欧美激情| 91国在线观看| 91尤物视频在线观看| 国产河南妇女毛片精品久久久| 亚洲综合激情网| 欧洲国产伦久久久久久久| 精品国产乱码久久久久久浪潮 | 激情五月激情综合网| 国产一区二区不卡老阿姨| 国产乱人伦偷精品视频不卡| 99精品视频中文字幕| 在线观看视频一区| 91黄色小视频| 久久精品人人做人人爽人人| 136国产福利精品导航| 天天影视网天天综合色在线播放| 精品一区二区久久| 91麻豆成人久久精品二区三区| 欧美丰满嫩嫩电影| 国产欧美精品一区二区色综合| 亚洲男人天堂av网| 国产最新精品精品你懂的| 91在线视频网址| 日韩午夜中文字幕| 亚洲毛片av在线| 蜜桃视频在线观看一区二区| 成人18精品视频| 日韩一区二区电影| 亚洲精品v日韩精品| 久久成人久久鬼色| 91久久线看在观草草青青| 精品国产乱子伦一区| 国产精品麻豆网站| 日韩黄色片在线观看| 91久久精品一区二区三| 91精品国产高清一区二区三区| 国产精品免费看片| 国产主播一区二区| 欧美夫妻性生活| 亚洲情趣在线观看| 国产在线一区二区| 3d动漫精品啪啪1区2区免费 | 亚洲成av人片一区二区| caoporen国产精品视频|