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])] };