/* * Copyright (c) 1984, 1985, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)ns_proto.c 7.1 (Berkeley) 6/5/86 */ #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(); 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])] };