|
|
1.1 root 1: /*
2: * Copyright (c) 1984, 1985, 1986, 1987 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: * @(#)ns_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 "ns.h"
27:
28: /*
29: * NS protocol family: IDP, ERR, PE, SPP, ROUTE.
30: */
31: int ns_init();
32: int idp_input(), idp_output(), idp_ctlinput(), idp_usrreq();
33: int idp_raw_usrreq(), idp_ctloutput();
34: int spp_input(), spp_ctlinput();
35: int spp_usrreq(), spp_usrreq_sp(), spp_ctloutput();
36: int spp_init(), spp_fasttimo(), spp_slowtimo();
37: extern int raw_usrreq();
38:
39: extern struct domain nsdomain;
40:
41: struct protosw nssw[] = {
42: { 0, &nsdomain, 0, 0,
43: 0, idp_output, 0, 0,
44: 0,
45: ns_init, 0, 0, 0,
46: },
47: { SOCK_DGRAM, &nsdomain, 0, PR_ATOMIC|PR_ADDR,
48: 0, 0, idp_ctlinput, idp_ctloutput,
49: idp_usrreq,
50: 0, 0, 0, 0,
51: },
52: { SOCK_STREAM, &nsdomain, NSPROTO_SPP, PR_CONNREQUIRED|PR_WANTRCVD,
53: spp_input, 0, spp_ctlinput, spp_ctloutput,
54: spp_usrreq,
55: spp_init, spp_fasttimo, spp_slowtimo, 0,
56: },
57: { SOCK_SEQPACKET,&nsdomain, NSPROTO_SPP, PR_CONNREQUIRED|PR_WANTRCVD|PR_ATOMIC,
58: spp_input, 0, spp_ctlinput, spp_ctloutput,
59: spp_usrreq_sp,
60: 0, 0, 0, 0,
61: },
62: { SOCK_RAW, &nsdomain, NSPROTO_RAW, PR_ATOMIC|PR_ADDR,
63: idp_input, idp_output, 0, idp_ctloutput,
64: idp_raw_usrreq,
65: 0, 0, 0, 0,
66: },
67: { SOCK_RAW, &nsdomain, NSPROTO_ERROR, PR_ATOMIC|PR_ADDR,
68: idp_ctlinput, idp_output, 0, idp_ctloutput,
69: idp_raw_usrreq,
70: 0, 0, 0, 0,
71: },
72: };
73:
74: struct domain nsdomain =
75: { AF_NS, "network systems", 0, 0, 0,
76: nssw, &nssw[sizeof(nssw)/sizeof(nssw[0])] };
77:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.