1 /* 2 * Copyright (c) 1982, 1986 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 this notice is preserved and that due credit is given 7 * to the University of California at Berkeley. The name of the University 8 * may not be used to endorse or promote products derived from this 9 * software without specific prior written permission. This software 10 * is provided ``as is'' without express or implied warranty. 11 * 12 * @(#)uipc_proto.c 7.2 (Berkeley) 12/30/87 13 */ 14 15 #include "param.h" 16 #include "socket.h" 17 #include "protosw.h" 18 #include "domain.h" 19 #include "mbuf.h" 20 21 /* 22 * Definitions of protocols supported in the UNIX domain. 23 */ 24 25 int uipc_usrreq(); 26 int raw_init(),raw_usrreq(),raw_input(),raw_ctlinput(); 27 extern struct domain unixdomain; /* or at least forward */ 28 29 struct protosw unixsw[] = { 30 { SOCK_STREAM, &unixdomain, 0, PR_CONNREQUIRED|PR_WANTRCVD|PR_RIGHTS, 31 0, 0, 0, 0, 32 uipc_usrreq, 33 0, 0, 0, 0, 34 }, 35 { SOCK_DGRAM, &unixdomain, 0, PR_ATOMIC|PR_ADDR|PR_RIGHTS, 36 0, 0, 0, 0, 37 uipc_usrreq, 38 0, 0, 0, 0, 39 }, 40 { 0, 0, 0, 0, 41 raw_input, 0, raw_ctlinput, 0, 42 raw_usrreq, 43 raw_init, 0, 0, 0, 44 } 45 }; 46 47 int unp_externalize(), unp_dispose(); 48 49 struct domain unixdomain = 50 { AF_UNIX, "unix", 0, unp_externalize, unp_dispose, 51 unixsw, &unixsw[sizeof(unixsw)/sizeof(unixsw[0])] }; 52