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

📄 vmb.h

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 H
字号:
/*	@(#)vmb.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.			* *									* *   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: * * 06-Mar-90 -- rafiey (Ali Rafieymehr) *	Defined BTD$K_KDM70 for KDM70. * * 14-Jul-88 -- fred (Fred Canter) *	Changed PVAX SCSI disk BTD from 36 to 42 (match new VMB). * * 02-Mar-87 -- logcher *	Merged in diskless changes, removed asrvname, asrvipadr, *	selflg from vmb_info.netblk and added new fields */#include "../mop.h"#define IO$_SEEK       0x2#define IO$_WRITELBLK  0x20#define IO$_READLBLK   0x21#define IO$_READPBLK   0x0c#define IO$_REWIND     0x24#define IO$_SKIPFILE   0x25#define IO$_SKIPRECORD 0x26#define PHYSMODE   0x00#define VIRTMODE   0x01/* * VMS $RPBDEF */#define	RPB$L_BOOTR3	40#define	RPB$L_BOOTR5	48#define RPB$L_IOVEC	52#define RPB$L_IOVECSZ	56#define RPB$Q_PFNMAP	68#define RPB$L_PFNCNT	76#define RPB$L_CSRPHY	84#define RPB$L_CSRVIR	88#define RPB$L_ADPPHY	92#define RPB$L_ADPVIR	96#define RPB$W_UNIT	100#define RPB$B_DEVTYP	102#define RPB$T_FILE	104/* * VMS $VMBARGDEF */#define	VMB$L_ARGBYTCNT	0	/* offset to the arg count */#define	VMB$Q_FILECACHE	4	/* FILEREAD Cache Descriptor */#define	VMB$L_LO_PFN	12	/* Lowest PFN found by VMB */#define	VMB$L_HI_PFN	16	/* Highest PFN exclusive */#define	VMB$Q_PFNMAP	20	/* PFN Bitmap descriptor */#define	VMB$Q_UCODE	28	/* Loaded ucode descriptor */#define	VMB$B_SYSTEMID	36	/* 48 bit SCS systemid */#define	VMB$L_FLAGS	44	/* Word of flags */#define	VMB$L_CI_HIPFN	48	/* Highest PFN used by CI code */#define	VMB$Q_NODENAME	52#define	VMB$Q_HOSTADDR	60#define	VMB$Q_HOSTNAME	68#define	VMB$Q_TOD	76#define	VMB$L_XPARAM	84#define	VMB$L_BVP_PGTBL	88	/* Used with BVP boot driver */#ifndef LOCOREstruct vmbargs {	int	argbytcnt;	int	filecache[2];	int	lo_pfn;	int	hi_pfn;	int	pfnmap[2];	int	ucode[2];	char	systemid[8];	int	flags;	int	ci_hipfn;	char	nodename[8];	unsigned char	hostaddr[8];	char	hostname[8];	char	tod[8];	int	xparam;	int	bvp_pgtbl;};#endif /* LOCORE *//* * ERROR Status */#define SS$_NORMAL	1#define SS$_CTLRERR	84#define SS$_DEVOFFLINE	132#define SS$_PARITY	500#define SS$_BUFBYTALI	780#define SS$_NOSUCHDEV	2312#define SS$_ENDOFFILE	2160/* * VMS $BQODEF */#define	BQO$L_QIO	0		/*used*/#define	BQO$L_MAP	4#define	BQO$L_SELECT	8#define	BQO$L_DRIVRNAME	12#define	BQO$W_VERSION	16#define	BQO$W_VERCHECK	18#define	BQO$L_RESELECT	20#define	BQO$L_MOVE	24#define	BQO$L_UNIT_INIT	28		/*used*/#define	BQO$L_AUXDRNAME	32#define	BQO$L_UMR_DIS	36#define	BQO$L_UCODE	40		/*used*/#define	BQO$L_UNIT_DISC	44#define	BQO$L_DEVNAME	48#define	BQO$L_UMR_TMPL	52#define	BQO$B_UMR_DP	56#define	BQO$B_CPUTYPE	57#define	BQO$L_CPUDATA	58#define	BQO$L_TENUSEC	62#define	BQO$L_UBDELAY	66/* * TODO: *	Some of the BTD$ codes don't match the VMS *	VMB codes. The following changes are needed: * *	1. BTD$K_KA640_* should be replaced with BTD$K_KA410_*. *	2. BTD$K_KA420_DISK is 42 it should be 36. *	3. Need BTD$K_KA420_5380_DISK 42 and BTD$K_KA420_5380_TAPE 37 *	   for PVAX SCSI disks and tapes. * *	It's too close to release time to make these changes now. */#define BTD$K_MB	0		/* MASSBUS */#define BTD$K_DM	1		/* RK06/RK07 */#define BTD$K_DL	2		/* RL01/RL02 */#define BTD$K_DQ	3		/* IDC/R80/RL02 */#define BTD$K_PROM	8		/* On UVAX (Q-bus Prom) */#define BTD$K_PROM_COPY	9		/* PROM copied to host memory */#define BTD$K_UDA	17		/* RQDX/UDA50/KDA50 */#define BTD$K_TK50	18		/* TK50 (Maya) */#define BTD$K_HSCCI	32		/* HSC on a CI */#define BTD$K_BDA	33		/* KDB50 on a BI */#define BTD$K_BVPSSP	34		/* AIO on a BI */#define BTD$K_AIE_TK50	35		/* AIE/TK50 */#define BTD$K_KA640_DISK 36		/* ST506 disk */#define BTD$K_KA410_DISK 36		/* */#define BTD$K_KA640_TAPE 37		/* SCSI TK50 */#define BTD$K_KA410_TAPE 37		/* */#define BTD$K_KA420_TAPE 37		/* PVAX SCSI TZ30/TZK50 */#define BTD$K_DISK9	38		/* */#define BTD$K_SII	39		/* MSI (DSSI) disk */#define BTD$K_KFSQSA	40		/* RF controller ? */#define BTD$K_SHAC	41		/* */#define	BTD$K_KA420_DISK 42		/* PVAX SCSI disk */#define BTD$K_KDM70	43      	/* KDM70 */#define BTD$K_CONSOLE	64		/* Console block storage device */#define BTD$K_NET_DLL	96		/* */#define BTD$K_QNA	96		/* DEQNA */#define BTD$K_AIE_NI	98		/* DEBNA */#define BTD$K_KA640_NI	99		/* NI Option */#define	BTD$K_LANCE	99		/* LANCE NI device */#define BTD$K_NISCS	128		/* */#define BLKSIZ		512#define BBLKS		40#define BOOTSZ		BLKSIZ*BBLKS#define RPBSIZ		512#ifndef KERNEL#define HIGH		31#endif /* KERNEL *//* * Type of boot */#define VMB_BOOT	0x01#define ROM_BOOT	0x02#define TK50_BOOT	0x04#define NET_BOOT	0x08/* * Miscellaneous */#define CONTROL_S 19#define CONTROL_Q 17#define INBUFSZ 256/* * Structure in which to pass information between boot and vmunix * WARNING:  If this structure changes, it will be necessary to change the  * offsets below. */#ifndef LOCOREstruct	vmb_info {	int	vmbvers;	/* VMB version number */	int	memsiz;		/* size of available physical memory in pages*/	int	btdrsiz;	/* size of the boot driver */	int	*btdrbas;	/* base address of the boot driver */	int	rpbsiz;		/* size of the RPB */	int	*rpbbas;	/* base address of the RPB */	int	vmbargsiz;	/* size of the VMB argument list */	int	*vmbargbas;	/* base address of the VMB argument list */	int	ciucodesiz;	/* size of the CI ucode */	int	*ciucodebas;	/* base address of the CI ucode */	int	future[10];	/* Future expansion */	struct netblk netblk;};#ifdef KERNELstruct	vmb_info vmb_info;#endif /* KERNEL */#endif /* LOCORE *//* * The above structure is filled in by the startup code which is assembly * code.  Therefore, it is necessary to build the following set of  * definitions to access the fields as offsets off the base address of * the structure. */#define INFO_SIZE	40	/* Size of VMB info list */#define INFO_VMBVERS	0x00	/* VMB version number */#define INFO_MEMSIZ	0x04	/* max address of memory + 1 */#define INFO_BTDRSIZ	0x08	/* size of the boot driver */#define INFO_BTDRBAS	0x0c	/* phys address of the boot driver */#define INFO_RPBSIZ	0x10	/* size of the RPB */#define INFO_RPBBAS	0x14	/* phys address of the RPB */#define INFO_VMBARGSIZ	0x18	/* size of the VMB arg list */#define INFO_VMBARGBAS	0x1c	/* phys address of the VMB arg list */#define INFO_CIUCODSIZ	0x20	/* size of the UCODE */#define INFO_CIUCODBAS	0x24	/* phys address of the UCODE */

⌨️ 快捷键说明

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