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

📄 ciport.h

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 H
📖 第 1 页 / 共 5 页
字号:
/* *	@(#)ciport.h	4.3	(ULTRIX)	12/20/90 *//************************************************************************ *                                                                      * *                      Copyright (c) 1988 - 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.     * *                                                                      * ************************************************************************ * * *   Facility:	Systems Communication Architecture *		Computer Interconnect Port Driver * *   Abstract:	This module contains Computer Interconnect Port Driver( CI ) *		constants, data structure definitions, port command *		definitions, register definitions, and macros. * *   Creator:	Todd M. Katz	Creation Date:	April 22, 1985 * *   Modification History: * *   19-Dec-1990	Pete Keilty *	1. Added support for NADP bit in Exp_mask, setckt, fcn_ext2 register *	   and new macro NADP_MASK( value ). *	2. Added new define CIXCD_XBE_TTO. *	3. Added 2 u_shorts to SETCKT/CKTSET structure for REV H of CI PORT. *	   VCD and RESEQ resources lower bounds. * *   16-Oct-1990	Pete Keilty *	1. Removed lk_cidevice, now define in cipccb structure cidevice_lk. *	2. Added locking around register accesses in the wait macros. *	3. The above was done beccuase of the CIXCD XMOV bug. * *   15-Jun-1990	Pete Keilty *	Added temporary smp lock lk_cidevice for CIXCD because of XMOV bug. * *   06-Jun-1990	Pete Keilty *	1. Added six new severity codes for CIXCD, they are SE_INVPA, *	   SE_INVSN, SE_INVDDL, SE_IRESVCD, SE_IRESEQ, SE_DISCVCPKT. *	2. Added perliminary support for CIKMF and SHAC. * *   06-Feb-1990	Pete Keilty *	Moved Get_pgrp macro here from gvp.h. * *   08-Dec-1989	Pete Keilty *	1. Changed a few XCD register offsets that where wrong. *	2. Added two new macros Cibx_wait_unin() & Cibx_wait_pic_clear() *	   used in cibx_start() routine. * *   19-Sep-1989	Pete Keilty *	1. Add XCD support, remove XCB. *	2. Add new Explicit command addressing ( Subnode ECO ). * *   17-Jan-1989	Todd M. Katz		TMK0007 *	1. The macro Scaaddr_lol() has been renamed to Scaaddr_low().  It now *	   accesses only the low order word( instead of low order longword ) of *	   a SCA system address. *	2. Modify macros Ci7b_wait_mif() and Cibx_wait_mif().  Change the *	   manual interrupt checking interval from 1 msec to 10 msec to conform *	   to the granularity of the clock. * *   22-Sep-1988	Todd M. Katz		TMK0006 *	1. Delete the console formatting code CF_RPORT( Remote port station *	   address logged ).  It is now defined by the CI PPD. *	2. Console log SE_POWER severe error events depending upon the current *	   CI severity level.  Formerly, such events were always logged to the *	   console irregardless of the current CI severity level. * *   17-Aug-1988	Todd M. Katz		TMK0005 *	 1. SCA event codes have been completely revised.  Former CI path crash *	    codes are now divided into error events( NOCABLES, CLOSEDVC, *	    RPORTSTATE ) and severe error events( BMSE, INVRPKTSIZE, UNRECPKT, *	    OSEQMSG ).  Former CI local port crash codes are now divided into *	    severe error events( POWER, POWERUP, INVBNAME, INVBSIZE, BACCVIO, *	    INVLPKTSIZE, INVDPORT, UNKCMD, ABORTPKT, UNKSTATUS, UNKOPCODE, *	    INVOPCODE, MSI, BIMSE, DSE, PARITY, BIPARITY, PORTERROR, BIERROR, *	    SANITYTIMER, MFQE ) and fatal error events( BADMAXPORT, BADUCODE, *	    NOCI ).  The local port crash severity modifier is applied by *	    ci_crash_lport(). *	 2. Redefine the following informational events( ES_I ) as warning *	    events( ES_W ): CABLE0_GB, CABLE1_GB, CABLES_UC, CABLE0_LBGB, *	    CABLE1_LBGB, UCODE_WARN, POWER, STRAY. *	 3. Redefine the following informational events( ES_I ) as remote error *	    events( ES_RE ): RPORT_STATE. *	 4. Redefine the following informational events( ES_I ) as error *	    events( ES_E ): UCODE_LOAD, UCODE_START. *	 5. Redefine the following informational events( ES_I ) as fatal error *	    events( ES_FE ): INIT_NOUCODE, INIT_CPU, INIT_NOMEM, INIT_ZEROID, *	    INIT_UNKHPT, INIT_MISMTCH, NOCI. *	 6. GVP event codes no longer occupy their own name space.  They now *	    occupy part of and are defined with each ( appropriate ) port *	    drivers' name spaces.  Therefore, add the following former GVP *	    severe error event codes: ICMDQ0, ICMDQ1, ICMDQ2, ICMDQ3, IDFREEQ, *	    IMFREEQ, RRSPQ, RDFREEQ, RMFREEQ. *	 7. Define the informational events: LPORT_INIT and LPORT_REINIT, the *	    error event: NOMEM, the severe error event: BADPORTNUM, and the *	    fatal error event: PORTERROR. *	 8. Rename the informational condition event mnemonic from IE -> I. *	 9. Eliminate one of the reserved CI special console logging format *	    codes and re-number the remaining codes.  Add CF_LPORT( local port *	    station address ), CF_CPU( CPU revision level ), and CF_INIT( *	    initial local port initialization information ) as console logging *	    format codes. *	10. Rename FE_INIT_CPU -> FE_CPU. *	11. Add macros Elcidattn(), and Elcicpurevlev(), delete macro Elci(), *	    and update macros Elciciregs(), Elcibiregs(), Elcixmiregs(), *	    Elcirevlev(), and Elciucode(). * *   23-Apr-1988	Todd M. Katz		TMK0004 *	 1. Create a single unified hierarchical set of naming conventions for *	    use within the CI port driver and describe them.  Apply these *	    conventions to all names( routine, macro, constant, and data *	    structure ) used within the driver.  Restructure the driver to *	    segregate most CI family and port type specific code into separate *	    routines.  Such restructuring requires creation of new PCCB fields *	    and the corresponding shorthand notations( macros ) to refer to *	    them including: Mrltab, Dg_cache, Msg_cache, Start_port, *	    Disable_port, Load_ucode, Max_fn_level, Max_rom_level. *	 2. Add support for the CIXCB hardware port type by defining *	    appropriate constants and macros. *	 3. Add macros Cibx_onboard(), Ci7b_allram(), Ci7b_wait_mif(), and *	    Cibx_wait_mif() and shorthand notations Lpstatus, Pstatus, and *	    Rport_state; and, remove macros Flush_rspq(), Init_dattnopt(), and *	    Store_reg() and shorthand notation Bierr_int. *	 4. Create cache size constants for each CI family as local port *	    internal free queue cache size varies from family to family. *	 5. Move the CIBCA Device Type Register Port Revision Field Mask Bits *	    constants to ciadapter.h and remove the Adapter Type Code *	    constants. *	 6. Update the current maximum RAM/functional and PROM/self-test *	    microcode revision levels for all hardware port types. *	 7. Rename CF_PORT -> CF_RPORT and renumber all console logging format *	    codes to reflect additions to format codes used by the CI PPD. *	 8. Eliminate the informational condition IE_INVHPT, renumber the *	    remaining informational condition codes, and add the informational *	    conditions IE_STRAY, IE_POWER, and IE_POWERUP.  Also add the panic *	    PANIC_BADUNMAP. *	 9. Add the Local Port Mapping Constants. *	10. Update many of the error log macros referencing various CI error *	    log packet fields to reflect changes in various field names.  Also, *	    add macros Elcirevlev(), Elcipacket(), and Elciucode() while *	    removing macros Elcidattn(), Elcilpktopt(), and Elcilpkt(). * *   02-Apr-1988	Todd M. Katz		TMK0003 *	1. Add support for the CIBCA-BA hardware port type and for onboard *	   CIBCA-BA port microcode.  Differentiate CIBCA-BA from CIBCA-AA *	   hardware ports when necessary; otherwise, refer to both types as *	   just CIBCA ports. *	2. Delete the definition CI_CSZ_224.  It is an illegal cluster size. *	3. Rename: *	   1) MIN_CPU750_REV -> MIN_C750_REV *	   2) CIBCA_RAM_ADDR -> CIBCA_FN_ADDR *	   3) CIBCA_ROM_ADDR -> CIBCA_ST_ADDR *	   4) CIBCA_AA_MAXRAM -> CIBCA_AA_MAXFN *	   5) CIBCA_BA_MAXRAM -> CIBCA_BA_MAXFN *	   6) Cibca_ram_level() -> Cibca_fn_level() *	   7) Cibca_rom_level() -> Cibca_st_level() *	4. Add the definitions CIPANIC_REQLPC and CIPANIC_ONBOARD. *	5. Change the definitions CI_DG_CACHE and CI_MSG_CACHE from 3 -> 4. *	   This forces 4 datagrams and 4 messages to be allocated and inserted *	   onto the appropriate local port free queue whenever the port is *	   initialized. *	6. Add macro Elcicommon(). * *   16-Mar-1988	Todd M. Katz		TMK0002 *	Resolved a problem with the macro Cibca_ucode() which was incorrectly *	determining whether or not a given instance of CI port microcode was *	of a type appropriate for use by a CIBCA local CI port. * *   08-Jan-1988	Todd M. Katz		TMK0001 *	Formated module, revised comments, increased generality and *	robustness, made CI PPD and GVP completely independent from underlying *	port drivers, and added SMP support. *//* CI Port Driver Naming Conventions. * * There are currently six CI hardware port types.  All six types are * sufficiently related to one another to allow their control by a single port * driver.  Differences between the types also exist.  Some of these * differences are trivial and may be coped with through appropriate special * casing.  Others are not so minor and special casing is not sufficient in and * of itself to handle them. * * Major differences between hardware port types are ultimately based upon * discrepancies in port register formats.  Fortunately, not all types possess * unique register formats.  This allows the six hardware port types to be * grouped into two families based upon shared register formats: * * 1. The CI7B family consisting of CI750, CI780, and CIBCI hardware port *    types. * 2. The CIBX family consisting of CIBCA-AA, CIBCA-BA, and CIXCD hardware port *    types. * * It is this grouping into families which provides the basis for the CI port * driver naming conventions.  These naming conventions affect routine, macro, * constant, and data structure names.  They are listed below in the form of a * set of rules: * * 1. Global names( routines ) pertaining to all hardware ports are prefixed *    with "ci_" as in the routine ci_probe(). * 2. Local names( constants, data structures, macros ) pertaining to all *    hardware ports have no specific prefix as in the constant MAX_CABLES, the *    macro Comp_loopback(), and the data structure VCD. * 3. Names pertaining to a specific family are prefaced with the family name *    as in the routine ci7b_load(), the constant CI7B_DG_CACHE, the macro *    Ci7b_allram(), and the data structure CI7B_UCODEH. * 4. Names pertaining to a specific hardware port type are are prefaced with *    the specific port type itself as in the routine cibca_aa_load(), and the *    constant CIXCD_MAXFN. * * There are two exceptions to rule 4 based upon hardware port types so * identical that the CI port driver almost never needs to distinguish between * them.  The CI750 and CI780 are such a pair of identical ports.  Routines, * data structures, and constants pertaining to them use the prefixes "ci780_", * "CI780_", and "CI780_" respectively when no need exists to distinguish * between them.  The CIBCA-AA and CIBCA-BA are another pair of nearly * identical ports.  They use the prefixes "cibca_" "CIBCA_", and "CIBCA_" when * no need to distinguish between them exists. *//* CI Constants. */					/* Cable Update Type Codes	     */#define	CABLE_GB		 1	/* Check good->bad transitions	     */#define	CABLE_BG		 2	/* Check bad->good transitions	     */#define	CABLE_CROSSED		 3	/* Check crossing transitions	     */#define	CABLE_LB_GB		 4	/* Chk loopback good->bad transitions*/#define	CABLE_LB_BG		 5	/* Chk loopback bad->good transitions*/

⌨️ 快捷键说明

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