The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/netns/ns_proto.c

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * Copyright (c) 1984, 1985, 1986, 1987, 1993
    3  *      The Regents of the University of California.  All rights reserved.
    4  *
    5  * Redistribution and use in source and binary forms, with or without
    6  * modification, are permitted provided that the following conditions
    7  * are met:
    8  * 1. Redistributions of source code must retain the above copyright
    9  *    notice, this list of conditions and the following disclaimer.
   10  * 2. Redistributions in binary form must reproduce the above copyright
   11  *    notice, this list of conditions and the following disclaimer in the
   12  *    documentation and/or other materials provided with the distribution.
   13  * 3. All advertising materials mentioning features or use of this software
   14  *    must display the following acknowledgement:
   15  *      This product includes software developed by the University of
   16  *      California, Berkeley and its contributors.
   17  * 4. Neither the name of the University nor the names of its contributors
   18  *    may be used to endorse or promote products derived from this software
   19  *    without specific prior written permission.
   20  *
   21  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
   22  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   23  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   24  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
   25  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   26  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   27  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   28  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   29  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   30  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   31  * SUCH DAMAGE.
   32  *
   33  *      From: @(#)ns_proto.c    8.1 (Berkeley) 6/10/93
   34  * $FreeBSD: src/sys/netns/ns_proto.c,v 1.7.2.1 1999/09/05 08:19:26 peter Exp $
   35  */
   36 
   37 #include <sys/param.h>
   38 #include <sys/kernel.h>
   39 #include <sys/socket.h>
   40 #include <sys/protosw.h>
   41 #include <sys/domain.h>
   42 #include <sys/mbuf.h>
   43 
   44 #include <net/radix.h>
   45 
   46 #include <netns/ns.h>
   47 
   48 /*
   49  * NS protocol family: IDP, ERR, PE, SPP, ROUTE.
   50  */
   51 int     ns_init();
   52 int     idp_input(), idp_output(), idp_ctlinput(), idp_usrreq();
   53 int     idp_raw_usrreq(), idp_ctloutput();
   54 int     spp_input(), spp_ctlinput();
   55 int     spp_usrreq(), spp_usrreq_sp(), spp_ctloutput();
   56 int     spp_init(), spp_fasttimo(), spp_slowtimo();
   57 extern  int raw_usrreq();
   58 
   59 extern  struct domain nsdomain;
   60 
   61 struct protosw nssw[] = {
   62 { 0,            &nsdomain,      0,              0,
   63   0,            idp_output,     0,              0,
   64   0,
   65   ns_init,      0,              0,              0,
   66 },
   67 { SOCK_DGRAM,   &nsdomain,      0,              PR_ATOMIC|PR_ADDR,
   68   0,            0,              idp_ctlinput,   idp_ctloutput,
   69   idp_usrreq,
   70   0,            0,              0,              0,
   71 },
   72 { SOCK_STREAM,  &nsdomain,      NSPROTO_SPP,    PR_CONNREQUIRED|PR_WANTRCVD,
   73   spp_input,    0,              spp_ctlinput,   spp_ctloutput,
   74   spp_usrreq,
   75   spp_init,     spp_fasttimo,   spp_slowtimo,   0,
   76 },
   77 { SOCK_SEQPACKET,&nsdomain,     NSPROTO_SPP,    PR_CONNREQUIRED|PR_WANTRCVD|PR_ATOMIC,
   78   spp_input,    0,              spp_ctlinput,   spp_ctloutput,
   79   spp_usrreq_sp,
   80   0,            0,              0,              0,
   81 },
   82 { SOCK_RAW,     &nsdomain,      NSPROTO_RAW,    PR_ATOMIC|PR_ADDR,
   83   idp_input,    idp_output,     0,              idp_ctloutput,
   84   idp_raw_usrreq,
   85   0,            0,              0,              0,
   86 },
   87 { SOCK_RAW,     &nsdomain,      NSPROTO_ERROR,  PR_ATOMIC|PR_ADDR,
   88   idp_ctlinput, idp_output,     0,              idp_ctloutput,
   89   idp_raw_usrreq,
   90   0,            0,              0,              0,
   91 },
   92 };
   93 
   94 struct domain nsdomain =
   95     { AF_NS, "network systems", 0, 0, 0,
   96       nssw, &nssw[sizeof(nssw)/sizeof(nssw[0])], 0,
   97       rn_inithead, 16, sizeof(struct sockaddr_ns)};
   98 
   99 DOMAIN_SET(ns);

Cache object: 09e9d61fad491fb43a344dbe11fffe48


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.