MFC r1.3 r1.13 r1.8 (HEAD):
[dragonfly.git] / sys / netproto / atm / atm_sigmgr.h
blob8cc5f35c8d553eadc47a052353ba76433cf17bcf
1 /*
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_sigmgr.h,v 1.2 1999/08/28 00:48:37 peter Exp $
27 * @(#) $DragonFly: src/sys/netproto/atm/atm_sigmgr.h,v 1.3 2003/08/23 10:06:21 rob Exp $
32 * Core ATM Services
33 * -----------------
35 * ATM Signalling Manager definitions
39 #ifndef _NETATM_ATM_SIGMGR_H
40 #define _NETATM_ATM_SIGMGR_H
42 #ifdef ATM_KERNEL
44 * Structure common to all ATM Signalling Managers. Each Signalling
45 * Manager must create one of these and use it to register itself
46 * with the system.
48 struct sigmgr {
49 struct sigmgr *sm_next; /* Next registered sigmgr */
50 u_char sm_proto; /* Signalling protocol (see below) */
51 struct siginst *sm_prinst; /* List of protocol instances */
52 /* Exported functions */
53 int (*sm_attach) /* Attach interface */
54 (struct sigmgr *, struct atm_pif *);
55 int (*sm_detach) /* Detach interface */
56 (struct atm_pif *);
57 int (*sm_setup) /* Connection setup */
58 (Atm_connvc *, int *);
59 int (*sm_accept) /* Call accepted */
60 (struct vccb *, int *);
61 int (*sm_reject) /* Call rejected */
62 (struct vccb *, int *);
63 int (*sm_release) /* Connection release */
64 (struct vccb *, int *);
65 int (*sm_free) /* Free connection resources */
66 (struct vccb *);
67 int (*sm_ioctl) /* Ioctl handler */
68 (int, caddr_t, caddr_t);
70 #endif /* ATM_KERNEL */
72 /*
73 * ATM Signalling Protocols
75 #define ATM_SIG_PVC 1 /* PVC-only */
76 #define ATM_SIG_SPANS 2 /* Fore Systems SPANS */
77 #define ATM_SIG_UNI30 3 /* ATM Forum UNI 3.0 */
78 #define ATM_SIG_UNI31 4 /* ATM Forum UNI 3.1 */
79 #define ATM_SIG_UNI40 5 /* ATM Forum UNI 4.0 */
82 #ifdef ATM_KERNEL
84 * Signalling Protocol Instance control block header. Common header for
85 * every signalling protocol instance control block.
87 struct siginst {
88 struct siginst *si_next; /* Next sigmgr protocol instance */
89 struct atm_pif *si_pif; /* Device interface */
90 Atm_addr si_addr; /* Interface ATM address */
91 Atm_addr si_subaddr; /* Interface ATM subaddress */
92 Queue_t si_vccq; /* VCCB queue */
93 u_short si_state; /* Protocol state (sigmgr specific) */
95 /* Exported protocol services */
96 struct ip_serv *si_ipserv; /* IP/ATM services */
101 * Sigmgr function return codes
103 #define CALL_PROCEEDING 1 /* Connection request is in progress */
104 #define CALL_FAILED 2 /* Connection request failed */
105 #define CALL_CONNECTED 3 /* Connection setup successful */
106 #define CALL_CLEARED 4 /* Connection has been terminated */
108 #endif /* ATM_KERNEL */
110 #endif /* _NETATM_ATM_SIGMGR_H */