3 * ===================================
4 * HARP | Host ATM Research Platform
5 * ===================================
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.
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.
21 * Copyright 1994-1998 Network Computing Services, Inc.
23 * Copies of this Software may be made, however, the above copyright
24 * notice must be reproduced on all copies.
26 * @(#) $FreeBSD: src/sys/netatm/atm_var.h,v 1.2 1999/08/28 00:48:39 peter Exp $
27 * @(#) $DragonFly: src/sys/netproto/atm/atm_var.h,v 1.10 2005/11/28 17:13:46 dillon Exp $
35 * ATM system variables
39 #ifndef _NETATM_ATM_VAR_H
40 #define _NETATM_ATM_VAR_H
45 * Global variable declarations
48 extern struct pr_usrreqs atm_aal5_usrreqs
;
51 extern struct domain atmdomain
;
54 extern struct atm_pif
*atm_interface_head
;
55 extern struct atm_ncm
*atm_netconv_head
;
56 extern Atm_endpoint
*atm_endpoints
[];
57 extern struct sp_info
*atm_pool_head
;
58 extern struct stackq_entry
*atm_stackq_head
;
59 extern struct stackq_entry
*atm_stackq_tail
;
60 extern struct ifqueue atm_intrq
;
61 extern struct atm_sock_stat atm_sock_stat
;
63 extern int atm_version
;
65 extern struct timeval atm_debugtime
;
66 extern int atm_dev_print
;
67 extern int atm_print_data
;
68 extern struct sp_info atm_attributes_pool
;
71 extern struct pr_usrreqs atm_dgram_usrreqs
;
73 struct lwkt_serialize
;
76 * Global function declarations
79 int atm_aal5_ctloutput (struct socket
*, struct sockopt
*);
80 void atm_aal5_init (void);
83 int atm_cm_connect (Atm_endpoint
*, void *, Atm_attributes
*,
85 int atm_cm_listen (Atm_endpoint
*, void *, Atm_attributes
*,
87 int atm_cm_addllc (Atm_endpoint
*, void *, struct attr_llc
*,
88 Atm_connection
*, Atm_connection
**);
89 int atm_cm_addparty (Atm_connection
*, int,
91 int atm_cm_dropparty (Atm_connection
*, int,
92 struct t_atm_cause
*);
93 int atm_cm_release (Atm_connection
*, struct t_atm_cause
*);
94 int atm_cm_abort (Atm_connvc
*, struct t_atm_cause
*);
95 int atm_cm_incoming (struct vccb
*, Atm_attributes
*);
96 void atm_cm_connected (Atm_connvc
*);
97 void atm_cm_cleared (Atm_connvc
*);
98 Atm_connection
*atm_cm_match (Atm_attributes
*, Atm_connection
*);
99 int atm_cm_cpcs_ctl (int, Atm_connection
*, void *);
100 int atm_cm_cpcs_data (Atm_connection
*, KBuffer
*);
101 int atm_cm_saal_ctl (int, Atm_connection
*, void *);
102 int atm_cm_saal_data (Atm_connection
*, KBuffer
*);
103 int atm_cm_sscop_ctl (int, Atm_connection
*, void *, void *);
104 int atm_cm_sscop_data (Atm_connection
*, KBuffer
*);
105 int atm_endpoint_register (Atm_endpoint
*);
106 int atm_endpoint_deregister (Atm_endpoint
*);
109 int atm_dev_inst (struct stack_defn
**, Atm_connvc
*);
110 void atm_dev_lower (int, void *, int, int);
111 void * atm_dev_alloc (u_int
, u_int
, u_int
);
112 void atm_dev_free (volatile void *);
113 KBuffer
* atm_dev_compress (KBuffer
*);
114 Cmn_vcc
* atm_dev_vcc_find (Cmn_unit
*, u_int
, u_int
, u_int
);
115 void atm_dev_pdu_print (Cmn_unit
*, Cmn_vcc
*, KBuffer
*,
119 int atm_physif_register (Cmn_unit
*, char *,
120 struct stack_defn
*);
121 int atm_physif_deregister (Cmn_unit
*);
122 void atm_physif_freenifs (struct atm_pif
*);
123 int atm_netconv_register (struct atm_ncm
*);
124 int atm_netconv_deregister (struct atm_ncm
*);
125 int atm_nif_attach (struct atm_nif
*, struct lwkt_serialize
*);
126 void atm_nif_detach (struct atm_nif
*);
127 int atm_nif_setaddr (struct atm_nif
*, struct ifaddr
*);
128 int atm_ifoutput (struct ifnet
*, KBuffer
*,
129 struct sockaddr
*, struct rtentry
*);
131 atm_pifname (char *);
133 atm_nifname (char *);
136 int atm_proto_notsupp1 (struct socket
*);
137 int atm_proto_notsupp2 (struct socket
*, struct sockaddr
*,
139 int atm_proto_notsupp3 (struct socket
*, struct sockaddr
**);
140 int atm_proto_notsupp4 (struct socket
*, int, KBuffer
*,
141 struct sockaddr
*, KBuffer
*, struct thread
*);
144 int atm_sigmgr_register (struct sigmgr
*);
145 int atm_sigmgr_deregister (struct sigmgr
*);
146 int atm_sigmgr_attach (struct atm_pif
*, u_char
);
147 int atm_sigmgr_detach (struct atm_pif
*);
148 int atm_stack_register (struct stack_defn
*);
149 int atm_stack_deregister (struct stack_defn
*);
150 int atm_create_stack (Atm_connvc
*, struct stack_list
*,
151 void (*)(int, void *, int, int) );
154 int atm_sock_attach (struct socket
*, u_long
, u_long
,
156 int atm_sock_detach (struct socket
*);
157 int atm_sock_bind (struct socket
*, struct sockaddr
*);
158 int atm_sock_listen (struct socket
*, Atm_endpoint
*);
159 int atm_sock_connect (struct socket
*, struct sockaddr
*,
161 int atm_sock_disconnect (struct socket
*);
162 int atm_sock_sockaddr (struct socket
*, struct sockaddr
**);
163 int atm_sock_peeraddr (struct socket
*, struct sockaddr
**);
164 int atm_sock_setopt (struct socket
*, struct sockopt
*,
166 int atm_sock_getopt (struct socket
*, struct sockopt
*,
168 void atm_sock_connected (void *);
169 void atm_sock_cleared (void *, struct t_atm_cause
*);
172 void atm_initialize (void);
173 void * atm_allocate (struct sp_info
*);
174 void atm_free (void *);
175 void atm_release_pool (struct sp_info
*);
176 void atm_timeout (struct atm_time
*, int,
177 void (*) (struct atm_time
*) );
178 int atm_untimeout (struct atm_time
*);
179 int atm_stack_enq (int, void (*) (int, void *, int, int),
180 void *, Atm_connvc
*, int, int);
181 void atm_stack_drain (void);
182 void atm_pdu_print (KBuffer
*, char *);
184 #endif /* ATM_KERNEL */
186 #endif /* _NETATM_ATM_VAR_H */