]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/kern/uipc_domain.c
xnu-7195.101.1.tar.gz
[apple/xnu.git] / bsd / kern / uipc_domain.c
index c1f6a3efbf4aa962bf14018beea8801797b9436f..0a6b54ed9edfeead8993785b3d6d9de4aa0a026a 100644 (file)
@@ -100,11 +100,12 @@ static boolean_t domain_draining;
 static void domain_sched_timeout(void);
 static void domain_timeout(void *);
 
-lck_grp_t       *domain_proto_mtx_grp;
-lck_attr_t      *domain_proto_mtx_attr;
-static lck_grp_attr_t   *domain_proto_mtx_grp_attr;
-decl_lck_mtx_data(static, domain_proto_mtx);
-decl_lck_mtx_data(static, domain_timeout_mtx);
+static LCK_GRP_DECLARE(domain_proto_mtx_grp, "domain");
+static LCK_ATTR_DECLARE(domain_proto_mtx_attr, 0, 0);
+static LCK_MTX_DECLARE_ATTR(domain_proto_mtx,
+    &domain_proto_mtx_grp, &domain_proto_mtx_attr);
+static LCK_MTX_DECLARE_ATTR(domain_timeout_mtx,
+    &domain_proto_mtx_grp, &domain_proto_mtx_attr);
 
 u_int64_t _net_uptime;
 u_int64_t _net_uptime_ms;
@@ -196,8 +197,8 @@ init_domain(struct domain *dp)
        VERIFY(dp->dom_flags & DOM_ATTACHED);
 
        if (!(dp->dom_flags & DOM_INITIALIZED)) {
-               lck_mtx_init(&dp->dom_mtx_s, domain_proto_mtx_grp,
-                   domain_proto_mtx_attr);
+               lck_mtx_init(&dp->dom_mtx_s, &domain_proto_mtx_grp,
+                   &domain_proto_mtx_attr);
                dp->dom_mtx = &dp->dom_mtx_s;
                TAILQ_INIT(&dp->dom_protosw);
                if (dp->dom_init != NULL) {
@@ -290,7 +291,7 @@ net_add_domain_old(struct domain_old *odp)
                /* NOTREACHED */
        }
 
-       dp = _MALLOC(sizeof(*dp), M_TEMP, M_WAITOK | M_ZERO);
+       dp = kheap_alloc(KHEAP_DEFAULT, sizeof(struct domain), Z_WAITOK | Z_ZERO);
        if (dp == NULL) {
                /*
                 * There is really nothing better than to panic here,
@@ -360,15 +361,15 @@ net_del_domain_old(struct domain_old *odp)
                TAILQ_FOREACH_SAFE(pp1, &dp1->dom_protosw, pr_entry, pp2) {
                        detach_proto(pp1, dp1);
                        if (pp1->pr_usrreqs->pru_flags & PRUF_OLD) {
-                               FREE(pp1->pr_usrreqs, M_TEMP);
+                               kheap_free(KHEAP_DEFAULT, pp1->pr_usrreqs, sizeof(struct pr_usrreqs));
                        }
                        if (pp1->pr_flags & PR_OLD) {
-                               FREE(pp1, M_TEMP);
+                               kheap_free(KHEAP_DEFAULT, pp1, sizeof(struct protosw));
                        }
                }
 
                detach_domain(dp1);
-               FREE(dp1, M_TEMP);
+               kheap_free(KHEAP_DEFAULT, dp1, sizeof(struct domain));
        } else {
                error = EPFNOSUPPORT;
        }
@@ -485,7 +486,8 @@ net_add_proto_old(struct protosw_old *opp, struct domain_old *odp)
                /* NOTREACHED */
        }
 
-       pru = _MALLOC(sizeof(*pru), M_TEMP, M_WAITOK | M_ZERO);
+       pru = kheap_alloc(KHEAP_DEFAULT, sizeof(struct pr_usrreqs),
+           Z_WAITOK | Z_ZERO);
        if (pru == NULL) {
                error = ENOMEM;
                goto done;
@@ -513,7 +515,7 @@ net_add_proto_old(struct protosw_old *opp, struct domain_old *odp)
        pru->pru_soreceive      = opru->pru_soreceive;
        pru->pru_sopoll         = opru->pru_sopoll;
 
-       pp = _MALLOC(sizeof(*pp), M_TEMP, M_WAITOK | M_ZERO);
+       pp = kheap_alloc(KHEAP_DEFAULT, sizeof(struct protosw), Z_WAITOK | Z_ZERO);
        if (pp == NULL) {
                error = ENOMEM;
                goto done;
@@ -559,12 +561,8 @@ done:
                    "error %d\n", __func__, odp->dom_family,
                    odp->dom_name, opp->pr_protocol, error);
 
-               if (pru != NULL) {
-                       FREE(pru, M_TEMP);
-               }
-               if (pp != NULL) {
-                       FREE(pp, M_TEMP);
-               }
+               kheap_free(KHEAP_DEFAULT, pru, sizeof(struct pr_usrreqs));
+               kheap_free(KHEAP_DEFAULT, pp, sizeof(struct protosw));
        }
 
        domain_guard_release(guard);
@@ -602,10 +600,10 @@ net_del_proto(int type, int protocol, struct domain *dp)
 
        detach_proto(pp, dp);
        if (pp->pr_usrreqs->pru_flags & PRUF_OLD) {
-               FREE(pp->pr_usrreqs, M_TEMP);
+               kheap_free(KHEAP_DEFAULT, pp->pr_usrreqs, sizeof(struct pr_usrreqs));
        }
        if (pp->pr_flags & PR_OLD) {
-               FREE(pp, M_TEMP);
+               kheap_free(KHEAP_DEFAULT, pp, sizeof(struct protosw));
        }
 
        return 0;
@@ -653,10 +651,10 @@ net_del_proto_old(int type, int protocol, struct domain_old *odp)
        }
        detach_proto(pp, dp);
        if (pp->pr_usrreqs->pru_flags & PRUF_OLD) {
-               FREE(pp->pr_usrreqs, M_TEMP);
+               kheap_free(KHEAP_DEFAULT, pp->pr_usrreqs, sizeof(struct pr_usrreqs));
        }
        if (pp->pr_flags & PR_OLD) {
-               FREE(pp, M_TEMP);
+               kheap_free(KHEAP_DEFAULT, pp, sizeof(struct protosw));
        }
 
 done:
@@ -736,23 +734,6 @@ domaininit(void)
        domain_guard_t guard;
 
        eventhandler_lists_ctxt_init(&protoctl_evhdlr_ctxt);
-       /*
-        * allocate lock group attribute and group for domain mutexes
-        */
-       domain_proto_mtx_grp_attr = lck_grp_attr_alloc_init();
-
-       domain_proto_mtx_grp = lck_grp_alloc_init("domain",
-           domain_proto_mtx_grp_attr);
-
-       /*
-        * allocate the lock attribute for per domain mutexes
-        */
-       domain_proto_mtx_attr = lck_attr_alloc_init();
-
-       lck_mtx_init(&domain_proto_mtx, domain_proto_mtx_grp,
-           domain_proto_mtx_attr);
-       lck_mtx_init(&domain_timeout_mtx, domain_proto_mtx_grp,
-           domain_proto_mtx_attr);
 
        guard = domain_guard_deploy();
        /*