diff options
Diffstat (limited to 'sys/netatm/atm_proto.c')
-rw-r--r-- | sys/netatm/atm_proto.c | 205 |
1 files changed, 205 insertions, 0 deletions
diff --git a/sys/netatm/atm_proto.c b/sys/netatm/atm_proto.c new file mode 100644 index 0000000..ddd1a88 --- /dev/null +++ b/sys/netatm/atm_proto.c @@ -0,0 +1,205 @@ +/* + * + * =================================== + * HARP | Host ATM Research Platform + * =================================== + * + * + * This Host ATM Research Platform ("HARP") file (the "Software") is + * made available by Network Computing Services, Inc. ("NetworkCS") + * "AS IS". NetworkCS does not provide maintenance, improvements or + * support of any kind. + * + * NETWORKCS MAKES NO WARRANTIES OR REPRESENTATIONS, EXPRESS OR IMPLIED, + * INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE, AS TO ANY ELEMENT OF THE + * SOFTWARE OR ANY SUPPORT PROVIDED IN CONNECTION WITH THIS SOFTWARE. + * In no event shall NetworkCS be responsible for any damages, including + * but not limited to consequential damages, arising from or relating to + * any use of the Software or related support. + * + * Copyright 1994-1998 Network Computing Services, Inc. + * + * Copies of this Software may be made, however, the above copyright + * notice must be reproduced on all copies. + * + * @(#) $Id: atm_proto.c,v 1.6 1998/02/19 19:52:06 mks Exp $ + * + */ + +/* + * Core ATM Services + * ----------------- + * + * ATM socket protocol family support definitions + * + */ + +#ifndef lint +static char *RCSid = "@(#) $Id: atm_proto.c,v 1.6 1998/02/19 19:52:06 mks Exp $"; +#endif + +#include <netatm/kern_include.h> + + +struct protosw atmsw[] = { +{ SOCK_DGRAM, /* ioctl()-only */ + &atmdomain, + 0, + 0, + 0, /* pr_input */ + 0, /* pr_output */ + 0, /* pr_ctlinput */ + 0, /* pr_ctloutput */ + 0, /* pr_ousrreq */ + 0, /* pr_init */ + 0, /* pr_fasttimo */ + 0, /* pr_slowtimo */ + 0, /* pr_drain */ + &atm_dgram_usrreqs, /* pr_usrreqs */ +}, + +{ SOCK_SEQPACKET, /* AAL-5 */ + &atmdomain, + ATM_PROTO_AAL5, + PR_ATOMIC|PR_CONNREQUIRED, + 0, /* pr_input */ + 0, /* pr_output */ + 0, /* pr_ctlinput */ + atm_aal5_ctloutput, /* pr_ctloutput */ + 0, /* pr_ousrreq */ + 0, /* pr_init */ + 0, /* pr_fasttimo */ + 0, /* pr_slowtimo */ + 0, /* pr_drain */ + &atm_aal5_usrreqs, /* pr_usrreqs */ +}, + +#ifdef XXX +{ SOCK_SEQPACKET, /* SSCOP */ + &atmdomain, + ATM_PROTO_SSCOP, + PR_ATOMIC|PR_CONNREQUIRED|PR_WANTRCVD, + x, /* pr_input */ + x, /* pr_output */ + x, /* pr_ctlinput */ + x, /* pr_ctloutput */ + 0, /* pr_ousrreq */ + 0, /* pr_init */ + 0, /* pr_fasttimo */ + 0, /* pr_slowtimo */ + x, /* pr_drain */ + x, /* pr_usrreqs */ +}, +#endif +}; + +struct domain atmdomain = { + AF_ATM, + "atm", +#if defined(__FreeBSD__) + atm_initialize, +#else + 0, +#endif + 0, + 0, + atmsw, + &atmsw[sizeof(atmsw) / sizeof(atmsw[0])] +}; + +#ifdef __FreeBSD__ +DOMAIN_SET(atm); +#endif + + +#if (defined(__FreeBSD__) && (BSD >= 199506)) +/* + * Protocol request not supported + * + * Arguments: + * so pointer to socket + * + * Returns: + * errno error - operation not supported + * + */ +int +atm_proto_notsupp1(so) + struct socket *so; +{ + return (EOPNOTSUPP); +} + + +/* + * Protocol request not supported + * + * Arguments: + * so pointer to socket + * addr pointer to protocol address + * p pointer to process + * + * Returns: + * errno error - operation not supported + * + */ +int +atm_proto_notsupp2(so, addr, p) + struct socket *so; + struct sockaddr *addr; + struct proc *p; +{ + return (EOPNOTSUPP); +} + + +/* + * Protocol request not supported + * + * Arguments: + * so pointer to socket + * addr pointer to pointer to protocol address + * + * Returns: + * errno error - operation not supported + * + */ +int +atm_proto_notsupp3(so, addr) + struct socket *so; + struct sockaddr **addr; +{ + return (EOPNOTSUPP); +} + + +/* + * Protocol request not supported + * + * Arguments: + * so pointer to socket + * i integer + * m pointer to kernel buffer + * addr pointer to protocol address + * m2 pointer to kernel buffer + * p pointer to process + * + * Returns: + * errno error - operation not supported + * + */ +int +atm_proto_notsupp4(so, i, m, addr, m2, p) + struct socket *so; + int i; + KBuffer *m; + struct sockaddr *addr; + KBuffer *m2; + struct proc *p; +{ + return (EOPNOTSUPP); +} + +#endif /* (defined(__FreeBSD__) && (BSD >= 199506)) */ + |