FreeBSD/Linux Kernel Cross Reference
sys/dev/hfa/fore.h
1 /*
2 *
3 * ===================================
4 * HARP | Host ATM Research Platform
5 * ===================================
6 *
7 *
8 * This Host ATM Research Platform ("HARP") file (the "Software") is
9 * made available by Network Computing Services, Inc. ("NetworkCS")
10 * "AS IS". NetworkCS does not provide maintenance, improvements or
11 * support of any kind.
12 *
13 * NETWORKCS MAKES NO WARRANTIES OR REPRESENTATIONS, EXPRESS OR IMPLIED,
14 * INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY
15 * AND FITNESS FOR A PARTICULAR PURPOSE, AS TO ANY ELEMENT OF THE
16 * SOFTWARE OR ANY SUPPORT PROVIDED IN CONNECTION WITH THIS SOFTWARE.
17 * In no event shall NetworkCS be responsible for any damages, including
18 * but not limited to consequential damages, arising from or relating to
19 * any use of the Software or related support.
20 *
21 * Copyright 1994-1998 Network Computing Services, Inc.
22 *
23 * Copies of this Software may be made, however, the above copyright
24 * notice must be reproduced on all copies.
25 *
26 * @(#) $FreeBSD: releng/5.3/sys/dev/hfa/fore.h 78505 2001-06-20 17:09:14Z pirzyk $
27 *
28 */
29
30 /*
31 * FORE Systems 200-Series Adapter Support
32 * ---------------------------------------
33 *
34 * Protocol and implementation definitions
35 *
36 */
37
38 #ifndef _FORE_H
39 #define _FORE_H
40
41 #ifndef FORE_DEV_NAME
42 #define FORE_DEV_NAME "hfa"
43 #endif
44
45 #define FORE_MAX_UNITS 8 /* Maximum number of devices we support */
46 #define FORE_MIN_UCODE 0x20300 /* Minimum microcode version we support */
47
48 #define FORE_IFF_MTU 9188 /* Network interface MTU */
49 #define FORE_MAX_VCC 1024 /* Maximum number of open VCCs */
50 #define FORE_MAX_VPI 0 /* Maximum VPI value */
51 #define FORE_MAX_VCI 1023 /* Maximum VCI value */
52 #define FORE_DEF_RATE 0x00000000 /* Default rate control = disabled */
53
54 #define XMIT_QUELEN 32 /* Length of transmit queue */
55 #define RECV_QUELEN 32 /* Length of receive queue */
56 #define CMD_QUELEN 8 /* Length of command queue */
57
58 #define FORE_TIME_TICK 5 /* Watchdog timer tick (seconds) */
59 #define FORE_WATCHDOG 3 /* Device watchdog timeout (ticks) */
60 #define FORE_RECV_RETRY 3 /* Wait for receive queue entry retry count */
61 #define FORE_RECV_DELAY 10 /* Wait for receive queue entry delay (usec) */
62
63
64 /*
65 * Receive Buffer strategies
66 */
67 #define BUF_MIN_VCC 4 /* Minimum for buffer supply calculations */
68
69 #define BUF_DATA_ALIGN 4 /* Fore-required data alignment */
70
71 /*
72 * Strategy 1 Small - mbuf
73 * Strategy 1 Large - cluster mbuf
74 *
75 * XXX buffer controls - the RECV_MAX_SEGS calculation comes out wrong
76 * using the true buffer size values if the CP really only does full-cell
77 * filling of a particular buffer - we must clarify this...it also appears
78 * the minimum buffer size is 64, even if the CP can only fit in 1 cell.
79 */
80 #define SIZEOF_Buf_handle 16 /* XXX sizeof(Buf_handle) */
81
82 #undef m_ext
83 typedef struct m_ext M_ext;
84 #define m_ext M_dat.MH.MH_dat.MH_ext
85 #define BUF1_SM_HOFF (sizeof(struct m_hdr)) /* Buffer-to-handle offset */
86 #define BUF1_SM_HDR (sizeof(struct m_hdr) + sizeof(struct pkthdr))
87 #define BUF1_SM_LEN (MHLEN)
88 #define BUF1_LG_HOFF (sizeof(struct m_hdr) + sizeof(struct pkthdr) \
89 + sizeof(M_ext)) /* Buffer-to-handle offset */
90 /*
91 * BUF1_SM_DOFF - CP data offset into buffer data space
92 * BUF1_SM_SIZE - Buffer size
93 *
94 * These should be defined as follows, but we need compile-time constants:
95 *
96 * #define BUF1_SM_DOFF (roundup(BUF1_SM_HOFF + SIZEOF_Buf_handle,
97 * BUF_DATA_ALIGN) - BUF1_SM_HDR)
98 * #define BUF1_SM_SIZE MAX(BUF1_SM_LEN - BUF1_SM_DOFF, 64)
99 *
100 */
101 #define BUF1_SM_DOFF (SIZEOF_Buf_handle)
102 #define BUF1_SM_SIZE (BUF1_SM_LEN - BUF1_SM_DOFF)
103
104 #define BUF1_SM_QUELEN 16 /* Entries in supply queue */
105 #define BUF1_SM_CPPOOL 256 /* Buffers in CP-resident pool */
106 #define BUF1_SM_ENTSIZE 8 /* Buffers in each supply queue entry */
107
108 #define BUF1_LG_DOFF 0 /* CP data offset into mbuf data space */
109 #define BUF1_LG_SIZE MCLBYTES /* Buffer size */
110 #define BUF1_LG_QUELEN 16 /* Entries in supply queue */
111 #define BUF1_LG_CPPOOL 512 /* Buffers in CP-resident pool */
112 #define BUF1_LG_ENTSIZE 8 /* Buffers in each supply queue entry */
113
114 #endif /* _FORE_H */
Cache object: 7eb14ee1fe24eb9738a046bb6ee91112
|