1: /*
   2:  * Copyright (c) 1982, 1986 Regents of the University of California.
   3:  * All rights reserved.  The Berkeley software License Agreement
   4:  * specifies the terms and conditions for redistribution.
   5:  *
   6:  *	@(#)in_proto.c	7.1 (Berkeley) 6/5/86
   7:  */
   8: 
   9: #include "param.h"
  10: #include "socket.h"
  11: #include "protosw.h"
  12: #include "domain.h"
  13: #include "mbuf.h"
  14: 
  15: #include "in.h"
  16: #include "in_systm.h"
  17: 
  18: /*
  19:  * TCP/IP protocol family: IP, ICMP, UDP, TCP.
  20:  */
  21: int ip_output(),ip_ctloutput();
  22: int ip_init(),ip_slowtimo(),ip_drain();
  23: int icmp_input();
  24: int udp_input(),udp_ctlinput();
  25: int udp_usrreq();
  26: int udp_init();
  27: int tcp_input(),tcp_ctlinput();
  28: int tcp_usrreq(),tcp_ctloutput();
  29: int tcp_init(),tcp_fasttimo(),tcp_slowtimo(),tcp_drain();
  30: int rip_input(),rip_output(),rip_ctloutput();
  31: extern  int raw_usrreq();
  32: /*
  33:  * IMP protocol family: raw interface.
  34:  * Using the raw interface entry to get the timer routine
  35:  * in is a kludge.
  36:  */
  37: #include "imp.h"
  38: #if NIMP > 0
  39: int rimp_output(), hostslowtimo();
  40: #endif
  41: 
  42: #ifdef NSIP
  43: int idpip_input(), nsip_ctlinput();
  44: #endif
  45: 
  46: extern  struct domain inetdomain;
  47: 
  48: struct protosw inetsw[] = {
  49: { 0,        &inetdomain,    0,      0,
  50:   0,        ip_output,  0,      0,
  51:   0,
  52:   ip_init,  0,      ip_slowtimo,    ip_drain,
  53: },
  54: { SOCK_DGRAM,   &inetdomain,    IPPROTO_UDP,    PR_ATOMIC|PR_ADDR,
  55:   udp_input,    0,      udp_ctlinput,   ip_ctloutput,
  56:   udp_usrreq,
  57:   udp_init, 0,      0,      0,
  58: },
  59: { SOCK_STREAM,  &inetdomain,    IPPROTO_TCP,    PR_CONNREQUIRED|PR_WANTRCVD,
  60:   tcp_input,    0,      tcp_ctlinput,   tcp_ctloutput,
  61:   tcp_usrreq,
  62:   tcp_init, tcp_fasttimo,   tcp_slowtimo,   tcp_drain,
  63: },
  64: { SOCK_RAW, &inetdomain,    IPPROTO_RAW,    PR_ATOMIC|PR_ADDR,
  65:   rip_input,    rip_output, 0,      rip_ctloutput,
  66:   raw_usrreq,
  67:   0,        0,      0,      0,
  68: },
  69: { SOCK_RAW, &inetdomain,    IPPROTO_ICMP,   PR_ATOMIC|PR_ADDR,
  70:   icmp_input,   rip_output, 0,      rip_ctloutput,
  71:   raw_usrreq,
  72:   0,        0,      0,      0,
  73: },
  74: #ifdef NSIP
  75: { SOCK_RAW, &inetdomain,    IPPROTO_IDP,    PR_ATOMIC|PR_ADDR,
  76:   idpip_input,  rip_output, nsip_ctlinput,  0,
  77:   raw_usrreq,
  78:   0,        0,      0,      0,
  79: },
  80: #endif
  81:     /* raw wildcard */
  82: { SOCK_RAW, &inetdomain,    0,      PR_ATOMIC|PR_ADDR,
  83:   rip_input,    rip_output, 0,      rip_ctloutput,
  84:   raw_usrreq,
  85:   0,        0,      0,      0,
  86: },
  87: };
  88: 
  89: struct domain inetdomain =
  90:     { AF_INET, "internet", 0, 0, 0,
  91:       inetsw, &inetsw[sizeof(inetsw)/sizeof(inetsw[0])] };
  92: 
  93: #if NIMP > 0
  94: extern  struct domain impdomain;
  95: 
  96: struct protosw impsw[] = {
  97: { SOCK_RAW, &impdomain, 0,      PR_ATOMIC|PR_ADDR,
  98:   0,        rimp_output,    0,      0,
  99:   raw_usrreq,
 100:   0,        0,      hostslowtimo,   0,
 101: },
 102: };
 103: 
 104: struct domain impdomain =
 105:     { AF_IMPLINK, "imp", 0, 0, 0,
 106:       impsw, &impsw[sizeof (impsw)/sizeof(impsw[0])] };
 107: #endif
 108: 
 109: #include "hy.h"
 110: #if NHY > 0
 111: /*
 112:  * HYPERchannel protocol family: raw interface.
 113:  */
 114: int rhy_output();
 115: extern  struct domain hydomain;
 116: 
 117: struct protosw hysw[] = {
 118: { SOCK_RAW, &hydomain,  0,      PR_ATOMIC|PR_ADDR,
 119:   0,        rhy_output, 0,      0,
 120:   raw_usrreq,
 121:   0,        0,      0,      0,
 122: },
 123: };
 124: 
 125: struct domain hydomain =
 126:     { AF_HYLINK, "hy", 0, 0, 0, hysw, &hysw[sizeof (hysw)/sizeof(hysw[0])] };
 127: #endif

Defined variables

hydomain declared in line 115; defined in line 125; used 2 times
hysw defined in line 117; used 4 times
  • in line 126(4)
impdomain declared in line 94; defined in line 104; used 2 times
impsw defined in line 96; used 4 times
  • in line 106(4)
inetdomain declared in line 46; defined in line 89; used 16 times
inetsw defined in line 48; used 12 times
Last modified: 1986-06-05
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1083
Valid CSS Valid XHTML 1.0 Strict