Convert the struct domain next pointer to an SLIST.
authorJeffrey Hsu <hsu@dragonflybsd.org>
Fri, 4 Mar 2005 02:21:49 +0000 (02:21 +0000)
committerJeffrey Hsu <hsu@dragonflybsd.org>
Fri, 4 Mar 2005 02:21:49 +0000 (02:21 +0000)
20 files changed:
sys/kern/uipc_domain.c
sys/kern/uipc_mbuf.c
sys/kern/uipc_proto.c
sys/kern/vfs_subr.c
sys/net/if.c
sys/net/radix.c
sys/net/route.c
sys/net/rtsock.c
sys/netgraph/socket/ng_socket.c
sys/netinet/in_proto.c
sys/netinet6/in6_proto.c
sys/netproto/atalk/at_proto.c
sys/netproto/atm/atm_proto.c
sys/netproto/ipsec/keysock.c
sys/netproto/key/keysock.c
sys/netproto/natm/natm_proto.c
sys/netproto/ns/ns_proto.c
sys/sys/domain.h
sys/sys/protosw.h
sys/sys/queue.h

index 21e3fd9..34a9c3a 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)uipc_domain.c       8.2 (Berkeley) 10/18/93
  * $FreeBSD: src/sys/kern/uipc_domain.c,v 1.22.2.1 2001/07/03 11:01:37 ume Exp $
- * $DragonFly: src/sys/kern/uipc_domain.c,v 1.7 2004/12/28 08:09:59 hsu Exp $
+ * $DragonFly: src/sys/kern/uipc_domain.c,v 1.8 2005/03/04 02:21:48 hsu Exp $
  */
 
 #include <sys/param.h>
@@ -65,21 +65,21 @@ SYSINIT(domain, SI_SUB_PROTO_DOMAIN, SI_ORDER_FIRST, domaininit, NULL)
 static void    pffasttimo (void *);
 static void    pfslowtimo (void *);
 
-struct domain *domains;
+struct domainlist domains;
 
 static struct callout pffasttimo_ch;
 static struct callout pfslowtimo_ch;
 
 /*
  * Add a new protocol domain to the list of supported domains
- * Note: you cant unload it again because  a socket may be using it.
+ * Note: you cant unload it again because a socket may be using it.
  * XXX can't fail at this time.
  */
 static void
 net_init_domain(struct domain *dp)
 {
        struct protosw *pr;
-       int     s;
+       int s;
 
        s = splnet();
        if (dp->dom_init)
@@ -92,7 +92,7 @@ net_init_domain(struct domain *dp)
                        (*pr->pr_init)();
        }
        /*
-        * update global informatio about maximums
+        * update global information about maximums
         */
        max_hdr = max_linkhdr + max_protohdr;
        max_datalen = MHLEN - max_hdr;
@@ -101,19 +101,17 @@ net_init_domain(struct domain *dp)
 
 /*
  * Add a new protocol domain to the list of supported domains
- * Note: you cant unload it again because  a socket may be using it.
+ * Note: you cant unload it again because a socket may be using it.
  * XXX can't fail at this time.
  */
 void
 net_add_domain(void *data)
 {
-       int     s;
-       struct domain *dp;
+       struct domain *dp = data;
+       int s;
 
-       dp = (struct domain *)data;
        s = splnet();
-       dp->dom_next = domains;
-       domains = dp;
+       SLIST_INSERT_HEAD(&domains, dp, dom_next);
        splx(s);
        net_init_domain(dp);
 }
@@ -153,7 +151,7 @@ pffindtype(int family, int type)
        struct domain *dp;
        struct protosw *pr;
 
-       for (dp = domains; dp; dp = dp->dom_next)
+       SLIST_FOREACH(dp, &domains, dom_next)
                if (dp->dom_family == family)
                        goto found;
        return (NULL);
@@ -174,7 +172,7 @@ pffindproto(int family, int protocol, int type)
 
        if (family == 0)
                return (NULL);
