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

📄 vxreg.h

📁 早期freebsd实现
💻 H
字号:
/* * Copyright (c) 1988 Regents of the University of California. * All rights reserved. * * This code is derived from software contributed to Berkeley by * Computer Consoles Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software *    must display the following acknowledgement: *	This product includes software developed by the University of *	California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * *	@(#)vxreg.h	7.4 (Berkeley) 6/28/90 *//* * Vioc hardware interface structure. */struct	vxdevice {	char	v_vioc;		/*  0 type of interrupt + vioc busy flag */	char	v_hdwre;	/*  1 trap, reset, or hard interrupt */	char	v_vcbsy;	/*  2 command busy (set by host) */	char	v_vcid;		/*  3 command identifier */	short	v_vcp[2];	/*  4 command pointer (sent by host) */	short	v_unused;	/*  8 unused */	short	v_rspoff;	/*  a offset into vblock for response buf */	char	v_ustat;	/*  c status */	char	v_uqual;	/*  d interrupt qualifier */	char	v_usdata[0x3E];	/*  e unsolicited interrupt data */	short	v_maxxmt;	/* 4C max xmit block size */	short	v_maxsilo;	/* 4E max silo size */	char	v_ident;	/* 50 identifies type of vioc */	char	v_fault;	/* 51 denotes fault or ready after reset */	short	v_dcd;		/* 52 bit mask for carr detect by port */	short	v_cts;		/* 54 bit mask for cts by port */	short	v_dsr;		/* 56 bit mask for dsr by port */	short	v_secrec;	/* 58 bit mask for secondary receive */	short	v_badport;	/* 5a bit mask of failed ports */	char	v_portyp[16];	/* 5c type of each port */};/* control bits for v_vioc and v_hdwre */#define	V_RESET 0x1		/* cause a vioc reset */#define	V_TRP	0x2		/* cause a vioc trap */#define	V_INTR	0x4		/* cause a vioc interrupt */#define	V_ERR	0x80		/* generic error flag */#define	V_BSY	0x80		/* generic busy flag */#define	V_UNBSY	0x80		/* not busy for unsolicited interrupt *//* command identifier codes */#define	VXC_LIDENT	0x0000		/* load ident, set int vectors */#define	VXC_XMITDTA	0x0200		/* transmit */#define	VXC_XMITIMM	0x0400		/* xmit immediate */#define	VXC_FDTATOX	0x0300		/* flush data */#define	VXC_LPARAX	0x0600		/* load params */#define	VXC_SNDBRKX	0x0C00		/* send break to port */#define	VXC_MDMCTL	0x1000		/* auto modem control *//* bisync specific command identifiers */#define	VXC_LPARAX1	0x060a#define	VXC_MDMCTL1	0x1004#define	VXC_HUNTMD1	0x0804/* vioc types returned during config */#define	VXT_VIOCBOP	0x05		/* vioc-bop */#define	VXT_PVIOCX	0x0A		/* old connector panel vioc-x */#define	VXT_VIOCX	0x0B		/* new connector panel vioc-x */#define	VXT_VIOCB	0x0C		/* vioc-bisync */#define	VXT_NEW		0x10		/* new type bit (or'd in) */#define	VX_BISYNC	0x1		/* bisync flag indicator for bscport *//* connector panel types (per port) */#define	VXT_NONE	0		/* no connector panel */#define	VXT_8PORT	1		/* 8 port RS-232C */#define	VXT_RS422	2		/* 8 port RS-422 (nonexistent) */#define	VXT_4PORT	3		/* 4 port RS-232 (with DSR/RING) */#define	VXT_PARALLEL	4		/* 4 port panel parallel port *//* v_fault status values */#define	VXF_READY	0x55		/* no err in vioc self-initializaton *//* line parameters, set with VXC_LPARAX */#define	BITS5		0x00		/* 5 bits per character */#define	BITS6		0x80		/* 6 bits per character */#define	BITS7		0x40		/* 7 bits per character */#define	BITS8		0xc0		/* 8 bits per character */#define	VNOPARITY	0x00		/* no parity bit */#define	VODDP		0x01		/* odd parity bit */#define	VEVENP		0x03		/* even parity bit */#define	VSTOP1		0x04		/* 1 stop bit */#define	VSTOP2		0x0c		/* 2 stop bit */#define	V19200		0x13		/* 19.2 kbaud *//* modem control flags */#define	VMOD_ON		1#define	VMOD_OFF	0#define	V_AUTO		0x00		/* auto control of RTS, uses CTS */#define	V_MANUAL	0x80		/* manual control of RTS, ignore CTS */#define	V_DTR_ON	0x02		/* set DTR output */#define	V_DTR_OFF	0x00		/* drop DTR output */#define	V_RTS		0x01		/* set RTS output (manual only) */#define	BRK_CHR	040			/* break character */#define	DCD_ON	020			/* */#define	DCD_OFF	010			/* */#define	CTS_ON	004			/* */#define	DSR_ON	0200			/* modem signal states for bisync */#define	DSR_OFF 0100#define	DSR_CHG	(DSR_ON|DSR_OFF)#define	VX_SILO	0x800			/* offset to base of silo *//* input status bits returned in silo */#define	VX_PE	0x40			/* parity error */#define	VX_FE	0x80			/* framing error */#define	VX_RO	0xc0			/* receiver overrun *//* VIOC Process Error (PROCER) codes */#define	VP_SILO_OFLOW	0x40		/* input silo error, non-fatal */#define	VRESPLEN	12#define	VCMDLEN		64#define	VC_IQLEN	64		/* Interrupt circular queue length */#define	NVCXBUFS	16*3		/* 3 bufs per port per viocx */#define	VC_CMDBUFL	NVCXBUFS	/* circular cmd (to exec) queue len*/struct	vcmds {	int	v_cmdsem;		/* # cmds waiting for itrque */	int	v_curcnt;		/* # cmds in itrque and executing */	caddr_t	v_curcmd[VCMDLEN];	/* pointers to cmds being executed */	int	v_fill;			/* circular fill index */	int	v_empty;		/* circular empty index */	caddr_t	cmdbuf[VC_CMDBUFL];	/* circular cmd (to exec) queue */	int	v_itrfill;		/* circular intr issue queue fill */	int	v_itrempt;		/* circular intr issue queue empty */	short	v_itrqueu[VC_IQLEN];	/* circular intr issue queue */};struct	vxcmd {	struct	vxcmd *c_fwd;	short	cmd;	char	par[58];		/* pad to 64 total size */};struct	vxmit {	char	line;	char	bcount;	char	ostream[6];};#define	SSPEED	13			/* standard speed 9600 bps */

⌨️ 快捷键说明

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