Add extra argument to VOP_BMAP.
[unix-history] / usr / src / sys / netinet / in_proto.c
index f185305..81ef2d3 100644 (file)
@@ -2,14 +2,9 @@
  * Copyright (c) 1982, 1986 Regents of the University of California.
  * All rights reserved.
  *
  * Copyright (c) 1982, 1986 Regents of the University of California.
  * All rights reserved.
  *
- * Redistribution and use in source and binary forms are permitted
- * provided that this notice is preserved and that due credit is given
- * to the University of California at Berkeley. The name of the University
- * may not be used to endorse or promote products derived from this
- * software without specific prior written permission. This software
- * is provided ``as is'' without express or implied warranty.
+ * %sccs.include.redist.c%
  *
  *
- *     @(#)in_proto.c  7.2 (Berkeley) %G%
+ *     @(#)in_proto.c  7.7 (Berkeley) %G%
  */
 
 #include "param.h"
  */
 
 #include "param.h"
 #include "in.h"
 #include "in_systm.h"
 
 #include "in.h"
 #include "in_systm.h"
 
+#include "net/radix.h"
+
 /*
  * TCP/IP protocol family: IP, ICMP, UDP, TCP.
  */
 int    ip_output(),ip_ctloutput();
 int    ip_init(),ip_slowtimo(),ip_drain();
 int    icmp_input();
 /*
  * TCP/IP protocol family: IP, ICMP, UDP, TCP.
  */
 int    ip_output(),ip_ctloutput();
 int    ip_init(),ip_slowtimo(),ip_drain();
 int    icmp_input();
+#ifdef MULTICAST
+int    igmp_init(),igmp_input(),igmp_fasttimo();
+#endif
 int    udp_input(),udp_ctlinput();
 int    udp_usrreq();
 int    udp_init();
 int    tcp_input(),tcp_ctlinput();
 int    tcp_usrreq(),tcp_ctloutput();
 int    tcp_init(),tcp_fasttimo(),tcp_slowtimo(),tcp_drain();
 int    udp_input(),udp_ctlinput();
 int    udp_usrreq();
 int    udp_init();
 int    tcp_input(),tcp_ctlinput();
 int    tcp_usrreq(),tcp_ctloutput();
 int    tcp_init(),tcp_fasttimo(),tcp_slowtimo(),tcp_drain();
-int    rip_input(),rip_output(),rip_ctloutput();
-extern int raw_usrreq();
+int    rip_init(),rip_input(),rip_output(),rip_ctloutput(), rip_usrreq();
 /*
  * IMP protocol family: raw interface.
  * Using the raw interface entry to get the timer routine
 /*
  * IMP protocol family: raw interface.
  * Using the raw interface entry to get the timer routine
@@ -49,6 +48,15 @@ int  rimp_output(), hostslowtimo();
 int    idpip_input(), nsip_ctlinput();
 #endif
 
 int    idpip_input(), nsip_ctlinput();
 #endif
 
+#ifdef TPIP
+int    tpip_input(), tpip_ctlinput(), tp_ctloutput(), tp_usrreq();
+int    tp_init(), tp_slowtimo(), tp_drain();
+#endif
+
+#ifdef EON
+int    eoninput(), eonctlinput(), eonprotoinit();
+#endif EON
+
 extern struct domain inetdomain;
 
 struct protosw inetsw[] = {
 extern struct domain inetdomain;
 
 struct protosw inetsw[] = {
@@ -69,32 +77,55 @@ struct protosw inetsw[] = {
 },
 { SOCK_RAW,    &inetdomain,    IPPROTO_RAW,    PR_ATOMIC|PR_ADDR,
   rip_input,   rip_output,     0,              rip_ctloutput,
 },
 { SOCK_RAW,    &inetdomain,    IPPROTO_RAW,    PR_ATOMIC|PR_ADDR,
   rip_input,   rip_output,     0,              rip_ctloutput,
-  raw_usrreq,
+  rip_usrreq,
   0,           0,              0,              0,
 },
 { SOCK_RAW,    &inetdomain,    IPPROTO_ICMP,   PR_ATOMIC|PR_ADDR,
   icmp_input,  rip_output,     0,              rip_ctloutput,
   0,           0,              0,              0,
 },
 { SOCK_RAW,    &inetdomain,    IPPROTO_ICMP,   PR_ATOMIC|PR_ADDR,
   icmp_input,  rip_output,     0,              rip_ctloutput,
-  raw_usrreq,
+  rip_usrreq,
   0,           0,              0,              0,
 },
   0,           0,              0,              0,
 },
+#ifdef TPIP
+{ SOCK_SEQPACKET,&inetdomain,  IPPROTO_TP,     PR_CONNREQUIRED|PR_WANTRCVD,
+  tpip_input,  0,              tpip_ctlinput,  tp_ctloutput,
+  tp_usrreq,
+  tp_init,     0,              tp_slowtimo,    tp_drain,
+},
+#endif
+/* EON (ISO CLNL over IP) */
+#ifdef EON
+{ SOCK_RAW,    &inetdomain,    IPPROTO_EON,    0,
+  eoninput,    0,              eonctlinput,            0,
+  0,
+  eonprotoinit,        0,              0,              0,
+},
+#endif
+#ifdef MULTICAST
+{ SOCK_RAW,    &inetdomain,    IPPROTO_IGMP,   PR_ATOMIC|PR_ADDR,
+  igmp_input,  rip_output,     0,              rip_ctloutput,
+  rip_usrreq,
+  igmp_init,   igmp_fasttimo,  0,              0,
+},
+#endif
 #ifdef NSIP
 { SOCK_RAW,    &inetdomain,    IPPROTO_IDP,    PR_ATOMIC|PR_ADDR,
   idpip_input, rip_output,     nsip_ctlinput,  0,
 #ifdef NSIP
 { SOCK_RAW,    &inetdomain,    IPPROTO_IDP,    PR_ATOMIC|PR_ADDR,
   idpip_input, rip_output,     nsip_ctlinput,  0,
-  raw_usrreq,
+  rip_usrreq,
   0,           0,              0,              0,
 },
 #endif
        /* raw wildcard */
 { SOCK_RAW,    &inetdomain,    0,              PR_ATOMIC|PR_ADDR,
   rip_input,   rip_output,     0,              rip_ctloutput,
   0,           0,              0,              0,
 },
 #endif
        /* raw wildcard */
 { SOCK_RAW,    &inetdomain,    0,              PR_ATOMIC|PR_ADDR,
   rip_input,   rip_output,     0,              rip_ctloutput,
-  raw_usrreq,
-  0,           0,              0,              0,
+  rip_usrreq,
+  rip_init,    0,              0,              0,
 },
 };
 
 struct domain inetdomain =
     { AF_INET, "internet", 0, 0, 0, 
 },
 };
 
 struct domain inetdomain =
     { AF_INET, "internet", 0, 0, 0, 
-      inetsw, &inetsw[sizeof(inetsw)/sizeof(inetsw[0])] };
+      inetsw, &inetsw[sizeof(inetsw)/sizeof(inetsw[0])], 0,
+      rn_inithead, 32, sizeof(struct sockaddr_in) };
 
 #if NIMP > 0
 extern struct domain impdomain;
 
 #if NIMP > 0
 extern struct domain impdomain;
@@ -102,7 +133,7 @@ extern      struct domain impdomain;
 struct protosw impsw[] = {
 { SOCK_RAW,    &impdomain,     0,              PR_ATOMIC|PR_ADDR,
   0,           rimp_output,    0,              0,
 struct protosw impsw[] = {
 { SOCK_RAW,    &impdomain,     0,              PR_ATOMIC|PR_ADDR,
   0,           rimp_output,    0,              0,
-  raw_usrreq,
+  rip_usrreq,
   0,           0,              hostslowtimo,   0,
 },
 };
   0,           0,              hostslowtimo,   0,
 },
 };
@@ -123,7 +154,7 @@ extern      struct domain hydomain;
 struct protosw hysw[] = {
 { SOCK_RAW,    &hydomain,      0,              PR_ATOMIC|PR_ADDR,
   0,           rhy_output,     0,              0,
 struct protosw hysw[] = {
 { SOCK_RAW,    &hydomain,      0,              PR_ATOMIC|PR_ADDR,
   0,           rhy_output,     0,              0,
-  raw_usrreq,
+  rip_usrreq,
   0,           0,              0,              0,
 },
 };
   0,           0,              0,              0,
 },
 };