]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/netatm/atm_var.h
This commit was generated by cvs2svn to compensate for changes in r162852,
[FreeBSD/FreeBSD.git] / sys / netatm / atm_var.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$
27  *
28  */
29
30 /*
31  * Core ATM Services
32  * -----------------
33  *
34  * ATM system variables
35  *
36  */
37
38 #ifndef _NETATM_ATM_VAR_H
39 #define _NETATM_ATM_VAR_H
40
41
42 #ifdef _KERNEL
43
44 #include <vm/uma.h>
45
46 typedef void (*atm_init_fn)(void);
47
48 /*
49  * Global variable declarations
50  */
51 extern struct pr_usrreqs        atm_aal5_usrreqs;
52
53         /* atm_proto.c */
54 extern struct domain    atmdomain;
55
56         /* atm_subr.c */
57 extern struct atm_pif   *atm_interface_head;
58 extern struct atm_ncm   *atm_netconv_head;
59 extern Atm_endpoint     *atm_endpoints[];
60 extern struct stackq_entry      *atm_stackq_head;
61 extern struct stackq_entry      *atm_stackq_tail;
62 extern struct atm_sock_stat     atm_sock_stat;
63 extern int              atm_init;
64 extern int              atm_version;
65 extern int              atm_debug;
66 extern struct timeval   atm_debugtime;
67 extern int              atm_dev_print;
68 extern int              atm_print_data;
69 extern uma_zone_t       atm_attributes_zone;
70
71 extern struct pr_usrreqs        atm_dgram_usrreqs;
72
73
74 /*
75  * Global function declarations
76  */
77         /* atm_aal5.c */
78 int             atm_aal5_ctloutput(struct socket *, struct sockopt *);
79 void            atm_aal5_init(void);
80
81         /* atm_cm.c */
82 int             atm_cm_connect(Atm_endpoint *, void *, Atm_attributes *,
83                         Atm_connection **);
84 int             atm_cm_listen(struct socket *, Atm_endpoint *, void *,
85                         Atm_attributes *, Atm_connection **, int);
86 int             atm_cm_addllc(Atm_endpoint *, void *, struct attr_llc *,
87                         Atm_connection *, Atm_connection **);
88 int             atm_cm_addparty(Atm_connection *, int, struct t_atm_sap *);
89 int             atm_cm_dropparty(Atm_connection *, int, struct t_atm_cause *);
90 int             atm_cm_release(Atm_connection *, struct t_atm_cause *);
91 int             atm_cm_abort(Atm_connvc *, struct t_atm_cause *);
92 int             atm_cm_incoming(struct vccb *, Atm_attributes *);
93 void            atm_cm_connected(Atm_connvc *);
94 void            atm_cm_cleared(Atm_connvc *);
95 Atm_connection *atm_cm_match(Atm_attributes *, Atm_connection *);
96 int             atm_cm_cpcs_ctl(int, Atm_connection *, void *);
97 int             atm_cm_cpcs_data(Atm_connection *, KBuffer *);
98 int             atm_cm_saal_ctl(int, Atm_connection *, void *);
99 int             atm_cm_saal_data(Atm_connection *, KBuffer *);
100 int             atm_cm_sscop_ctl(int, Atm_connection *, void *, void *);
101 int             atm_cm_sscop_data(Atm_connection *, KBuffer *);
102 int             atm_endpoint_register(Atm_endpoint *);
103 int             atm_endpoint_deregister(Atm_endpoint *);
104
105         /* atm_device.c */
106 int             atm_dev_inst(struct stack_defn **, Atm_connvc *);
107 void            atm_dev_lower(int, void *, intptr_t, intptr_t);
108 void *          atm_dev_alloc(u_int, u_int, u_int);
109 void            atm_dev_free(volatile void *);
110 KBuffer *       atm_dev_compress(KBuffer *);
111 Cmn_vcc *       atm_dev_vcc_find(Cmn_unit *, u_int, u_int, u_int);
112 void            atm_dev_pdu_print(const Cmn_unit *, const Cmn_vcc *,
113                     const KBuffer *, const char *);
114
115         /* atm_if.c */
116 int             atm_physif_register(Cmn_unit *, const char *,
117                         struct stack_defn *);
118 int             atm_physif_deregister(Cmn_unit *);
119 void            atm_physif_freenifs(struct atm_pif *, uma_zone_t);
120 int             atm_netconv_register(struct atm_ncm *);
121 int             atm_netconv_deregister(struct atm_ncm *);
122 int             atm_nif_attach(struct atm_nif *);
123 void            atm_nif_detach(struct atm_nif *);
124 int             atm_nif_setaddr(struct atm_nif *, struct ifaddr *);
125 int             atm_ifoutput(struct ifnet *, KBuffer *,
126                         struct sockaddr *, struct rtentry *);
127 struct atm_pif *
128                 atm_pifname(char *);
129 struct atm_nif *
130                 atm_nifname(char *);
131
132         /* atm_proto.c */
133 int             atm_proto_notsupp1(struct socket *);
134 int             atm_proto_notsupp2(struct socket *, struct sockaddr *,
135                         struct thread *);
136 int             atm_proto_notsupp3(struct socket *, struct sockaddr **);
137 int             atm_proto_notsupp4(struct socket *, int, KBuffer *, 
138                         struct sockaddr *, KBuffer *, struct thread *);
139 void            atm_proto_notsupp5(struct socket *);
140
141         /* atm_signal.c */
142 int             atm_sigmgr_register(struct sigmgr *);
143 int             atm_sigmgr_deregister(struct sigmgr *);
144 int             atm_sigmgr_attach(struct atm_pif *, u_char);
145 int             atm_sigmgr_detach(struct atm_pif *);
146 int             atm_stack_register(struct stack_defn *);
147 int             atm_stack_deregister(struct stack_defn *);
148 int             atm_create_stack(Atm_connvc *, struct stack_list *,
149                         void (*)(int, void *, intptr_t, intptr_t) );
150
151         /* atm_socket.c */
152 void            atm_sock_init(void);
153 int             atm_sock_attach(struct socket *, u_long, u_long);
154 void            atm_sock_detach(struct socket *);
155 int             atm_sock_bind(struct socket *, struct sockaddr *);
156 int             atm_sock_listen(struct socket *, Atm_endpoint *, int);
157 int             atm_sock_connect(struct socket *, struct sockaddr *,
158                         Atm_endpoint *);
159 int             atm_sock_disconnect(struct socket *);
160 int             atm_sock_sockaddr(struct socket *, struct sockaddr **);
161 int             atm_sock_peeraddr(struct socket *, struct sockaddr **);
162 int             atm_sock_setopt(struct socket *, struct sockopt *,
163                         Atm_pcb *);
164 int             atm_sock_getopt(struct socket *, struct sockopt *,
165                         Atm_pcb *);
166 void            atm_sock_connected(void *);
167 void            atm_sock_cleared(void *, struct t_atm_cause *);
168
169         /* atm_subr.c */
170 void            atm_initialize(void);
171 void            atm_timeout(struct atm_time *, int, 
172                         void (*)(struct atm_time *) );
173 int             atm_untimeout(struct atm_time *);
174 int             atm_stack_enq(int, void (*)(int, void *, intptr_t, intptr_t), 
175                         void *, Atm_connvc *, intptr_t, intptr_t);
176 void            atm_stack_drain(void);
177 void            atm_pdu_print(const KBuffer *, const char *);
178
179 #ifdef SYSCTL_DECL
180 SYSCTL_DECL(_net_harp);
181 SYSCTL_DECL(_net_harp_atm);
182 #endif
183
184 #endif  /* _KERNEL */
185 #endif  /* _NETATM_ATM_VAR_H */