summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2006-08-07 12:02:43 +0000
committerrwatson <rwatson@FreeBSD.org>2006-08-07 12:02:43 +0000
commit3bd21f489dfd6312870849d0fe3e9f82c74b1b79 (patch)
tree632c3b48deb628a0bb5ceef890e7a8a5b66f131a /sys
parenta107b7659257676eb8d54343ada8c0187e4f2f12 (diff)
downloadFreeBSD-src-3bd21f489dfd6312870849d0fe3e9f82c74b1b79.zip
FreeBSD-src-3bd21f489dfd6312870849d0fe3e9f82c74b1b79.tar.gz
Move definition of UNIX domain socket protosw and domain entries from
uipc_proto.c to uipc_usrreq.c, making localdomain static. Remove uipc_proto.c as it's no longer used. With this change, UNIX domain sockets are entirely encapsulated in uipc_usrreq.c.
Diffstat (limited to 'sys')
-rw-r--r--sys/conf/files1
-rw-r--r--sys/kern/uipc_proto.c79
-rw-r--r--sys/kern/uipc_usrreq.c38
-rw-r--r--sys/sys/domain.h1
4 files changed, 35 insertions, 84 deletions
diff --git a/sys/conf/files b/sys/conf/files
index 2ea5afb..d8f3901 100644
--- a/sys/conf/files
+++ b/sys/conf/files
@@ -1420,7 +1420,6 @@ kern/uipc_domain.c standard
kern/uipc_mbuf.c standard
kern/uipc_mbuf2.c standard
kern/uipc_mqueue.c optional p1003_1b_mqueue
-kern/uipc_proto.c standard
kern/uipc_sem.c optional p1003_1b_semaphores
kern/uipc_sockbuf.c standard
kern/uipc_socket.c standard
diff --git a/sys/kern/uipc_proto.c b/sys/kern/uipc_proto.c
deleted file mode 100644
index 400a4ce..0000000
--- a/sys/kern/uipc_proto.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/*-
- * Copyright (c) 1982, 1986, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)uipc_proto.c 8.1 (Berkeley) 6/10/93
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/param.h>
-#include <sys/kernel.h>
-#include <sys/domain.h>
-#include <sys/protosw.h>
-#include <sys/socket.h>
-#include <sys/queue.h>
-#include <sys/sysctl.h>
-#include <sys/un.h>
-
-#include <net/raw_cb.h>
-
-/*
- * Definitions of protocols supported in the LOCAL domain.
- */
-
-static struct protosw localsw[] = {
-{
- .pr_type = SOCK_STREAM,
- .pr_domain = &localdomain,
- .pr_flags = PR_CONNREQUIRED|PR_WANTRCVD|PR_RIGHTS,
- .pr_ctloutput = &uipc_ctloutput,
- .pr_usrreqs = &uipc_usrreqs
-},
-{
- .pr_type = SOCK_DGRAM,
- .pr_domain = &localdomain,
- .pr_flags = PR_ATOMIC|PR_ADDR|PR_RIGHTS,
- .pr_usrreqs = &uipc_usrreqs
-},
-};
-
-struct domain localdomain = {
- .dom_family = AF_LOCAL,
- .dom_name = "local",
- .dom_init = unp_init,
- .dom_externalize = unp_externalize,
- .dom_dispose = unp_dispose,
- .dom_protosw = localsw,
- .dom_protoswNPROTOSW = &localsw[sizeof(localsw)/sizeof(localsw[0])]
-};
-DOMAIN_SET(local);
-
-SYSCTL_NODE(_net, PF_LOCAL, local, CTLFLAG_RW, 0, "Local domain");
-SYSCTL_NODE(_net_local, SOCK_STREAM, stream, CTLFLAG_RW, 0, "SOCK_STREAM");
-SYSCTL_NODE(_net_local, SOCK_DGRAM, dgram, CTLFLAG_RW, 0, "SOCK_DGRAM");
diff --git a/sys/kern/uipc_usrreq.c b/sys/kern/uipc_usrreq.c
index c3f2eaa..0c52a03 100644
--- a/sys/kern/uipc_usrreq.c
+++ b/sys/kern/uipc_usrreq.c
@@ -124,17 +124,18 @@ static u_long unpdg_recvspace = 4*1024;
static int unp_rights; /* file descriptors in flight */
-SYSCTL_DECL(_net_local_stream);
+SYSCTL_NODE(_net, PF_LOCAL, local, CTLFLAG_RW, 0, "Local domain");
+SYSCTL_NODE(_net_local, SOCK_STREAM, stream, CTLFLAG_RW, 0, "SOCK_STREAM");
+SYSCTL_NODE(_net_local, SOCK_DGRAM, dgram, CTLFLAG_RW, 0, "SOCK_DGRAM");
+
SYSCTL_ULONG(_net_local_stream, OID_AUTO, sendspace, CTLFLAG_RW,
&unpst_sendspace, 0, "");
SYSCTL_ULONG(_net_local_stream, OID_AUTO, recvspace, CTLFLAG_RW,
&unpst_recvspace, 0, "");
-SYSCTL_DECL(_net_local_dgram);
SYSCTL_ULONG(_net_local_dgram, OID_AUTO, maxdgram, CTLFLAG_RW,
&unpdg_sendspace, 0, "");
SYSCTL_ULONG(_net_local_dgram, OID_AUTO, recvspace, CTLFLAG_RW,
&unpdg_recvspace, 0, "");
-SYSCTL_DECL(_net_local);
SYSCTL_INT(_net_local, OID_AUTO, inflight, CTLFLAG_RD, &unp_rights, 0, "");
/*
@@ -187,6 +188,37 @@ static int unp_internalize(struct mbuf **, struct thread *);
static int unp_listen(struct socket *, struct unpcb *, int,
struct thread *);
+/*
+ * Definitions of protocols supported in the LOCAL domain.
+ */
+static struct domain localdomain;
+static struct protosw localsw[] = {
+{
+ .pr_type = SOCK_STREAM,
+ .pr_domain = &localdomain,
+ .pr_flags = PR_CONNREQUIRED|PR_WANTRCVD|PR_RIGHTS,
+ .pr_ctloutput = &uipc_ctloutput,
+ .pr_usrreqs = &uipc_usrreqs
+},
+{
+ .pr_type = SOCK_DGRAM,
+ .pr_domain = &localdomain,
+ .pr_flags = PR_ATOMIC|PR_ADDR|PR_RIGHTS,
+ .pr_usrreqs = &uipc_usrreqs
+},
+};
+
+static struct domain localdomain = {
+ .dom_family = AF_LOCAL,
+ .dom_name = "local",
+ .dom_init = unp_init,
+ .dom_externalize = unp_externalize,
+ .dom_dispose = unp_dispose,
+ .dom_protosw = localsw,
+ .dom_protoswNPROTOSW = &localsw[sizeof(localsw)/sizeof(localsw[0])]
+};
+DOMAIN_SET(local);
+
static void
uipc_abort(struct socket *so)
{
diff --git a/sys/sys/domain.h b/sys/sys/domain.h
index 1ec4447..cf2e92c 100644
--- a/sys/sys/domain.h
+++ b/sys/sys/domain.h
@@ -66,7 +66,6 @@ struct domain {
#ifdef _KERNEL
extern int domain_init_status;
extern struct domain *domains;
-extern struct domain localdomain;
extern void net_add_domain(void *);
#define DOMAIN_SET(name) \
OpenPOWER on IntegriCloud