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

📄 if_imp.h

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 H
字号:
/* static	char	*sccsid = "@(#)if_imp.h	4.1	(ULTRIX)	7/2/90"; *//************************************************************************ *									* *			Copyright (c) 1985 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				* *									* *	Larry Cohen  -	09/16/85					* * 		Add 43bsd alpha tape changes for subnet routing		* *									* ************************************************************************//* * Copyright (c) 1982 Regents of the University of California. * All rights reserved.  The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * *	@(#)if_imp.h	6.2 (Berkeley) 6/8/85 *//* * Structure of IMP 1822 long leader. */struct control_leader {	u_char	dl_format;	/* leader format */	u_char	dl_network;	/* src/dest network */	u_char	dl_flags;	/* leader flags */	u_char	dl_mtype;	/* message type */	u_char	dl_htype;	/* handling type */	u_char	dl_host;	/* host number */	u_short	dl_imp;		/* imp field */	u_char	dl_link;	/* link number */	u_char	dl_subtype;	/* message subtype */};struct imp_leader {	struct	control_leader il_dl;#define	il_format	il_dl.dl_format#define	il_network	il_dl.dl_network#define	il_flags	il_dl.dl_flags#define	il_mtype	il_dl.dl_mtype#define	il_htype	il_dl.dl_htype#define	il_host		il_dl.dl_host#define	il_imp		il_dl.dl_imp#define	il_link		il_dl.dl_link#define	il_subtype	il_dl.dl_subtype	u_short	il_length;	/* message length */};#define	IMP_DROPCNT	2	/* # of noops from imp to ignore *//* insure things are even... */#define	IMPMTU		((8159 / NBBY) & ~01)/* * IMP-host flags */#define	IMP_NFF		0xf	/* 96-bit (new) format */#define	IMP_TRACE	0x8	/* trace message route */#define	IMP_DMASK	0x3	/* host going down mask *//* * IMP-host message types. */#define	IMPTYPE_DATA		0	/* data for protocol */#define	IMPTYPE_BADLEADER	1	/* leader error */#define	IMPTYPE_DOWN		2	/* imp going down */#define	IMPTYPE_NOOP		4	/* noop seen during initialization */#define	IMPTYPE_RFNM		5	/* request for new messages */#define	IMPTYPE_HOSTDEAD	6	/* host doesn't respond */#define	IMPTYPE_HOSTUNREACH	7	/* host unreachable */#define	IMPTYPE_BADDATA		8	/* data error */#define	IMPTYPE_INCOMPLETE	9	/* incomplete message, send rest */#define	IMPTYPE_RESET		10	/* reset complete *//* non-blocking IMP interface */#define	IMPTYPE_RETRY		11	/* IMP refused, try again */#define	IMPTYPE_NOTIFY		12	/* IMP refused, will notify */#define	IMPTYPE_TRYING		13	/* IMP refused, still rexmt'ng */#define	IMPTYPE_READY		14	/* ready for next message *//* * IMPTYPE_DOWN subtypes. */#define	IMPDOWN_GOING		0	/* 30 secs */#define	IMPDOWN_PM		1	/* hardware PM */#define	IMPDOWN_RELOAD		2	/* software reload */#define	IMPDOWN_RESTART		3	/* emergency restart *//* * IMPTYPE_BADLEADER subtypes. */#define	IMPLEADER_ERR		0	/* error flip-flop set */#define	IMPLEADER_SHORT		1	/* leader < 80 bits */#define	IMPLEADER_TYPE		2	/* illegal type field */#define	IMPLEADER_OPPOSITE	3	/* opposite leader type *//* * IMPTYPE_HOSTDEAD subtypes. */#define	IMPHOST_NORDY		1	/* ready-line negated */#define	IMPHOST_TARDY		2	/* tardy receiving mesgs */#define	IMPHOST_NOEXIST		3	/* NCC doesn't know host */#define	IMPHOST_IMPSOFT		4	/* IMP software won't allow mesgs */#define	IMPHOST_PM		5	/* host down for scheduled PM */#define	IMPHOST_HARDSCHED	6	/* " " " " hardware work */#define	IMPHOST_SOFTSCHED	7	/* " " " " software work */#define	IMPHOST_RESTART		8	/* host down for emergency restart */#define	IMPHOST_POWER		9	/* down because of power outage */#define	IMPHOST_BREAKPOINT	10	/* host stopped at a breakpoint */#define	IMPHOST_HARDWARE	11	/* hardware failure */#define	IMPHOST_NOTUP		12	/* host not scheduled to be up *//* 13-14 currently unused */#define	IMPHOST_COMINGUP	15	/* host in process of coming up *//* * IMPTYPE_HOSTUNREACH subtypes. */#define	IMPREACH_IMP		0	/* destination IMP can't be reached */#define	IMPREACH_HOSTUP		1	/* destination host isn't up */#define	IMPREACH_LEADER		2	/* host doesn't support long leader */#define	IMPREACH_PROHIBITED	3	/* communication is prohibited *//* * IMPTYPE_INCOMPLETE subtypes. */#define	IMPCOMPLETE_SLOW	0	/* host didn't take data fast enough */#define	IMPCOMPLETE_TOOLONG	1	/* message was too long */#define	IMPCOMPLETE_TIMEOUT	2	/* mesg transmission time > 15 sec. */#define	IMPCOMPLETE_FAILURE	3	/* IMP/circuit failure */#define	IMPCOMPLETE_NOSPACE	4	/* no resources within 15 sec. */#define	IMPCOMPLETE_IMPIO	5	/* src IMP I/O failure during receipt *//* * IMPTYPE_RETRY subtypes. */#define	IMPRETRY_BUFFER		0	/* IMP buffer wasn't available */#define	IMPRETRY_BLOCK		1	/* connection block unavailable *//* * Data structure shared between IMP protocol module and hardware * interface driver.  Used to allow layering of IMP routines on top * of varying device drivers.  NOTE: there's a possible problem  * with ambiguity in the ``unit'' definition which is implicitly * shared by the both IMP and device code.  If we have two IMPs, * with each on top of a device of the same unit, things won't work. * The assumption is if you've got multiple IMPs, then they all run * on top of the same type of device, or they must have different units. */struct impcb {	char	ic_oactive;		/* output in progress */	int	(*ic_init)();		/* hardware init routine */	int	(*ic_start)();		/* hardware start output routine */};/* * State of an IMP. */#define	IMPS_DOWN	0		/* unavailable, don't use */#define	IMPS_GOINGDOWN	1		/* been told we go down soon */#define	IMPS_INIT	2		/* coming up */#define	IMPS_UP		3		/* ready to go */#define	IMPS_RESET	4		/* reset in progress */#define	IMPTV_DOWN	(30*60)		/* going down timer 30 secs */#ifdef IMPLEADERSchar *impleaders[IMPTYPE_READY+1] = {	"DATA", "BADLEADER", "DOWN", "bad", "NOOP", "RFNM", "HOSTDEAD",	"HOSTUNREACH", "BADDATA", "INCOMPLETE", "RESET", "RETRY",	"NOTIFY", "TRYING", "READY"};#endif

⌨️ 快捷键说明

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