aboutsummaryrefslogtreecommitdiff
path: root/sys/netccitt/ccitt_proto.c
diff options
context:
space:
mode:
authorRodney W. Grimes <rgrimes@FreeBSD.org>1994-05-24 10:09:53 +0000
committerRodney W. Grimes <rgrimes@FreeBSD.org>1994-05-24 10:09:53 +0000
commitdf8bae1de4b67ccf57f4afebd4e2bf258c38910d (patch)
tree7b1a8eb5b08af4b9f7bac45ad41398687df2c351 /sys/netccitt/ccitt_proto.c
parent59deaec541ae8baaa58daf6c5a2196ea7de180c3 (diff)
downloadsrc-df8bae1de4b67ccf57f4afebd4e2bf258c38910d.tar.gz
src-df8bae1de4b67ccf57f4afebd4e2bf258c38910d.zip
BSD 4.4 Lite Kernel Sources
Notes
Notes: svn path=/head/; revision=1541
Diffstat (limited to 'sys/netccitt/ccitt_proto.c')
-rw-r--r--sys/netccitt/ccitt_proto.c93
1 files changed, 93 insertions, 0 deletions
diff --git a/sys/netccitt/ccitt_proto.c b/sys/netccitt/ccitt_proto.c
new file mode 100644
index 000000000000..d832fd38f926
--- /dev/null
+++ b/sys/netccitt/ccitt_proto.c
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) University of British Columbia, 1984
+ * Copyright (c) 1990, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * the Laboratory for Computation Vision and the Computer Science Department
+ * of the University of British Columbia.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)ccitt_proto.c 8.1 (Berkeley) 6/10/93
+ */
+
+#include <sys/param.h>
+#include <sys/socket.h>
+#include <sys/protosw.h>
+#include <sys/domain.h>
+
+#include <netccitt/x25.h>
+
+#include <net/radix.h>
+
+/*
+ * Definitions of protocols supported in the CCITT domain.
+ */
+
+extern struct domain ccittdomain;
+#define DOMAIN &ccittdomain
+
+#ifdef LLC
+int llc_output();
+void llc_ctlinput(), llc_init(), llc_timer();
+#endif
+#ifdef HDLC
+int hd_output();
+void hd_ctlinput(), hd_init(), hd_timer();
+#endif
+int pk_usrreq(), pk_ctloutput();
+void pk_timer(), pk_init(), pk_input(), pk_ctlinput();
+
+struct protosw ccittsw[] = {
+#ifdef LLC
+ { 0, DOMAIN, IEEEPROTO_802LLC,0,
+ 0, llc_output, llc_ctlinput, 0,
+ 0,
+ llc_init, 0, llc_timer, 0,
+ },
+#endif
+#ifdef HDLC
+ { 0, DOMAIN, CCITTPROTO_HDLC,0,
+ 0, hd_output, hd_ctlinput, 0,
+ 0,
+ hd_init, 0, hd_timer, 0,
+ },
+#endif
+ { SOCK_STREAM, DOMAIN, CCITTPROTO_X25, PR_CONNREQUIRED|PR_ATOMIC|PR_WANTRCVD,
+ pk_input, 0, pk_ctlinput, pk_ctloutput,
+ pk_usrreq,
+ pk_init, 0, pk_timer, 0,
+ }
+};
+
+struct domain ccittdomain =
+ { AF_CCITT, "ccitt", 0, 0, 0, ccittsw,
+ &ccittsw[sizeof(ccittsw)/sizeof(ccittsw[0])], 0,
+ rn_inithead, 32, sizeof (struct sockaddr_x25) };