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

📄 if_nereg.h

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 H
字号:
#ifndef lint/* static char *sccsid = "@(#)if_nereg.h	4.2 (ULTRIX)  9/4/90"; */#endif /* lint *//************************************************************************ *									* *			Copyright (c) 1984 - 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.			* *									* *   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: * *   25-Sep-89  chc (Chran-Ham Chang) *	Created the if_nereg.h  module. This module is based upon *	a modified version of if_lnreg.h. * --------------------------------------------------------------------- *//* * Digital SGEC NI Adapter. This module handles architectures which * implement Network Interfaces by a direct programmatic interface to * the DIGITAL SGEC chip set.  *//* * SGEC ring descriptors */struct ne_ring  {        u_short   ne_flag;		/* rcv/xmt status flags */	unsigned  ne_com:15;		/* receive length ; transmit TDR */	unsigned  ne_own:1;		/* ownership bit */	u_short	  ne_resv;		/* reserved */	u_short   ne_info;		/* rcv/xmt info for SGEG */	u_short	  ne_pg_off;		/* page offset */	u_short   ne_bsize;		/* rcv/xmt buffer size */	u_long    ne_bfaddr;		/* buffer address */};  		#ifdef KERNEL#include "../h/ansi_compat.h"#else#include <ansi_compat.h>#endif#ifdef __mips#define NEDESC volatile struct ne_ring#else /* vax */#define NEDESC struct ne_ring#endif/* * SGEC receive status (ne_flag RDES0<00:15>) */#define NE_OF			0x0001	/* Overflow			*/#define NE_CE			0x0002	/* CRC error			*/#define NE_DB			0x0004	/* Dribbling Bits		*/#define NE_RTN			0x0008	/* Translation Not Valid        */#define NE_FT			0x0020	/* Frame Type 			*/#define NE_CS			0x0040	/* Collision Seen 		*/#define NE_RTL			0x0080	/* Frame Too Long		*/#define NE_RLS			0x0100	/* Last Segment			*/#define NE_RFS			0x0200	/* First Segment		*/#define NE_BO			0x0400	/* Buffer Overflow 		*/#define NE_RF			0x0800	/* Runt Frame	 		*/#define NE_RLE			0x4000	/* Length Error 		*//*  * SGEC Own bit (ne_own RDES0<31> & TDES0<31>)   */#define NE_OWN			0x0001 /* Own bit, 1 own by SGEC, 0 own/* SGEC info (ne_info RDES1<30:31> & TDES1<30:31>) */#define NE_VA			0x4000	/* Virtual Address */#define NE_CA			0x8000	/* Chain Address *//*  * SGEC error summary  */#define NE_ES			0x8000	/* Error Summary 		*//*  * SGEC packet Data type /*#define NE_DT			0x3000   /* Mask for the Data type      *//* Data Type */#define NE_DT_TNOR		0x0000   /* Normal Transmit Frame Data  */#define NE_DT_TSET		0x2000   /* Setup Frame	                */#define NE_DT_TDIA		0x3000   /* Diagnostic Frame            */#define NE_DT_RSRF		0x0000   /* Serial Received Frame       */#define NE_DT_RILF		0x1000   /* Internally Looped back Frame*/#define NE_DT_RELF		0x2000   /* External looped back Frame  *//* * SGEC transmit status (ne_flag TDES0<00:15>) */#define	NE_DE			0x0001	/* Deferred - network busy	*/#define	NE_UF			0x0002	/* Underflow Error		*/#define	NE_TTN			0x0004	/* Translation Not Valid	*/#define	NE_CC			0x0078	/* Mask for Collision Count	*/#define	NE_HF			0x0080	/* Heartbeat Fail		*/#define	NE_EC			0x0100	/* Excessive Collisions		*/#define	NE_LC			0x0200	/* Late Collision		*/#define	NE_NC			0x0400	/* No Carrier			*/#define	NE_LO			0x0800	/* Loss of Carrier 		*/#define	NE_TLE			0x1000	/* Length Error			*/#define	NE_TO			0x4000	/* Transmit Watchdog Timeout    *//* transmit info (ne_info, TDES0<24:27>)#define	NE_IC			0x0100	/* Interrupt on Completion	*/ #define	NE_TLS			0x0200	/* Last Segment			*/ #define	NE_TFS			0x0400	/* First Segment		*/ #define	NE_AC			0x0800	/* Add CRC disable		*/ /* Page Offset (ne_pg_off<7:0>) */#define NE_PF			0x00ff	/* Page Offset		        *//* * SGEC Vector Address, IPL, Sync/Asynch (CSR0) */#define NE_CSR_IV	0x0000fffc	/* Interrupt Vector		*/#define NE_CSR_SA	0x20000000	/* Sync/Asynch Mode		*/#define NE_CSR_IP	0xc0000000	/* Interrupt Priority		*/#define NE_CSR_INIT 	~(NE_CSR_IV | NE_CSR_SA | NE_CSR_IP)/*  * SGEC Transmit Polling Demand (CSR1) */#define NE_CSR1_PD	0x00000001	/* Tx Polling Demand            */ /*  * SGEC Receive Polling Demand (CSR2) */#define NE_CSR2_PD	0x00000001	/* Rx Polling Demand 		*//*  * SGEC Status Register (CSR5) */#define NE_CSR5_IS	0x00000001	/* Interrupt Summary		*/#define NE_CSR5_TI	0x00000002	/* Transmit Interrupt		*/#define NE_CSR5_RI	0x00000004	/* Receive Interrupt            */#define NE_CSR5_RU	0x00000008	/* Receive Buffer Unavailable   */#define NE_CSR5_ME	0x00000010	/* Memory Error			*/#define NE_CSR5_RW	0x00000020	/* Rx Watchdog Timer Interrupt  */#define NE_CSR5_TW	0x00000040	/* Tx Watchdog Timer Interrupt  */#define NE_CSR5_BO	0x00000080	/* Boot_Message			*/#define NE_CSR5_DN	0x00010000	/* Done				*/#define NE_CSR5_OM	0x00060000	/* Operating Mode		*//* Operation Mode */#define NE_OM5_NOR	0x00000000	/* Normal Operation Mode        */#define NE_OM5_INL	0x00020000	/* Internal Loopback            */#define NE_OM5_EXL	0x00040000	/* External Loopback            */#define NE_OM5_DIA	0x00060000	/* Diagnostic Mode	        */#define NE_CSR5_RS	0x00c00000	/* Reception process State      *//* Reception process State */#define NE_RS_STP	0x00000000	/* Stoppped		        */#define NE_RS_RUN	0x00400000	/* Running		        */#define NE_RS_SUP	0x00800000	/* Suspended                    */#define NE_CSR5_TS	0x03000000	/* Transmission process State   *//* Reception process State */#define NE_TS_STP	0x00000000	/* Stoppped		        */#define NE_TS_RUN	0x01000000	/* Running		        */#define NE_TS_SUP	0x02000000	/* Suspended                    */#define NE_CSR5_SS	0x3c000000	/* Self Test Status		*//* Reception process State */#define NE_SS_ROM	0x04000000	/* ROM Error 		        */#define NE_SS_RAM	0x08000000	/* RAM Error 		        */#define NE_SS_AFR	0x0c000000	/* Address filter RAM Error	*/#define NE_SS_TFF	0x10000000	/* Transmit FIFO Error	        */#define NE_SS_RFF	0x14000000	/* Receive FIFO Error	        */#define NE_SS_SLE	0x18000000	/* Self test Loopback Error     */#define NE_CSR5_SF	0x40000000	/* Self Test Failed 		*/#define NE_CSR5_ID	0x80000000	/* Initialization Done		*//* * SGEC Command and Mode Register (CSR6) */#define NE_CSR6_AF 	0x00000006   	/* Address Filtering Mode *//* Address Filtering Mode */#define NE_AF_NOR 	0x00000000 	/* Normal			 */#define NE_AF_PRO 	0x00000002 	/* Promiscuous			 */#define NE_AF_MUL 	0x00000004 	/* ALL Multicast  		 */  #define NE_CSR6_PB	0x00000008	/* Pass Bad Frames Mode		*/#define NE_CSR6_FC	0x00000040	/* Force Collision Mode		*/#define NE_CSR6_DC	0x00000080	/* Disable Data Chaining Mode	*/#define NE_CSR6_OM	0x00000300	/* Operating Mode 		*//* Operation Mode */#define NE_OM6_NOR	0x00000000	/* Normal Operation Mode        */#define NE_OM6_INL	0x00000100	/* Internal Loopback            */#define NE_OM6_EXL	0x00000200	/* External Loopback            */#define NE_OM6_DIA	0x00000300	/* Diagnostic Mode	        */#define NE_CSR6_SR	0x00000400	/* Start/Stop Rx Command	*/#define NE_CSR6_ST	0x00000800	/* Start/Stop Tx Command	*/#define NE_CSR6_SE	0x00080000	/* Single Cycle Enable Mode	*/#define NE_CSR6_BE	0x00100000	/* Boot Message Enable Mode     */#define NE_CSR6_BL	0x1e000000	/* Burst Limit Mode	        */#define NE_CSR6_IE	0x40000000	/* Interrupt Enable Mode        */#define NE_CSR6_RE	0x80000000	/* Reset Command	        *//* * SGEC Revision Number and Missed Frame Count (CSR10) */#define NE_CSR10_MFC	0x0000ffff	/* Mask for Missed Frame Count  */#define NE_CSR10_RN	0x000f0000	/* Chip Revision Number	        *//*  * SGEC Boot Message (CSR11,12,13) */#define NE_CSR13_PRC	0x0000007f	/* Boot Message Processor ID    *//*  * SGEC setup frame error indicator */#define NE_SETUP_IC	0x01000000	/* Interrup on Completion */#define NE_SETUP_SE	0x00002000	/* Setup frame length error *//* * Misc */#define NE_CC_SHIFT 	3		/* Transmit Collision Count     */ #define NE_BL_SHIFT	24		/* Burst limit shift */#define NE_RE_SHIFT	16		/* Revision number shift */#define NE_BURST_SHIFT 	25		/* Burst limit shift */#define NE_OCTAWORD     0x00000007      /* octaword alignment */#define NE_LONGWORD     0x00000003      /* longword alignment */#define NE_WORD     	0x00000001      /* word alignment */#define NE_IPL_14       0x00000000      /* SGEC IPL 14  */#define NE_IPL_15       0x40000000      /* SGEC IPL 15  */#define NE_IPL_16       0x80000000      /* SGEC IPL 16  */#define NE_IPL_17       0xc0000000      /* SGEC IPL 17  */#define NE_BUS_ASYN     0x00000000      /* SGEC Asyn Mode  */#define NE_BUS_SYN      0x20000000      /* SGEC Syn Mode   */

⌨️ 快捷键说明

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