-       for (dp = domains; dp; dp = dp->dom_next)
+       SLIST_FOREACH(dp, &domains, dom_next)
                if (dp->dom_family == family)
                        goto found;
        return (NULL);
@@ -197,7 +195,7 @@ pfctlinput(int cmd, struct sockaddr *sa)
        struct domain *dp;
        struct protosw *pr;
 
-       for (dp = domains; dp; dp = dp->dom_next)
+       SLIST_FOREACH(dp, &domains, dom_next)
                for (pr = dp->dom_protosw; pr < dp->dom_protoswNPROTOSW; pr++)
                        if (pr->pr_ctlinput)
                                (*pr->pr_ctlinput)(cmd, sa, (void *)NULL);
@@ -211,7 +209,7 @@ pfctlinput2(int cmd, struct sockaddr *sa, void *ctlparam)
 
        if (!sa)
                return;
-       for (dp = domains; dp; dp = dp->dom_next) {
+       SLIST_FOREACH(dp, &domains, dom_next) {
                /*
                 * the check must be made by xx_ctlinput() anyways, to
                 * make sure we use data item pointed to by ctlparam in
@@ -232,7 +230,7 @@ pfslowtimo(void *arg)
        struct domain *dp;
        struct protosw *pr;
 
-       for (dp = domains; dp; dp = dp->dom_next)
+       SLIST_FOREACH(dp, &domains, dom_next)
                for (pr = dp->dom_protosw; pr < dp->dom_protoswNPROTOSW; pr++)
                        if (pr->pr_slowtimo)
                                (*pr->pr_slowtimo)();
@@ -245,7 +243,7 @@ pffasttimo(void *arg)
        struct domain *dp;
        struct protosw *pr;
 
-       for (dp = domains; dp; dp = dp->dom_next)
+       SLIST_FOREACH(dp, &domains, dom_next)
                for (pr = dp->dom_protosw; pr < dp->dom_protoswNPROTOSW; pr++)
                        if (pr->pr_fasttimo)
                                (*pr->pr_fasttimo)();
index 541abcd..8db2995 100644 (file)
@@ -82,7 +82,7 @@
  *
  * @(#)uipc_mbuf.c     8.2 (Berkeley) 1/4/94
  * $FreeBSD: src/sys/kern/uipc_mbuf.c,v 1.51.2.24 2003/04/15 06:59:29 silby Exp $
- * $DragonFly: src/sys/kern/uipc_mbuf.c,v 1.34 2005/02/20 00:20:43 joerg Exp $
+ * $DragonFly: src/sys/kern/uipc_mbuf.c,v 1.35 2005/03/04 02:21:48 hsu Exp $
  */
 
 #include "opt_param.h"
@@ -678,7 +678,7 @@ m_reclaim(void)
        struct protosw *pr;
 
        crit_enter();
-       for (dp = domains; dp; dp = dp->dom_next) {
+       SLIST_FOREACH(dp, &domains, dom_next) {
                for (pr = dp->dom_protosw; pr < dp->dom_protoswNPROTOSW; pr++) {
                        if (pr->pr_drain)
                                (*pr->pr_drain)();
index da87495..12d14b0 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)uipc_proto.c        8.1 (Berkeley) 6/10/93
  * $FreeBSD: src/sys/kern/uipc_proto.c,v 1.21.2.1 2002/03/09 05:22:23 dd Exp $
- * $DragonFly: src/sys/kern/uipc_proto.c,v 1.4 2004/06/07 07:01:34 dillon Exp $
+ * $DragonFly: src/sys/kern/uipc_proto.c,v 1.5 2005/03/04 02:21:48 hsu Exp $
  */
 
 #include <sys/param.h>
 
 static struct protosw localsw[] = {
 { SOCK_STREAM, &localdomain,   0,      PR_CONNREQUIRED|PR_WANTRCVD|PR_RIGHTS,
-  0,           0,              0,              &uipc_ctloutput,
+  NULL,                NULL,           NULL,           &uipc_ctloutput,
   sync_soport,
-  0,           0,              0,              0,
+  NULL,                NULL,           NULL,           NULL,
   &uipc_usrreqs
 },
 { SOCK_DGRAM,  &localdomain,   0,              PR_ATOMIC|PR_ADDR|PR_RIGHTS,
-  0,           0,              0,              0,
+  NULL,                NULL,           NULL,           NULL,
   sync_soport,
-  0,           0,              0,              0,
+  NULL,                NULL,           NULL,           NULL,
   &uipc_usrreqs
 },
-{ 0,           0,              0,              0,
-  0,           0,              raw_ctlinput,   0,
+{ 0,           NULL,           0,              0,
+  NULL,                NULL,           raw_ctlinput,   NULL,
   sync_soport,
-  raw_init,    0,              0,              0,
+  raw_init,    NULL,           NULL,           NULL,
   &raw_usrreqs
 }
 };
 
-struct domain localdomain =
-    { AF_LOCAL, "local", unp_init, unp_externalize, unp_dispose,
-      localsw, &localsw[sizeof(localsw)/sizeof(localsw[0])] };
+struct domain localdomain = {
+       AF_LOCAL, "local", unp_init, unp_externalize, unp_dispose,
+       localsw, &localsw[sizeof(localsw)/sizeof(localsw[0])],
+};
+
 DOMAIN_SET(local);
 
 SYSCTL_NODE(_net, PF_LOCAL, local, CTLFLAG_RW, 0, "Local domain");
index 89eb524..53b9069 100644 (file)
@@ -37,7 +37,7 @@
  *
  *     @(#)vfs_subr.c  8.31 (Berkeley) 5/26/95
  * $FreeBSD: src/sys/kern/vfs_subr.c,v 1.249.2.30 2003/04/04 20:35:57 tegge Exp $
- * $DragonFly: src/sys/kern/vfs_subr.c,v 1.52 2005/02/12 18:56:46 dillon Exp $
+ * $DragonFly: src/sys/kern/vfs_subr.c,v 1.53 2005/03/04 02:21:48 hsu Exp $
  */
 
 /*
@@ -1388,7 +1388,7 @@ vfs_hang_addrlist(struct mount *mp, struct netexport *nep,
                 * Seems silly to initialize every AF when most are not used,
                 * do so on demand here
                 */
-               for (dom = domains; dom; dom = dom->dom_next)
+               SLIST_FOREACH(dom, &domains, dom_next)
                        if (dom->dom_family == i && dom->dom_rtattach) {
                                dom->dom_rtattach((void **) &nep->ne_rtable[i],
                                    dom->dom_rtoffset);
index 327bcf9..5770001 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)if.c        8.3 (Berkeley) 1/4/94
  * $FreeBSD: src/sys/net/if.c,v 1.185 2004/03/13 02:35:03 brooks Exp $
- * $DragonFly: src/sys/net/if.c,v 1.28 2005/02/11 22:25:57 joerg Exp $
+ * $DragonFly: src/sys/net/if.c,v 1.29 2005/03/04 02:21:48 hsu Exp $
  */
 
 #include "opt_compat.h"
@@ -246,7 +246,7 @@ if_attach(struct ifnet *ifp)
        ifp->if_snd.altq_tbr = NULL;
        ifp->if_snd.altq_ifp = ifp;
 
-       if (domains)
+       if (!SLIST_EMPTY(&domains))
                if_attachdomain1(ifp);
 
        /* Announce the interface. */
@@ -277,11 +277,10 @@ if_attachdomain1(struct ifnet *ifp)
 
        /* address family dependent data region */
        bzero(ifp->if_afdata, sizeof(ifp->if_afdata));
-       for (dp = domains; dp; dp = dp->dom_next) {
+       SLIST_FOREACH(dp, &domains, dom_next)
                if (dp->dom_ifattach)
                        ifp->if_afdata[dp->dom_family] =
                                (*dp->dom_ifattach)(ifp);
-       }
        splx(s);
 }
 
@@ -371,11 +370,10 @@ if_detach(struct ifnet *ifp)
        /* Announce that the interface is gone. */
        rt_ifannouncemsg(ifp, IFAN_DEPARTURE);
 
-       for (dp = domains; dp; dp = dp->dom_next) {
+       SLIST_FOREACH(dp, &domains, dom_next)
                if (dp->dom_ifdetach && ifp->if_afdata[dp->dom_family])
                        (*dp->dom_ifdetach)(ifp,
                                ifp->if_afdata[dp->dom_family]);
-       }
 
        ifindex2ifnet[ifp->if_index] = NULL;
 
index fe8abea..ec5883e 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)radix.c     8.4 (Berkeley) 11/2/94
  * $FreeBSD: src/sys/net/radix.c,v 1.20.2.3 2002/04/28 05:40:25 suz Exp $
- * $DragonFly: src/sys/net/radix.c,v 1.10 2005/01/06 09:14:13 hsu Exp $
+ * $DragonFly: src/sys/net/radix.c,v 1.11 2005/03/04 02:21:48 hsu Exp $
  */
 
 /*
@@ -1050,7 +1050,7 @@ rn_init()
 #ifdef _KERNEL
        struct domain *dom;
 
-       for (dom = domains; dom; dom = dom->dom_next)
+       SLIST_FOREACH(dom, &domains, dom_next)
                if (dom->dom_maxrtkey > max_keylen)
                        max_keylen = dom->dom_maxrtkey;
 #endif
index 4129506..3ce396d 100644 (file)
@@ -82,7 +82,7 @@
  *
  *     @(#)route.c     8.3 (Berkeley) 1/9/95
  * $FreeBSD: src/sys/net/route.c,v 1.59.2.10 2003/01/17 08:04:00 ru Exp $
- * $DragonFly: src/sys/net/route.c,v 1.16 2005/02/28 11:39:33 hsu Exp $
+ * $DragonFly: src/sys/net/route.c,v 1.17 2005/03/04 02:21:48 hsu Exp $
  */
 
 #include "opt_inet.h"
@@ -113,7 +113,7 @@ rtable_init(void **table)
 {
        struct domain *dom;
 
-       for (dom = domains; dom; dom = dom->dom_next)
+       SLIST_FOREACH(dom, &domains, dom_next)
                if (dom->dom_rtattach)
                        dom->dom_rtattach(&table[dom->dom_family],
                                          dom->dom_rtoffset);
index 84050ce..40486ac 100644 (file)
@@ -82,7 +82,7 @@
  *
  *     @(#)rtsock.c    8.7 (Berkeley) 10/12/95
  * $FreeBSD: src/sys/net/rtsock.c,v 1.44.2.11 2002/12/04 14:05:41 ru Exp $
- * $DragonFly: src/sys/net/rtsock.c,v 1.22 2005/02/24 23:41:43 dillon Exp $
+ * $DragonFly: src/sys/net/rtsock.c,v 1.23 2005/03/04 02:21:48 hsu Exp $
  */
 
 #include <sys/param.h>
@@ -1205,8 +1205,9 @@ static struct protosw routesw[] = {
 }
 };
 
-static struct domain routedomain =
-    { PF_ROUTE, "route", 0, 0, 0,
-      routesw, &routesw[(sizeof routesw)/(sizeof routesw[0])] };
+static struct domain routedomain = {
+       PF_ROUTE, "route", NULL, NULL, NULL,
+       routesw, &routesw[(sizeof routesw)/(sizeof routesw[0])],
+};
 
 DOMAIN_SET(route);
index a06b6bc..04f0ca3 100644 (file)
@@ -37,7 +37,7 @@
  * Author: Julian Elischer <julian@freebsd.org>
  *
  * $FreeBSD: src/sys/netgraph/ng_socket.c,v 1.11.2.6 2002/07/02 22:17:18 archie Exp $
- * $DragonFly: src/sys/netgraph/socket/ng_socket.c,v 1.8 2005/02/17 14:00:00 joerg Exp $
+ * $DragonFly: src/sys/netgraph/socket/ng_socket.c,v 1.9 2005/03/04 02:21:48 hsu Exp $
  * $Whistle: ng_socket.c,v 1.28 1999/11/01 09:24:52 julian Exp $
  */
 
@@ -964,17 +964,8 @@ static struct protosw ngsw[] = {
 };
 
 struct domain ngdomain = {
-       AF_NETGRAPH,
-       "netgraph",
-       0,
-       NULL,
-       NULL,
-       ngsw,
-       &ngsw[sizeof(ngsw) / sizeof(ngsw[0])],
-       0,
-       NULL,
-       0,
-       0
+       AF_NETGRAPH, "netgraph", NULL, NULL, NULL,
+       ngsw, &ngsw[sizeof(ngsw) / sizeof(ngsw[0])],
 };
 
 /*
index 6e8cc58..d1dcc23 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)in_proto.c  8.2 (Berkeley) 2/9/95
  * $FreeBSD: src/sys/netinet/in_proto.c,v 1.53.2.7 2003/08/24 08:24:38 hsu Exp $
- * $DragonFly: src/sys/netinet/in_proto.c,v 1.11 2005/01/31 21:44:10 joerg Exp $
+ * $DragonFly: src/sys/netinet/in_proto.c,v 1.12 2005/03/04 02:21:48 hsu Exp $
  */
 
 #include "opt_ipdivert.h"
@@ -261,12 +261,12 @@ struct protosw inetsw[] = {
 },
 };
 
-struct domain inetdomain =
-    { AF_INET, "internet", 0, 0, 0,
-      (struct protosw *)inetsw,
-      (struct protosw *)&inetsw[sizeof(inetsw)/sizeof(inetsw[0])], 0,
-      in_inithead, 32, sizeof(struct sockaddr_in)
-    };
+struct domain inetdomain = {
+       AF_INET, "internet", NULL, NULL, NULL,
+       inetsw, &inetsw[sizeof(inetsw)/sizeof(inetsw[0])],
+       SLIST_ENTRY_INITIALIZER,
+       in_inithead, 32, sizeof(struct sockaddr_in),
+};
 
 DOMAIN_SET(inet);
 
index 23bc499..cc45f55 100644 (file)
@@ -1,5 +1,5 @@
 /*     $FreeBSD: src/sys/netinet6/in6_proto.c,v 1.6.2.9 2003/01/24 05:11:35 sam Exp $  */
-/*     $DragonFly: src/sys/netinet6/in6_proto.c,v 1.8 2005/02/01 16:09:37 hrs Exp $    */
+/*     $DragonFly: src/sys/netinet6/in6_proto.c,v 1.9 2005/03/04 02:21:49 hsu Exp $    */
 /*     $KAME: in6_proto.c,v 1.91 2001/05/27 13:28:35 itojun Exp $      */
 
 /*
@@ -258,14 +258,14 @@ struct ip6protosw inet6sw[] = {
 
 extern int in6_inithead (void **, int);
 
-struct domain inet6domain =
-    { AF_INET6, "internet6", 0, 0, 0,
-      (struct protosw *)inet6sw,
-      (struct protosw *)&inet6sw[sizeof(inet6sw)/sizeof(inet6sw[0])], 0,
-      in6_inithead,
-      offsetof(struct sockaddr_in6, sin6_addr) << 3,
-      sizeof(struct sockaddr_in6),
-      in6_domifattach, in6_domifdetach, };
+struct domain inet6domain = {
+       AF_INET6, "internet6", NULL, NULL, NULL,
+       (struct protosw *)inet6sw,
+       (struct protosw *)&inet6sw[sizeof(inet6sw)/sizeof(inet6sw[0])],
+       SLIST_ENTRY_INITIALIZER,
+       in6_inithead, offsetof(struct sockaddr_in6, sin6_addr) << 3,
+       sizeof(struct sockaddr_in6), in6_domifattach, in6_domifdetach
+};
 
 DOMAIN_SET(inet6);
 
index c1887f0..ead746c 100644 (file)
@@ -20,7 +20,7 @@
  *     +1-313-763-0525
  *     netatalk@itd.umich.edu
  *
- * $DragonFly: src/sys/netproto/atalk/at_proto.c,v 1.3 2004/03/06 01:58:56 hsu Exp $
+ * $DragonFly: src/sys/netproto/atalk/at_proto.c,v 1.4 2005/03/04 02:21:49 hsu Exp $
  */
 
 #include <sys/param.h>
@@ -36,9 +36,9 @@
 #include "ddp_var.h"
 #include "at_extern.h"
 
-extern struct domain   atalkdomain;
+extern struct domain atalkdomain;
 
-static struct protosw  atalksw[] = {
+static struct protosw atalksw[] = {
     {
        /* Identifiers */
        SOCK_DGRAM,     &atalkdomain,   ATPROTO_DDP,    PR_ATOMIC|PR_ADDR,
@@ -58,12 +58,12 @@ static struct protosw       atalksw[] = {
     },
 };
 
-static struct domain   atalkdomain = {
-    AF_APPLETALK,      "appletalk",    0,      0,      0,
-    atalksw, &atalksw[sizeof(atalksw)/sizeof(atalksw[0])],
-    0, rn_inithead,
-    8 * (u_long) &((struct sockaddr_at *) 0)->sat_addr,
-    sizeof(struct sockaddr_at)
+static struct domain atalkdomain = {
+       AF_APPLETALK, "appletalk", NULL, NULL, NULL,
+       atalksw, &atalksw[sizeof(atalksw)/sizeof(atalksw[0])],
+       SLIST_ENTRY_INITIALIZER,
+       rn_inithead, 8 * offsetof(struct sockaddr_at, sat_addr),
+       sizeof(struct sockaddr_at),
 };
 
 DOMAIN_SET(atalk);
index ada3fd7..73bcc9a 100644 (file)
@@ -24,7 +24,7 @@
  * notice must be reproduced on all copies.
  *
  *     @(#) $FreeBSD: src/sys/netatm/atm_proto.c,v 1.3 1999/08/28 00:48:36 peter Exp $
- *     @(#) $DragonFly: src/sys/netproto/atm/atm_proto.c,v 1.9 2005/02/01 00:51:50 joerg Exp $
+ *     @(#) $DragonFly: src/sys/netproto/atm/atm_proto.c,v 1.10 2005/03/04 02:21:49 hsu Exp $
  */
 
 /*
@@ -90,13 +90,8 @@ struct protosw atmsw[] = {
 };
 
 struct domain atmdomain = {
-       AF_ATM,
-       "atm",
-       atm_initialize,
-       0,
-       0, 
-       atmsw,
-       &atmsw[sizeof(atmsw) / sizeof(atmsw[0])]
+       AF_ATM, "atm", atm_initialize, NULL, NULL,
+       atmsw, &atmsw[sizeof(atmsw) / sizeof(atmsw[0])],
 };
 
 DOMAIN_SET(atm);
index 294adfd..80c0853 100644 (file)
@@ -1,5 +1,5 @@
 /*     $FreeBSD: src/sys/netipsec/keysock.c,v 1.3.2.1 2003/01/24 05:11:36 sam Exp $    */
-/*     $DragonFly: src/sys/netproto/ipsec/keysock.c,v 1.8 2004/10/15 22:59:10 hsu Exp $        */
+/*     $DragonFly: src/sys/netproto/ipsec/keysock.c,v 1.9 2005/03/04 02:21:49 hsu Exp $        */
 /*     $KAME: keysock.c,v 1.25 2001/08/13 20:07:41 itojun Exp $        */
 
 /*
@@ -587,8 +587,9 @@ key_init0(void)
        key_init();
 }
 
-struct domain keydomain =
-    { PF_KEY, "key", key_init0, 0, 0,
-      keysw, &keysw[sizeof(keysw)/sizeof(keysw[0])] };
+struct domain keydomain = {
+       PF_KEY, "key", key_init0, NULL, NULL,
+       keysw, &keysw[sizeof(keysw)/sizeof(keysw[0])],
+};
 
 DOMAIN_SET(key);
index dff19ba..b7b91ef 100644 (file)
@@ -1,5 +1,5 @@
 /*     $FreeBSD: src/sys/netkey/keysock.c,v 1.1.2.4 2003/01/11 19:10:59 ume Exp $      */
-/*     $DragonFly: src/sys/netproto/key/keysock.c,v 1.11 2004/06/03 15:04:51 joerg Exp $       */
+/*     $DragonFly: src/sys/netproto/key/keysock.c,v 1.12 2005/03/04 02:21:49 hsu Exp $ */
 /*     $KAME: keysock.c,v 1.25 2001/08/13 20:07:41 itojun Exp $        */
 
 /*
@@ -576,8 +576,9 @@ struct protosw keysw[] = {
 }
 };
 
-struct domain keydomain =
-    { PF_KEY, "key", key_init, 0, 0,
-      keysw, &keysw[sizeof(keysw)/sizeof(keysw[0])] };
+struct domain keydomain = {
+       PF_KEY, "key", key_init, NULL, NULL,
+       keysw, &keysw[sizeof(keysw)/sizeof(keysw[0])],
+};
 
 DOMAIN_SET(key);
index ca81f38..b929dbb 100644 (file)
@@ -32,7 +32,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/netnatm/natm_proto.c,v 1.4.2.2 2000/08/03 18:56:28 peter Exp $
- * $DragonFly: src/sys/netproto/natm/natm_proto.c,v 1.7 2004/03/06 01:58:57 hsu Exp $
+ * $DragonFly: src/sys/netproto/natm/natm_proto.c,v 1.8 2005/03/04 02:21:49 hsu Exp $
  */
 
 /*
@@ -100,10 +100,10 @@ static struct protosw natmsw[] = {
 },
 };
 
-static struct domain natmdomain =
-    { AF_NATM, "natm", natm_init, 0, 0, 
-      natmsw, &natmsw[sizeof(natmsw)/sizeof(natmsw[0])], 0,
-      0, 0, 0};
+static struct domain natmdomain = {
+       AF_NATM, "natm", natm_init, NULL, NULL,
+       natmsw, &natmsw[sizeof(natmsw)/sizeof(natmsw[0])],
+};
 
 #ifdef NATM_STAT
 u_int natm_sodropcnt = 0;              /* # mbufs dropped due to full sb */
index 9497c39..0fcb6df 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     From: @(#)ns_proto.c    8.1 (Berkeley) 6/10/93
  * $FreeBSD: src/sys/netns/ns_proto.c,v 1.10 1999/08/28 00:49:51 peter Exp $
- * $DragonFly: src/sys/netproto/ns/ns_proto.c,v 1.6 2004/06/07 07:04:33 dillon Exp $
+ * $DragonFly: src/sys/netproto/ns/ns_proto.c,v 1.7 2005/03/04 02:21:49 hsu Exp $
  */
 
 #include <sys/param.h>
@@ -97,9 +97,10 @@ struct protosw nssw[] = {
 }
 };
 
-struct domain nsdomain =
-    { AF_NS, "network systems", 0, 0, 0,
-      nssw, &nssw[sizeof(nssw)/sizeof(nssw[0])], 0,
-      rn_inithead, 16, sizeof(struct sockaddr_ns)};
+struct domain nsdomain = {
+       AF_NS, "network systems", NULL, NULL, NULL,
+       nssw, &nssw[sizeof(nssw)/sizeof(nssw[0])], SLIST_ENTRY_INITIALIZER,
+       rn_inithead, 16, sizeof(struct sockaddr_ns),
+};
 
 DOMAIN_SET(ns);
index ca47b7e..a8d163e 100644 (file)
  *
  *     @(#)domain.h    8.1 (Berkeley) 6/2/93
  * $FreeBSD: src/sys/sys/domain.h,v 1.14 1999/12/29 04:24:40 peter Exp $
- * $DragonFly: src/sys/sys/domain.h,v 1.5 2005/02/01 16:09:37 hrs Exp $
+ * $DragonFly: src/sys/sys/domain.h,v 1.6 2005/03/04 02:21:49 hsu Exp $
  */
 
 #ifndef _SYS_DOMAIN_H_
 #define _SYS_DOMAIN_H_
 
+#include <sys/queue.h>
+
 /*
  * Structure per communications domain.
  */
@@ -48,6 +50,8 @@
 struct mbuf;
 struct ifnet;
 
+SLIST_HEAD(domainlist, domain);
+
 struct domain {
        int     dom_family;             /* AF_xxx */
        char    *dom_name;
@@ -58,7 +62,7 @@ struct        domain {
                                                 * rights */
        struct  protosw *dom_protosw;
        struct  protosw *dom_protoswNPROTOSW;
-       struct  domain *dom_next;
+       SLIST_ENTRY(domain) dom_next;
        int     (*dom_rtattach)(void **, int);  /* initialize routing table */
        int     dom_rtoffset;           /* an arg to rtattach, in bits */
        int     dom_maxrtkey;           /* for routing layer */
@@ -68,9 +72,10 @@ struct       domain {
 };
 
 #ifdef _KERNEL
-extern struct  domain *domains;
-extern struct  domain localdomain;
-extern void    net_add_domain(void *);
+extern struct domainlist domains;
+extern struct domain    localdomain;
+
+extern void            net_add_domain(void *);
 
 #define DOMAIN_SET(name) \
        SYSINIT(domain_ ## name, SI_SUB_PROTO_DOMAIN, SI_ORDER_SECOND, net_add_domain, & name ## domain)
index f3ae587..d889b63 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)protosw.h   8.1 (Berkeley) 6/2/93
  * $FreeBSD: src/sys/sys/protosw.h,v 1.28.2.2 2001/07/03 11:02:01 ume Exp $
- * $DragonFly: src/sys/sys/protosw.h,v 1.13 2004/06/07 07:01:36 dillon Exp $
+ * $DragonFly: src/sys/sys/protosw.h,v 1.14 2005/03/04 02:21:49 hsu Exp $
  */
 
 #ifndef _SYS_PROTOSW_H_
@@ -74,7 +74,7 @@ struct pr_output_info {
  */
 struct protosw {
        short   pr_type;                /* socket type used for */
-       const struct    domain *pr_domain; /* domain protocol a member of */
+       const struct domain *pr_domain; /* domain protocol a member of */
        short   pr_protocol;            /* protocol number */
        short   pr_flags;               /* see below */
 /* protocol-protocol hooks */
index f373bc6..2f3680f 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)queue.h     8.5 (Berkeley) 8/20/94
  * $FreeBSD: src/sys/sys/queue.h,v 1.32.2.7 2002/04/17 14:21:02 des Exp $
- * $DragonFly: src/sys/sys/queue.h,v 1.6 2004/08/12 14:57:29 joerg Exp $
+ * $DragonFly: src/sys/sys/queue.h,v 1.7 2005/03/04 02:21:49 hsu Exp $
  */
 
 #ifndef _SYS_QUEUE_H_
@@ -128,6 +128,8 @@ struct name {                                                               \
 struct {                                                               \
        struct type *sle_next;  /* next element */                      \
 }
+
+#define SLIST_ENTRY_INITIALIZER        { NULL }
  
 /*
  * Singly-linked List functions.