📄 if_uba.h
字号:
/* * @(#)if_uba.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: /sys/vaxif/if_uba.h * * 11-jul-85 -- jaw * fix bua/bda map registers. * * 19-Jun-85 -- jaw * VAX8200 name change. * * 13 Mar 85 -- Jaw * add support for VAX8200 and bua. * * ----------------------------------------------------------------------- *//* * Structure and routine definitions * for UNIBUS network interfaces. */#define IF_MAXNUBAMR 10/* * Each interface has one of these structures giving information * about UNIBUS resources held by the interface. * * We hold IF_NUBAMR map registers for datagram data, starting * at ifr_mr. Map register ifr_mr[-1] maps the local network header * ending on the page boundary. Bdp's are reserved for read and for * write, given by ifr_bdp. The prototype of the map register for * read and for write is saved in ifr_proto. * * When write transfers are not full pages on page boundaries we just * copy the data into the pages mapped on the UNIBUS and start the * transfer. If a write transfer is of a (1024 byte) page on a page * boundary, we swap in UNIBUS pte's to reference the pages, and then * remap the initial pages (from ifu_wmap) when the transfer completes. * * When read transfers give whole pages of data to be input, we * allocate page frames from a network page list and trade them * with the pages already containing the data, mapping the allocated * pages to replace the input pages for the next UNIBUS data input. */struct ifuba { short ifu_uban; /* uba number */ short ifu_hlen; /* local net header length */ struct uba_regs *ifu_uba; /* uba regs, in vm */ struct ifrw { caddr_t ifrw_addr; /* virt addr of header */ int ifrw_bdp; /* unibus bdp */ int ifrw_info; /* value from ubaalloc */ int ifrw_proto; /* map register prototype */ struct pte *ifrw_mr; /* base of map registers */ } ifu_r, ifu_w; struct pte ifu_wmap[IF_MAXNUBAMR]; /* base pages for output */ short ifu_xswapd; /* mask of clusters swapped */ short ifu_flags; /* used during uballoc's */ struct mbuf *ifu_xtofree; /* pages being dma'd out */};#ifdef KERNELstruct mbuf *if_rubaget();#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -