6eae8d859f09aa8e2b832a9570830403e3cd253a
[dragonfly.git] / sys / dev / atm / hfa / fore_include.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: src/sys/dev/hfa/fore_include.h,v 1.2 1999/08/28 00:41:50 peter Exp $
27  *      @(#) $DragonFly: src/sys/dev/atm/hfa/fore_include.h,v 1.5 2003/08/27 10:35:16 rob Exp $
28  *
29  */
30
31 /*
32  * FORE Systems 200-Series Adapter Support
33  * ---------------------------------------
34  *
35  * Local driver include files and global declarations
36  *
37  */
38
39 #ifndef _FORE_INCLUDE_H
40 #define _FORE_INCLUDE_H
41
42 #include <netproto/atm/kern_include.h>
43
44 /*
45  * If not specified elsewhere, guess which type of bus support we want
46  */
47 #if !(defined(FORE_PCI) || defined(FORE_SBUS))
48 #if defined(sparc)
49 #define FORE_SBUS
50 #elif defined(__i386__)
51 #define FORE_PCI
52 #endif
53 #endif
54
55 #ifdef FORE_PCI
56 #include <bus/pci/pcireg.h>
57 #include <bus/pci/pcivar.h>
58 #endif
59
60 #include "fore.h"
61 #include "fore_aali.h"
62 #include "fore_slave.h"
63 #include "fore_stats.h"
64 #include "fore_var.h"
65
66 /*
67  * Global function declarations
68  */
69         /* fore_buffer.c */
70 int             fore_buf_allocate (Fore_unit *);
71 void            fore_buf_initialize (Fore_unit *);
72 void            fore_buf_supply (Fore_unit *);
73 void            fore_buf_free (Fore_unit *);
74
75         /* fore_command.c */
76 int             fore_cmd_allocate (Fore_unit *);
77 void            fore_cmd_initialize (Fore_unit *);
78 void            fore_cmd_drain (Fore_unit *);
79 void            fore_cmd_free (Fore_unit *);
80
81         /* fore_if.c */
82 int             fore_atm_ioctl (int, caddr_t, caddr_t);
83 void            fore_interface_free (Fore_unit *);
84
85         /* fore_init.c */
86 void            fore_initialize (Fore_unit *);
87 void            fore_initialize_complete (Fore_unit *);
88
89         /* fore_intr.c */
90 #if defined(sun)
91 int             fore_poll (void);
92 #endif
93 #if (defined(BSD) && (BSD <= 199306))
94 int             fore_intr (void *);
95 #else
96 void            fore_intr (void *);
97 #endif
98 void            fore_watchdog (Fore_unit *);
99
100         /* fore_load.c */
101
102         /* fore_output.c */
103 void            fore_output (Cmn_unit *, Cmn_vcc *, KBuffer *);
104
105         /* fore_receive.c */
106 int             fore_recv_allocate (Fore_unit *);
107 void            fore_recv_initialize (Fore_unit *);
108 void            fore_recv_drain (Fore_unit *);
109 void            fore_recv_free (Fore_unit *);
110
111         /* fore_stats.c */
112 int             fore_get_stats (Fore_unit *);
113
114         /* fore_timer.c */
115 void            fore_timeout (struct atm_time *);
116
117         /* fore_transmit.c */
118 int             fore_xmit_allocate (Fore_unit *);
119 void            fore_xmit_initialize (Fore_unit *);
120 void            fore_xmit_drain (Fore_unit *);
121 void            fore_xmit_free (Fore_unit *);
122
123         /* fore_vcm.c */
124 int             fore_instvcc (Cmn_unit *, Cmn_vcc *);
125 int             fore_openvcc (Cmn_unit *, Cmn_vcc *);
126 int             fore_closevcc (Cmn_unit *, Cmn_vcc *);
127
128
129 /*
130  * Global variable declarations
131  */
132 extern Fore_device      fore_devices[];
133 extern Fore_unit        *fore_units[];
134 extern int              fore_nunits;
135 extern struct stack_defn        *fore_services;
136 extern struct sp_info   fore_nif_pool;
137 extern struct sp_info   fore_vcc_pool;
138 extern struct atm_time  fore_timer;
139
140 #endif  /* _FORE_INCLUDE_H */