Annotation of 43BSDTahoe/sys/netinet/in_proto.c, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 1982, 1986 Regents of the University of California.
        !             3:  * All rights reserved.
        !             4:  *
        !             5:  * Redistribution and use in source and binary forms are permitted
        !             6:  * provided that the above copyright notice and this paragraph are
        !             7:  * duplicated in all such forms and that any documentation,
        !             8:  * advertising materials, and other materials related to such
        !             9:  * distribution and use acknowledge that the software was developed
        !            10:  * by the University of California, Berkeley.  The name of the
        !            11:  * University may not be used to endorse or promote products derived
        !            12:  * from this software without specific prior written permission.
        !            13:  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
        !            14:  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
        !            15:  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !            16:  *
        !            17:  *     @(#)in_proto.c  7.3 (Berkeley) 6/29/88
        !            18:  */
        !            19: 
        !            20: #include "param.h"
        !            21: #include "socket.h"
        !            22: #include "protosw.h"
        !            23: #include "domain.h"
        !            24: #include "mbuf.h"
        !            25: 
        !            26: #include "in.h"
        !            27: #include "in_systm.h"
        !            28: 
        !            29: /*
        !            30:  * TCP/IP protocol family: IP, ICMP, UDP, TCP.
        !            31:  */
        !            32: int    ip_output(),ip_ctloutput();
        !            33: int    ip_init(),ip_slowtimo(),ip_drain();
        !            34: int    icmp_input();
        !            35: int    udp_input(),udp_ctlinput();
        !            36: int    udp_usrreq();
        !            37: int    udp_init();
        !            38: int    tcp_input(),tcp_ctlinput();
        !            39: int    tcp_usrreq(),tcp_ctloutput();
        !            40: int    tcp_init(),tcp_fasttimo(),tcp_slowtimo(),tcp_drain();
        !            41: int    rip_input(),rip_output(),rip_ctloutput();
        !            42: extern int raw_usrreq();
        !            43: /*
        !            44:  * IMP protocol family: raw interface.
        !            45:  * Using the raw interface entry to get the timer routine
        !            46:  * in is a kludge.
        !            47:  */
        !            48: #include "imp.h"
        !            49: #if NIMP > 0
        !            50: int    rimp_output(), hostslowtimo();
        !            51: #endif
        !            52: 
        !            53: #ifdef NSIP
        !            54: int    idpip_input(), nsip_ctlinput();
        !            55: #endif
        !            56: 
        !            57: extern struct domain inetdomain;
        !            58: 
        !            59: struct protosw inetsw[] = {
        !            60: { 0,           &inetdomain,    0,              0,
        !            61:   0,           ip_output,      0,              0,
        !            62:   0,
        !            63:   ip_init,     0,              ip_slowtimo,    ip_drain,
        !            64: },
        !            65: { SOCK_DGRAM,  &inetdomain,    IPPROTO_UDP,    PR_ATOMIC|PR_ADDR,
        !            66:   udp_input,   0,              udp_ctlinput,   ip_ctloutput,
        !            67:   udp_usrreq,
        !            68:   udp_init,    0,              0,              0,
        !            69: },
        !            70: { SOCK_STREAM, &inetdomain,    IPPROTO_TCP,    PR_CONNREQUIRED|PR_WANTRCVD,
        !            71:   tcp_input,   0,              tcp_ctlinput,   tcp_ctloutput,
        !            72:   tcp_usrreq,
        !            73:   tcp_init,    tcp_fasttimo,   tcp_slowtimo,   tcp_drain,
        !            74: },
        !            75: { SOCK_RAW,    &inetdomain,    IPPROTO_RAW,    PR_ATOMIC|PR_ADDR,
        !            76:   rip_input,   rip_output,     0,              rip_ctloutput,
        !            77:   raw_usrreq,
        !            78:   0,           0,              0,              0,
        !            79: },
        !            80: { SOCK_RAW,    &inetdomain,    IPPROTO_ICMP,   PR_ATOMIC|PR_ADDR,
        !            81:   icmp_input,  rip_output,     0,              rip_ctloutput,
        !            82:   raw_usrreq,
        !            83:   0,           0,              0,              0,
        !            84: },
        !            85: #ifdef NSIP
        !            86: { SOCK_RAW,    &inetdomain,    IPPROTO_IDP,    PR_ATOMIC|PR_ADDR,
        !            87:   idpip_input, rip_output,     nsip_ctlinput,  0,
        !            88:   raw_usrreq,
        !            89:   0,           0,              0,              0,
        !            90: },
        !            91: #endif
        !            92:        /* raw wildcard */
        !            93: { SOCK_RAW,    &inetdomain,    0,              PR_ATOMIC|PR_ADDR,
        !            94:   rip_input,   rip_output,     0,              rip_ctloutput,
        !            95:   raw_usrreq,
        !            96:   0,           0,              0,              0,
        !            97: },
        !            98: };
        !            99: 
        !           100: struct domain inetdomain =
        !           101:     { AF_INET, "internet", 0, 0, 0, 
        !           102:       inetsw, &inetsw[sizeof(inetsw)/sizeof(inetsw[0])] };
        !           103: 
        !           104: #if NIMP > 0
        !           105: extern struct domain impdomain;
        !           106: 
        !           107: struct protosw impsw[] = {
        !           108: { SOCK_RAW,    &impdomain,     0,              PR_ATOMIC|PR_ADDR,
        !           109:   0,           rimp_output,    0,              0,
        !           110:   raw_usrreq,
        !           111:   0,           0,              hostslowtimo,   0,
        !           112: },
        !           113: };
        !           114: 
        !           115: struct domain impdomain =
        !           116:     { AF_IMPLINK, "imp", 0, 0, 0,
        !           117:       impsw, &impsw[sizeof (impsw)/sizeof(impsw[0])] };
        !           118: #endif
        !           119: 
        !           120: #include "hy.h"
        !           121: #if NHY > 0
        !           122: /*
        !           123:  * HYPERchannel protocol family: raw interface.
        !           124:  */
        !           125: int    rhy_output();
        !           126: extern struct domain hydomain;
        !           127: 
        !           128: struct protosw hysw[] = {
        !           129: { SOCK_RAW,    &hydomain,      0,              PR_ATOMIC|PR_ADDR,
        !           130:   0,           rhy_output,     0,              0,
        !           131:   raw_usrreq,
        !           132:   0,           0,              0,              0,
        !           133: },
        !           134: };
        !           135: 
        !           136: struct domain hydomain =
        !           137:     { AF_HYLINK, "hy", 0, 0, 0, hysw, &hysw[sizeof (hysw)/sizeof(hysw[0])] };
        !           138: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.