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

📄 cpuconf.c

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 C
📖 第 1 页 / 共 3 页
字号:
#ifdef lintstatic char *sccsid = "@(#)cpuconf.c	4.16    ULTRIX  3/6/91";#endif lint/************************************************************************ *									* *			Copyright (c) 1984,85,86,88,89 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.	* *									* ************************************************************************//*********************************************************************** * * Modification History: cpuconf.c * * 06-Mar-91	jaw *	optimize 3min spl * * 15-Oct-90	Randall Brown *	Added errlogging routines to cpusw for 3min. * * 09-Oct-90    jaw * 	merge in MM changes for rigel. * * 09-Oct-90    Paul Grist *      added startclock routine to cpuswitch for mipsmate, this *      fixes hangs after power-fails when the system needs to *      acess non-root disks, which are not spun up, the cases *      that were seen were swap on non-root and presto buffers. * * 01-Sep-90	sekhar *	added functions and stubs for print_consinfo interface. *      kn02_print_consinfo, kn02_log_errinfo 	- DS5000 (3MAX) *	kn220_print_consinfo, kn220_log_errinfo	- DS5500 (MIPSFAIR2) *	nullcpu stubs for other machines (both mips and vax). * * 31-Aug-90	Jim Paradis *	Added additional stubs for VAX9000 routines * * 03-Aug-90	rafiey (Ali Rafieymehr) *	Added support for VAX9000. * * 21-Jun-90	Fred L. Templin *	Added dummies for TURBOchannel data structures for case of *	DS5000 not defines. (Solution from afd). * * 20-Mar-90    Paul Grist *      Added MIPSMATE support (DS_5100). * * 30-Apr-90	Randall Brown *	Added new cpu entry for DS_5000_100.  Filled in the new values *	of the switch table for the MIPS systems. ( spls, intr, clock stuff) * * 06-Mar-90	afd *	Put mc146818startclocks() into cpu switch for pmax/3max. * * 18-Jan-90	robin *	Added kn220badaddr function to get badaddr to work with the *	way the KN220 memory intrrupts are cleared. * * 29-Dec-89	afd *	Added definitions for kn02erradr & kn02chksyn for when *	DS5000 not defined. * * 26-Dec-89	robin *	changed the kn220 write buffer routine used by 5500. * * 08-Dec-89	jaw *	fix 6200 entry from merge damage. * * 30-Nov-89    Paul Grist *      Added 8800 error logging routines as stubs for non-8800  *      VAXBI systems that will use biinit.c Did the same for *      ka6200 and ka6400. * * 14-Nov-89	gmm *	Remove kn5800_iscpu() and add kn5800_init_secondary(). * * 30-Oct-89	afd *	Use kn01 cache flush routines for kn02 (DS5000 - 3max). * * 11-Aug-89	afd *	Set up 3MAX cpu struct in cpu switch table. *	 * 10-Jul-89	burns *	For DS5800 moved several "vax" only fields into mips. Added *	the msize and cpuinit routines for afd. Added cache routines *	to the cpu switch for DS5800. * * 14-June-89	afd *	Fill in new HZ field in cpuswitch (used to be in param.c). *	hz, tick, tickadj are set in processor specific init routines. * * 23-May-89	darrell *	Merged VVAX support. * * 03-May-89	darrell *	Merged in VAX6400 support. * * 07-Apr-89	afd *	Created this file as a merged version of the old VAX cpuconf.c *	with new entries for MIPS based systems.  This file now supports *	both VAX and MIPS based systems. * **********************************************************************/#include "../machine/pte.h"#include "../h/param.h"#include "../../machine/common/cpuconf.h"#include "../machine/cpu.h"#include "../io/uba/ubareg.h"#include "../machine/nexus.h"#ifdef vax#include "../machine/ioa.h"#include "../machine/cvax.h"#endif#ifdef mips#include "../machine/kn5800.h"#endif mipsint	nocpu();int	nullcpu();int 	bbadaddr();int	readtodr();int 	writetodr();int 	uICRdelay();int 	uInoICRdelay();int 	uIInoICRdelay();int 	cVSnoICRdelay();int 	uSSCdelay();int	uRSSCdelay();int	ssc_readtodr();int	ssc_writetodr();#ifdef vaxextern short nexty750[];extern short nexty730[];extern short nextyUVI[];extern short *ioaaddr8600[];#ifdef VAX780int  	ka780nexaddr(); int	ka780umaddr();int	ka780udevaddr();int	ka780machcheck();int	ka780memerr();int	ka780setcache();int	ka780memenable();int	ka780tocons();int	ka780cachenbl();int	ka780logsbi();int	ka780conf();#endif VAX780#ifdef VAX750int	ka750machcheck();int	ka750memerr();int	ka750setcache();int	ka750memenable();int	ka750tocons();int	ka750cachenbl();int  	ka750nexaddr(); int	ka750umaddr();int	ka750udevaddr();int	ka750conf();#endif VAX750#ifdef VAX730int  	ka730nexaddr(); int	ka730umaddr();int	ka730udevaddr();int	ka730machcheck();int	ka730memerr();int	ka730memenable();int	ka730tocons();int	ka730conf();#endif VAX730#ifdef VAX8600int  	ka8600nexaddr(); int	ka8600memerr();int	ka8600setcache();int	ka8600memenable();int	ka8600tocons();int	ka8600cachenbl();int	ka8600umaddr();int	ka8600udevaddr();int	ka8600machcheck();int	ka8600logsbi();int	ka8600conf();#elsecrlintr() { /*keep locore happy*/ }  #endif VAX8600#ifdef MVAXint	ka610machcheck();int	ka610setcache();int	ka610cachenbl();int	ka610tocons();int  	ka610nexaddr(); int	ka610umaddr();int	ka610udevaddr();int	ka610conf();int	ka630setcache();int	ka630cachenbl();int	ka630tocons();int  	ka630nexaddr(); int	ka630umaddr();int	ka630udevaddr();int	ka630machcheck();int	ka630readtodr();int	ka630writetodr();int	ka630conf();#endif MVAX#ifdef VAX8200int  	ka8200nexaddr(); int	ka8200umaddr();int	ka8200udevaddr();int	ka8200machcheck();int	ka8200conf();int	ka8200memerr();int	ka8200setcache();int	ka8200memenable();int	ka8200tocons();int	ka8200cachenbl();int	ka8200readtodr();int	ka8200writetodr();int     ka8200startcpu();int     ka8200stopcpu();#elseka820slavehalt() {/* fake routine for machdep*/ }ka8200rxopen() {/* rx50 open routine */ }ka8200startrx() {/* rx50 start routine */ }rx5_intr() { /* rx50 interrupt routine */ }#endif VAX8200#ifdef VAX8800int     ka8800startcpu();int     ka8800stopcpu();int  	ka8800nexaddr(); int	ka8800umaddr();int	ka8800udevaddr();int	ka8800machcheck();int	ka8800memerr();int	ka8800conf();int 	ka8800badaddr();int	ka8800tocons();int	ka8800cachenbl();int 	ka8800setcache();int 	ka8800memenable();int	ka8800readtodr();int	ka8800writetodr();#elseka8800nmifault() { /*keep locore happy */}nmifaultclear(){/* keep locore happy */}ka8800requeue(){/* tty console driver */ }ka8800startrx(){/* start rx50 */ }rx8800_trans() {/* rx50 transmit routine */ }log_ka8800memerrs() {/* keep biinit happy */}log_ka8800bierrors() {/* keep biinit happy */}nbia_log_err() { /* keep biinit happy */}#endif VAX8800#ifdef VAX3600int	ka650machcheck();int	ka650crderr();int	ka650setcache();int 	ka650memenable();int	ka650tocons();int	ka650conf();int	ka650cachenbl();int	ka650umaddr();int	ka650udevaddr();int	ka650memerr();#endif VAX3600#ifdef VAX420int	ka420machcheck();int	ka420crderr();int	ka420setcache();int	ka420tocons();int	ka420conf();int	ka420cachenbl();int  	ka420nexaddr(); int	ka420umaddr();int	ka420readtodr();int	ka420writetodr();#endif#ifdef VAX6200int  	ka6200nexaddr(); int	ka6200umaddr();int	ka6200udevaddr();int	ka6200machcheck();int	ka6200conf();int	ka6200memerr();int	ka6200crderr();int	ka6200setcache();int	ka6200memenable();int	ka6200tocons();int	ka6200writetodr();int 	ka6200cachenbl();int 	ka6200badaddr();#elseka6200initslave() {/* init slave on calypso */ }ka6200mapcsr() { /* map csr1 on calypso*/ }ka6200halt()  { /* call out of machdep */}ka6200reboot()  { /* call out of machdep */}int *ka6200_ip;ka6200_clear_xbe() {/* call out of machdep */ }log_ka6200memerrs() {/* call out of biinit.c*/}#endif#ifdef VAX60int	ka60machcheck();int	ka60crderr();int	ka60setcache();int 	ka60memenable();int	ka60tocons();int	ka60conf();int	ka60cachenbl();int  	ka60nexaddr(); int	ka60umaddr();int	ka60udevaddr();int	ka60memerr();int	ka60writetodr();int	ka60readtodr();#elseint *ka60_ip;ka60initslave() {/* init slave on Firefox */ }ka60memerr() { /* called from locore */}ka60clrmbint() { /* clear mbus memerr interrupts */ }ka60setmbint() { /* set (enable) mbus memerr interrupts */ }#endif VAX60#ifdef VAX6400int     ka6400nexaddr();int     ka6400umaddr();int     ka6400udevaddr();int     ka6400machcheck();int     ka6400conf();int     ka6400harderr();int     ka6400softerr();int     ka6400setcache();int     ka6400memenable();int     ka6400tocons();int     ka6400writetodr();int     ka6400cachenbl();int     ka6400badaddr();#elseka6400initslave() {/* init slave on rigel */ }ka6400mapcsr() { /* map the RSSC registers on rigel*/ }ka6400halt()  { /* call out of machdep */}ka6400reboot()  { /* call out of machdep */}int *calypso_ip;ka6400_clear_xbe() {/* call out of machdep */}ka6400_disable_cache() {/* call out of machdep */}clear_xrperr() {/* call out of locore */}rxma_check_errors() {/*called by biinit.c*/}#endif#ifdef VAX9000int  	ka9000nexaddr(); int	ka9000memerr();int	ka9000setcache();

⌨️ 快捷键说明

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