MCPcopy Create free account
hub / github.com/F-Stack/f-stack / protosw_init

Function protosw_init

freebsd/kern/uipc_domain.c:107–163  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

105};
106
107static void
108protosw_init(struct protosw *pr)
109{
110 struct pr_usrreqs *pu;
111
112 pu = pr->pr_usrreqs;
113 KASSERT(pu != NULL, ("protosw_init: %ssw[%d] has no usrreqs!",
114 pr->pr_domain->dom_name,
115 (int)(pr - pr->pr_domain->dom_protosw)));
116
117 /*
118 * Protocol switch methods fall into three categories: mandatory,
119 * mandatory but protosw_init() provides a default, and optional.
120 *
121 * For true protocols (i.e., pru_attach != NULL), KASSERT truly
122 * mandatory methods with no defaults, and initialize defaults for
123 * other mandatory methods if the protocol hasn't defined an
124 * implementation (NULL function pointer).
125 */
126#if 0
127 if (pu->pru_attach != NULL) {
128 KASSERT(pu->pru_abort != NULL,
129 ("protosw_init: %ssw[%d] pru_abort NULL",
130 pr->pr_domain->dom_name,
131 (int)(pr - pr->pr_domain->dom_protosw)));
132 KASSERT(pu->pru_send != NULL,
133 ("protosw_init: %ssw[%d] pru_send NULL",
134 pr->pr_domain->dom_name,
135 (int)(pr - pr->pr_domain->dom_protosw)));
136 }
137#endif
138
139#define DEFAULT(foo, bar) if ((foo) == NULL) (foo) = (bar)
140 DEFAULT(pu->pru_accept, pru_accept_notsupp);
141 DEFAULT(pu->pru_aio_queue, pru_aio_queue_notsupp);
142 DEFAULT(pu->pru_bind, pru_bind_notsupp);
143 DEFAULT(pu->pru_bindat, pru_bindat_notsupp);
144 DEFAULT(pu->pru_connect, pru_connect_notsupp);
145 DEFAULT(pu->pru_connect2, pru_connect2_notsupp);
146 DEFAULT(pu->pru_connectat, pru_connectat_notsupp);
147 DEFAULT(pu->pru_control, pru_control_notsupp);
148 DEFAULT(pu->pru_disconnect, pru_disconnect_notsupp);
149 DEFAULT(pu->pru_listen, pru_listen_notsupp);
150 DEFAULT(pu->pru_peeraddr, pru_peeraddr_notsupp);
151 DEFAULT(pu->pru_rcvd, pru_rcvd_notsupp);
152 DEFAULT(pu->pru_rcvoob, pru_rcvoob_notsupp);
153 DEFAULT(pu->pru_sense, pru_sense_null);
154 DEFAULT(pu->pru_shutdown, pru_shutdown_notsupp);
155 DEFAULT(pu->pru_sockaddr, pru_sockaddr_notsupp);
156 DEFAULT(pu->pru_sosend, sosend_generic);
157 DEFAULT(pu->pru_soreceive, soreceive_generic);
158 DEFAULT(pu->pru_sopoll, sopoll_generic);
159 DEFAULT(pu->pru_ready, pru_ready_notsupp);
160#undef DEFAULT
161 if (pr->pr_init)
162 (*pr->pr_init)();
163}
164

Callers 2

domain_initFunction · 0.85
pf_proto_registerFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected