1*23213Smckusick /* 2*23213Smckusick * Copyright (c) 1982 Regents of the University of California. 3*23213Smckusick * All rights reserved. The Berkeley software License Agreement 4*23213Smckusick * specifies the terms and conditions for redistribution. 5*23213Smckusick * 6*23213Smckusick * @(#)ns_proto.c 6.2 (Berkeley) 06/08/85 7*23213Smckusick */ 821491Ssklower 921491Ssklower #include "param.h" 1021491Ssklower #include "socket.h" 1121491Ssklower #include "protosw.h" 1221491Ssklower #include "domain.h" 1321491Ssklower #include "mbuf.h" 1421491Ssklower 1521491Ssklower #include "ns.h" 1621491Ssklower 1721491Ssklower /* 1821491Ssklower * NS protocol family: IDP, ERR, PE, SPP, ROUTE. 1921491Ssklower */ 2021491Ssklower int ns_init(), ns_ctlinput(); 2121491Ssklower int idp_input(), idp_output(), idp_ctlinput(), idp_usrreq(); 2221491Ssklower int idp_raw_usrreq(); 2321491Ssklower int idp_init(), idp_slowtimo(), idp_drain(), idp_ctloutput(); 2421491Ssklower int spp_input(), spp_ctlinput(); 2521491Ssklower int spp_usrreq(), spp_usrreq_sp(), spp_ctloutput(); 2621491Ssklower int spp_init(), spp_fasttimo(), spp_slowtimo(), spp_drain(); 2721491Ssklower extern int raw_usrreq(); 2821491Ssklower 2921491Ssklower extern struct domain nsdomain; 3021491Ssklower 3121491Ssklower struct protosw nssw[] = { 3221491Ssklower { 0, &nsdomain, 0, 0, 3321491Ssklower 0, idp_output, 0, 0, 3421491Ssklower 0, 3521491Ssklower ns_init, 0, 0, 0, 3621491Ssklower }, 3721491Ssklower { SOCK_DGRAM, &nsdomain, 0, PR_ATOMIC|PR_ADDR, 3821491Ssklower 0, 0, idp_ctlinput, idp_ctloutput, 3921491Ssklower idp_usrreq, 4021491Ssklower 0, 0, 0, 0, 4121491Ssklower }, 4221491Ssklower { SOCK_STREAM, &nsdomain, NSPROTO_SPP, PR_CONNREQUIRED|PR_WANTRCVD, 4321491Ssklower spp_input, 0, spp_ctlinput, spp_ctloutput, 4421491Ssklower spp_usrreq, 4521491Ssklower spp_init, spp_fasttimo, spp_slowtimo, 0, 4621491Ssklower }, 4721491Ssklower { SOCK_SEQPACKET,&nsdomain, NSPROTO_SPP, PR_CONNREQUIRED|PR_WANTRCVD|PR_ATOMIC, 4821491Ssklower spp_input, 0, spp_ctlinput, spp_ctloutput, 4921491Ssklower spp_usrreq_sp, 5021491Ssklower 0, 0, 0, 0, 5121491Ssklower }, 5221491Ssklower { SOCK_RAW, &nsdomain, NSPROTO_RAW, PR_ATOMIC|PR_ADDR, 5321491Ssklower idp_input, idp_output, 0, idp_ctloutput, 5421491Ssklower idp_raw_usrreq, 5521491Ssklower 0, 0, 0, 0, 5621491Ssklower }, 5721491Ssklower { SOCK_RAW, &nsdomain, NSPROTO_ERROR, PR_ATOMIC|PR_ADDR, 5821491Ssklower idp_ctlinput, idp_output, 0, idp_ctloutput, 5921491Ssklower idp_raw_usrreq, 6021491Ssklower 0, 0, 0, 0, 6121491Ssklower }, 6221491Ssklower }; 6321491Ssklower 6421491Ssklower struct domain nsdomain = 6521491Ssklower { AF_NS, "network systems", 0, 0, 0, 6621491Ssklower nssw, &nssw[sizeof(nssw)/sizeof(nssw[0])] }; 6721491Ssklower 68