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

📄 nexus.h

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 H
字号:
/* * @(#)nexus.h	4.1	ULTRIX  7/2/90 *//************************************************************************ *									* *			Copyright (c) 1983,86,87,88 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.	* *									* ************************************************************************//* ------------------------------------------------------------------------ * Modification History: /sys/vax/nexus.h * 15-Feb-88 -- fred (Fred Canter) *	Also define MAXNNEXUS as 32 for VAX420 (CVAXstar/PVAX). * * 20-Apr-87 -- afd *	Added comments to make it clear that CVAXQ does not use nexus space. *	Changed name CVAXQ to VAX3600 for Mayfair. * * 06-Mar-87 -- afd *	Set "MAXNNEXUS" to 1 if ONLY "CVAXQ" is defined.  It does *	not use "nexus" space, but rather has its own map names in spt.s. * * 14-Apr-86 -- afd *	Put MVAX into ifdef's on how big to make "MAXNNEXUS". * * 18-Mar-86 -- jaw  add routines to cpu switch for nexus/unibus addreses *		     also got rid of some globals like nexnum. *		     ka8800 cleanup. * * 19-Jun-85 -- jaw *	VAX8200 name change. * * 20-Mar-85 - JAW *	Changes for support of the VAX8200 were merged in. * * 12-Mar-85 -tresvik *	Adjusted NEXUS count for VAX8600 to be per IOA * * 27-Feb-85 -tresvik *	Changes for support of the VAX8600 were merged in. * *  6 Nov 84 -- rjl *	Support for MicroVAX-II implimentation of q-bus and local  *	registers. * *  2 Jan 84 -- jmcg *	Added support for MicroVAX Q22 bus. * *  2 Jan 84 --jmcg *	Derived from Ultrix baseline sources; heritage based on *	4.2BSD labeled: *		nexus.h	6.1	83/08/0 * * ------------------------------------------------------------------------ *//* * Information about nexus's. * * Each machine has an address of backplane slots (nexi). * Each nexus is some type of adapter, whose code is the low * byte of the first word of the adapter address space. * At boot time the system looks through the array of available * slots and finds the interconnects for the machine. * * We stretch this a little for MicroVAX-II. It has a local register * space for the toy, q-bus map registers and other goodies. Because * these things are similar int concept to adapters we use this space  * to map them in also. * * VAX3600 (ka650) does not use nexus space. If only VAX3600 is defined we set * MAXNNEXUS to 1 (so we don't get a compiler error about 0 sized nexus array). */#define	NEXSIZE	0x2000#define QNEXSIZE 0x40000#define NNEX8800 64#define NEX8800(io,i)	((short *)(0x20000000+NEXSIZE*i+(io<<25)))#define	NNEX8600	16		/* per I/o controller */#define	NEX8600(io,i)	((short *)(0x20000000+NEXSIZE*i+(io<<25)))#define NNEX8200 16#define NEX8200(i)	((short *)(0x20000000+NEXSIZE*i))#define	NNEX780	16#define	NEX780(i)	((short *)(0x20000000+NEXSIZE*i))#define	NNEX750	16#define	NEX750(i)	((short *)(0xf20000+NEXSIZE*i))#define	NNEX730	16#define	NEX730(i)	((short *)(0xf20000+NEXSIZE*i))#define	NNEXUVI	1#define	NEXUVI		((short *) -1)#define NEXUVII		((short *)0x20080000)#ifndef LOCOREstruct	nexus {	union nexcsr {		long	nex_csr;		u_char	nex_type;	} nexcsr;	long	nex_pad[NEXSIZE / sizeof (long) - 1];};#ifdef	KERNELextern struct nexus nexus[];#endif /*  KERNEL */#endif /*	LOCORE *//* * Bits in high word of nexus's. */#define	SBI_PARFLT	(1<<31)		/* sbi parity fault */#define	SBI_WSQFLT	(1<<30)		/* write sequence fault */#define	SBI_URDFLT	(1<<29)		/* unexpected read data fault */#define	SBI_ISQFLT	(1<<28)		/* interlock sequence fault */#define	SBI_MXTFLT	(1<<27)		/* multiple transmitter fault */#define	SBI_XMTFLT	(1<<26)		/* transmit fault */#define	NEX_CFGFLT	(0xfc000000)#ifndef LOCORE/* 780 and 8600 only */ #define	NEXFLT_BITS \"\20\40PARFLT\37WSQFLT\36URDFLT\35ISQFLT\34MXTFLT\33XMTFLT"#endif#define	NEX_APD		(1<<23)		/* adaptor power down */#define	NEX_APU		(1<<22)		/* adaptor power up */#define	MBA_OT		(1<<21)		/* overtemperature */#define	UBA_UBINIT	(1<<18)		/* unibus init */#define	UBA_UBPDN	(1<<17)		/* unibus power down */#define	UBA_UBIC	(1<<16)		/* unibus initialization complete *//* * Types for nex_type. */#define	NEX_ANY		0		/* pseudo for handling 11/750					   and 11/730 */#define NEX_MS780C	0x00		/* All combinations of MS780C */#define	NEX_MBA		0x20		/* Massbus adaptor */#define	NEX_UBA0	0x28		/* Unibus adaptor */#define	NEX_UBA1	0x29		/* 4 flavours for 4 addr spaces */#define	NEX_UBA2	0x2a#define	NEX_UBA3	0x2b#define	NEX_DR32	0x30		/* DR32 user i'face to SBI */#define	NEX_CI		0x38		/* CI adaptor */#define	NEX_MPM0	0x40		/* Multi-port mem */#define	NEX_MPM1	0x41		/* Who knows why 4 different ones ? */#define	NEX_MPM2	0x42#define	NEX_MPM3	0x43#define NEX_MS780E	0x60		/* All combinations of MS780E */#define NEX_MEM750	0xff		/* Fudge an adapter type for MS750 */#define NEX_MEM730	0xfe		/* Fudge an adapter type for MS730 */#define NEX_Q22		0xfd		/* Fudge an adapter type for MicroVAX */

⌨️ 快捷键说明

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