/* * Copyright (c) 1984, 1985, 1986, 1987 Regents of the University of California. * All rights reserved. * * %sccs.include.redist.c% * * @(#)ns_proto.c 7.6 (Berkeley) 10/11/92 */ #include #include #include #include #include #include #include /* * NS protocol family: IDP, ERR, PE, SPP, ROUTE. */ int ns_init(); int idp_input(), idp_output(), idp_ctlinput(), idp_usrreq(); int idp_raw_usrreq(), idp_ctloutput(); int spp_input(), spp_ctlinput(); int spp_usrreq(), spp_usrreq_sp(), spp_ctloutput(); int spp_init(), spp_fasttimo(), spp_slowtimo(); extern int raw_usrreq(); extern struct domain nsdomain; struct protosw nssw[] = { { 0, &nsdomain, 0, 0, 0, idp_output, 0, 0, 0, ns_init, 0, 0, 0, }, { SOCK_DGRAM, &nsdomain, 0, PR_ATOMIC|PR_ADDR, 0, 0, idp_ctlinput, idp_ctloutput, idp_usrreq, 0, 0, 0, 0, }, { SOCK_STREAM, &nsdomain, NSPROTO_SPP, PR_CONNREQUIRED|PR_WANTRCVD, spp_input, 0, spp_ctlinput, spp_ctloutput, spp_usrreq, spp_init, spp_fasttimo, spp_slowtimo, 0, }, { SOCK_SEQPACKET,&nsdomain, NSPROTO_SPP, PR_CONNREQUIRED|PR_WANTRCVD|PR_ATOMIC, spp_input, 0, spp_ctlinput, spp_ctloutput, spp_usrreq_sp, 0, 0, 0, 0, }, { SOCK_RAW, &nsdomain, NSPROTO_RAW, PR_ATOMIC|PR_ADDR, idp_input, idp_output, 0, idp_ctloutput, idp_raw_usrreq, 0, 0, 0, 0, }, { SOCK_RAW, &nsdomain, NSPROTO_ERROR, PR_ATOMIC|PR_ADDR, idp_ctlinput, idp_output, 0, idp_ctloutput, idp_raw_usrreq, 0, 0, 0, 0, }, }; struct domain nsdomain = { AF_NS, "network systems", 0, 0, 0, nssw, &nssw[sizeof(nssw)/sizeof(nssw[0])], 0, rn_inithead, 16, sizeof(struct sockaddr_ns)};