xref: /csrg-svn/sys/kern/uipc_proto.c (revision 33187)
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