/* * Copyright (c) 1982 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)ns_proto.c 6.3 (Berkeley) 08/09/85 */ #include "param.h" #include "socket.h" #include "protosw.h" #include "domain.h" #include "mbuf.h" #include "ns.h" /* * NS protocol family: IDP, ERR, PE, SPP, ROUTE. */ int ns_init(), ns_ctlinput(); int idp_input(), idp_output(), idp_ctlinput(), idp_usrreq(); int idp_raw_usrreq(); int idp_init(), idp_slowtimo(), idp_drain(), idp_ctloutput(); int spp_input(), spp_ctlinput(); int spp_usrreq(), spp_usrreq_sp(), spp_ctloutput(); int spp_init(), spp_fasttimo(), spp_slowtimo(), spp_drain(); 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, 0, idp_ctloutput, idp_usrreq, 0, 0, 0, 0, }, { SOCK_STREAM, &nsdomain, NSPROTO_SPP, PR_CONNREQUIRED|PR_WANTRCVD, spp_input, 0, 0, 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, 0, 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])] };