Lines Matching refs:dp

108 pr_init_old(struct protosw *pp, struct domain *dp)
110 #pragma unused(dp)
119 init_proto(struct protosw *pp, struct domain *dp)
126 pp->pr_init(pp, dp);
132 attach_proto(struct protosw *pp, struct domain *dp)
139 TAILQ_INSERT_TAIL(&dp->dom_protosw, pp, pr_entry);
141 pp->pr_domain = dp;
149 detach_proto(struct protosw *pp, struct domain *dp)
153 VERIFY(pp->pr_domain == dp);
156 TAILQ_REMOVE(&dp->dom_protosw, pp, pr_entry);
163 dom_init_old(struct domain *dp)
165 VERIFY(dp->dom_flags & DOM_OLD);
166 VERIFY(dp->dom_old != NULL);
168 if (dp->dom_old->dom_init != NULL)
169 dp->dom_old->dom_init();
173 init_domain(struct domain *dp)
175 VERIFY(dp->dom_flags & DOM_ATTACHED);
177 if (!(dp->dom_flags & DOM_INITIALIZED)) {
178 lck_mtx_init(&dp->dom_mtx_s, domain_proto_mtx_grp,
180 dp->dom_mtx = &dp->dom_mtx_s;
181 TAILQ_INIT(&dp->dom_protosw);
182 if (dp->dom_init != NULL)
183 dp->dom_init(dp);
184 dp->dom_flags |= DOM_INITIALIZED;
192 if (dp->dom_protohdrlen > _max_protohdr)
193 _max_protohdr = dp->dom_protohdrlen;
201 attach_domain(struct domain *dp)
204 VERIFY(!(dp->dom_flags & DOM_ATTACHED));
206 TAILQ_INSERT_TAIL(&domains, dp, dom_entry);
207 dp->dom_flags |= DOM_ATTACHED;
211 detach_domain(struct domain *dp)
214 VERIFY(dp->dom_flags & DOM_ATTACHED);
216 TAILQ_REMOVE(&domains, dp, dom_entry);
217 dp->dom_flags &= ~DOM_ATTACHED;
219 if (dp->dom_flags & DOM_OLD) {
220 struct domain_old *odp = dp->dom_old;
234 struct domain *dp;
240 if ((dp = pffinddomain_locked(odp->dom_family)) != NULL) {
247 dp->dom_family, dp->dom_name, odp->dom_name);
252 TAILQ_FOREACH(dp, &domains, dom_entry) {
253 if (dp->dom_old == odp) {
256 odp, odp->dom_family, odp->dom_name, dp,
257 dp->dom_family, dp->dom_name);
269 dp = _MALLOC(sizeof (*dp), M_TEMP, M_WAITOK | M_ZERO);
270 if (dp == NULL) {
282 dp->dom_family = odp->dom_family;
283 dp->dom_flags = (odp->dom_flags & DOMF_USERFLAGS) | DOM_OLD;
284 dp->dom_name = odp->dom_name;
285 dp->dom_init = dom_init_old;
286 dp->dom_externalize = odp->dom_externalize;
287 dp->dom_dispose = odp->dom_dispose;
288 dp->dom_rtattach = odp->dom_rtattach;
289 dp->dom_rtoffset = odp->dom_rtoffset;
290 dp->dom_maxrtkey = odp->dom_maxrtkey;
291 dp->dom_protohdrlen = odp->dom_protohdrlen;
292 dp->dom_old = odp;
294 attach_domain(dp);
295 init_domain(dp);
298 odp->dom_mtx = dp->dom_mtx;
360 net_add_proto(struct protosw *pp, struct domain *dp, int doinit)
374 __func__, dp->dom_family, dp->dom_name, pp->pr_protocol);
380 __func__, dp->dom_family, dp->dom_name, pp->pr_protocol);
384 TAILQ_FOREACH(pp1, &dp->dom_protosw, pr_entry) {
390 attach_proto(pp, dp);
392 net_init_proto(pp, dp);
398 net_init_proto(struct protosw *pp, struct domain *dp)
408 init_proto(pp, dp);
421 struct domain *dp;
431 TAILQ_FOREACH(dp, &domains, dom_entry) {
432 if (!(dp->dom_flags & DOM_OLD))
434 if (dp->dom_old == odp)
437 if (dp == NULL) {
442 TAILQ_FOREACH(pp1, &dp->dom_protosw, pr_entry) {
522 attach_proto(pp, dp);
523 net_init_proto(pp, dp);
550 net_del_proto(int type, int protocol, struct domain *dp)
560 TAILQ_FOREACH(pp, &dp->dom_protosw, pr_entry) {
567 detach_proto(pp, dp);
584 struct domain *dp;
594 TAILQ_FOREACH(dp, &domains, dom_entry) {
595 if (!(dp->dom_flags & DOM_OLD))
597 if (dp->dom_old == odp)
600 if (dp == NULL) {
605 TAILQ_FOREACH(pp, &dp->dom_protosw, pr_entry) {
613 detach_proto(pp, dp);
663 struct domain *dp;
672 TAILQ_FOREACH(dp, &domains, dom_entry) {
673 TAILQ_FOREACH(pp, &dp->dom_protosw, pr_entry) {
692 struct domain *dp;
740 TAILQ_FOREACH(dp, &domains, dom_entry)
741 init_domain(dp);
749 struct domain *dp;
753 TAILQ_FOREACH(dp, &domains, dom_entry) {
754 if (dp->dom_family == pf)
757 return (dp);
764 struct domain *dp;
768 if ((dp = pffinddomain_locked(family)) == NULL)
771 TAILQ_FOREACH(pp, &dp->dom_protosw, pr_entry) {
786 struct domain *dp;
790 dp = pffinddomain_locked(pf);
792 return (dp);
802 struct domain *dp;
806 if ((dp = pffinddomain_locked(pf)) != NULL && (dp->dom_flags & DOM_OLD))
807 odp = dp->dom_old;
832 struct domain *dp;
839 dp = pffinddomain_locked(family);
840 if (dp == NULL)
843 TAILQ_FOREACH(pp, &dp->dom_protosw, pr_entry) {
876 struct domain *dp;
884 dp = pffinddomain_locked(family);
885 if (dp == NULL)
888 TAILQ_FOREACH(pp, &dp->dom_protosw, pr_entry) {
919 struct domain *dp;
927 TAILQ_FOREACH(dp, &domains, dom_entry) {
928 TAILQ_FOREACH(pp, &dp->dom_protosw, pr_entry) {