⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uqport.h

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 H
字号:
/* *	@(#)uqport.h	4.2	(ULTRIX)	10/16/90 *//************************************************************************ *									* *			Copyright (c) 1985 - 1989 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.			* *									* *									* *   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.	* *									* ************************************************************************ * * Revision History: * 16-Oct-90		U. Sinkewicz *	Bug fixes required for DUP as a layered product. * * 20-Jul-1989		Mark A. Parenti *	Add burst rate to controller table. *	Sync controller table with SSP spec. *	Define UQ_CS bit for SSP scratchpad support. *	Add defines for new device register access method. * * 06-Jun-1988		Ricky S. Palmer *	Added support for KFQSA * * 19-Jan-1988          Todd M. Katz *	Delete LPC_SAFAT definition. *//*^L*//* *	Defines for use with port rings */#define	UQ_ERR	 0x00008000	/* error bit 				*/#define	UQ_STEP4 0x00004000	/* step 4 has started 			*/#define	UQ_STEP3 0x00002000	/* step 3 has started 			*/#define	UQ_STEP2 0x00001000	/* step 2 has started 			*/#define	UQ_STEP1 0x00000800	/* step 1 has started 			*/#define	UQ_NV	 0x00000400	/* no host settable interrupt vector 	*/#define	UQ_QB	 0x00000200	/* controller supports Q22 bus 		*/#define	UQ_DI	 0x00000100	/* controller implements diagnostics 	*/#define	UQ_IE	 0x00000080	/* interrupt enable 			*/#define	UQ_PI	 0x00000001	/* host requests adapter purge interrupts */#define	UQ_LF	 0x00000002 	/* request last fail packet		*/#define	UQ_GO	 0x00000001	/* start operation, after init 		*/#define	UQ_CS	 0x00000400	/* Controller scratchpad supported	*/#define	UQ_OWN	 0x80000000	/* controller owns this descriptor	*/#define	UQ_INT	 0x40000000	/* allow interrupt on ring transition 	*/#define	UQ_MAP	 0x80000000	/* modifier for mapped buffer descriptors *//*	UQSSP Message types						*/#define	UQT_SEQ		0	/* Sequential Message			*/#define	UQT_DG		1	/* Datagram Message			*/#define	UQT_CRED	2	/* Credit Message			*/#define	UQT_MAINT	15	/* Maintenance Message			*//*	UQSSP Connection IDs						*/#define	UQC_DISK	0	/* Disk class connection		*/#define	UQC_TAPE	1	/* Tape class connection		*/#define	UQC_DUP		2	/* DUP class connection			*/#define	UQC_MAINT	255	/* Maintenance connection		*//*	UQSSP Connection IDs - Bit Representation			*/#define	UQCB_DISK	1<<UQC_DISK /* Disk class connection		*/#define	UQCB_TAPE	1<<UQC_TAPE /* Tape class connection		*/#define	UQCB_DUP	1<<UQC_DUP /* DUP class connection		*//*	UQ Controller Information Block */struct	uq_cinfo {	char	*name;		/* Controller name in ascii		    */	int	servers;	/* Server bit vector			    */	int	max_con;	/* Maximum number of concurrent connections */	int	burst;		/* Bus burst rate (for step 4 write)        */};	/*	Controller Info Block *//* The following table contains the burst rate for each uq controller type. * The meaning of this value varies for each controller. In general,  * this rate instructs the controller as to how many longwords it may * transfer on the bus before having to rearbitrate. * The value given is one LESS than the actual desired burst rate. The * range is 0 to 63. Values above 3 should only be used on dedicated buses * and values above 7 give only marginally better performance. * For XMI-based controllers, this value should be the optimal number * of longwords for DMA transactions. */struct	uq_cinfo uq_cinfo[] ={/*  Ascii name	  Server vector	 Max connections   Burst	*/   { "uda50",	UQCB_DISK | UQCB_DUP,	1,  	    3 },	/* 0 uda50 */   { "rc25",	UQCB_DISK | UQCB_DUP,	1,  	    3 },	/* 1 rc25 */   { "rux50",	UQCB_DISK | UQCB_DUP,	1,  	    3 },	/* 2 rux */   { "tk50",	UQCB_TAPE | UQCB_DUP,	1,  	    3 },	/* 3 tk50 */   { "uqssp",	UQCB_DISK | UQCB_DUP,	1,  	    3 },	/* 4 unk */   { "tu81",	UQCB_TAPE | UQCB_DUP,	1,  	    3 },	/* 5 tu81 */   { "uda50a",	UQCB_DISK | UQCB_DUP,	1,  	    3 },	/* 6 uda50a */   { "rqdx",	UQCB_DISK | UQCB_DUP,	1,  	    3 },	/* 7 rqdx */   { "uqssp",	UQCB_DISK | UQCB_DUP,	1,  	    3 },	/* 8 */   { "uqssp",	UQCB_DISK | UQCB_DUP,	1,  	    3 },	/* 9 */   { "uqssp",	UQCB_DISK | UQCB_DUP,	1,  	    3 },	/* 10 */   { "uqssp",	UQCB_DISK | UQCB_DUP,	1,  	    3 },	/* 11 */   { "uqssp",	UQCB_DISK | UQCB_DUP,	1,  	    3 },	/* 12 */   { "kda50",	UQCB_DISK | UQCB_DUP,	1,  	    3 },	/* 13 kda50 */   { "tk70",	UQCB_TAPE | UQCB_DUP,	1,  	    3 },	/* 14 tk70 */   { "rv20",	UQCB_TAPE | UQCB_DISK | UQCB_DUP, 1, 3 },	/* 15 rv20 */   { "krq50",	UQCB_DISK | UQCB_DUP,	1,  	    3 },	/* 16 krq50 */   { "uqssp",	UQCB_DISK | UQCB_DUP,	1,  	    3 },	/* 17 uqssp */   { "kdb50",	UQCB_DISK | UQCB_DUP,	1,  	    3 },	/* 18 kdb50 */   { "rqdx3",	UQCB_DISK | UQCB_DUP,	1,  	    3 },	/* 19 rqdx3 */   { "kdm70",	UQCB_DISK | UQCB_TAPE | UQCB_DUP, 3, 16 },	/* 20  kdm70 TEMP FOR NOW*/   { "kfqsa",	UQCB_DISK | UQCB_DUP,	2,  	    3 },	/* 21 kfqsa disk */   { "kfqsa",	UQCB_TAPE | UQCB_DUP,	2,  	    3 },	/* 22 kfqsa tape */   { "kfqsa",	UQCB_TAPE | UQCB_DISK | UQCB_DUP, 3, 3 },	/* 23 kfqsa disk and tape */   { "kfqsa",	UQCB_TAPE | UQCB_DISK | UQCB_DUP, 3, 3 },	/* 24 kfqsa other */   { "uqssp",	UQCB_DISK | UQCB_DUP, 1,  	    3 },	/* 25 */   { "kru50",	UQCB_DISK | UQCB_DUP, 1,  	    3 },	/* 26 kru50 */   { "kdm70",	UQCB_DISK | UQCB_TAPE | UQCB_DUP, 3, 16 },	/* 27  kdm70 */   { "tk70l",	UQCB_DISK | UQCB_TAPE | UQCB_DUP, 1, 3 },	/* 28  tk70l */   { "tm32",	UQCB_DISK | UQCB_TAPE | UQCB_DUP, 1, 3 }	/* 29  tm32 */};	/*	UQ port types */#define		UDA_TYPE	0		#define		RC25_TYPE	1#define		RUX_TYPE	2		#define		MAYA_TYPE	3		#define		TU81_TYPE	5#define		UDA50A_TYPE	6		#define		RQDX_TYPE	7#define		KDA50A_TYPE	13#define		TK70_TYPE	14#define		RV20_TYPE	15#define		KRQ50_TYPE	16#define		BDA_TYPE	18#define		RQDX3_TYPE	19#define		KFQSA_D_TYPE	21#define		KFQSA_T_TYPE	22#define		KFQSA_DT_TYPE	23#define		KFQSA_OTHER	24#define		KRU50_TYPE	26#define		KDM_TYPE	27#define		TQK7L_TYPE	28#define		TM32_TYPE	29#define		MAXUQNAME	29#define UQ_IP		0x00	/* UQ offset of IP register		*/#define	UQ_SA		0x02	/* UQ offset of SA register		*/#define	UQB_IP		0xF2	/* BIIC offset of BDA IP register 	*/#define UQB_SA		0xF4	/* BIIC offset of BDA read-only SA register */#define UQB_SAW		0xF6	/* BIIC offset of BDA write-only SA register */#define	UQB_IP_OFF	0x00	/* Offset of BDA IP register		*/			        /* from port reg base			*/#define UQB_SA_OFF	0x02	/* Offset of BDA read-only SA register	*/                                /* from port register base 		*/#define UQB_SAW_OFF	0x04	/* Offset of BDA write-only SA register */                                /* from port register base		*/#define UQX_IP		0x40	/* XMI offset of IP register		*/#define	UQX_SA		0x44	/* XMI offset of SA register		*/#define	UQX_PD		0x48	/* XMI offset of PD register		*/#define UQX_IP_OFF	0x00	/* Offset of XMI IP register 		*/                                /* from port register base		*/#define	UQX_SA_OFF	0x04	/* Offset of XMI SA register		*/                                /* from port register base		*/#define	UQX_PD_OFF	0x08	/* Offset of XMI PD register		*/                                /* from port register base		*/#define	Uqip		uqregptrs.uqip#define	Uqsa		uqregptrs.uqsa#define	Uqsaw		uqregptrs.uqsaw#define	Uqpd		uqregptrs.uqpd/* 	Miscellaneous defines				*/#define UQ_MAX_REINIT	3	/* Maximum number of init retries	*/#define	UQ_BURST	0x7F	/* Burst rate in controller flags field	*/#define S_IDLE  0               /* hasn't been initialized */#define S_STEP1 1               /* doing step 1 init */#define S_STEP2 2               /* doing step 2 init */#define S_STEP3 3               /* doing step 3 init */#define	S_STEP4 4		/* doing step 4 init */#define S_RUN   5               /* running *//*	UQ error log codes						*/#define	UQ_SA_FATAL		1	/* Fatal error in SA register	*/#define	UQ_RESET_FAIL		2	/* Initialization failed	*//*	SCS connection process names					*//*	NOTE: The following must be the same length as NAME_SIZE	*//*	defined in sysap.h						*/#define	DISK_NAME	"MSCP$DISK       " /* Disk server name		*/#define	TAPE_NAME	"MSCP$TAPE       " /* Tape server name		*/#define	DUP_NAME	"DUP             " /* Dup server name		*//*	uq_flags definitions						*/#define	UQ_PRB	0x00000001	/* in probe routine			*/#define	UQ_TIM	0x00000002	/* timer started			*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -