pru_attach
error = pru_attach(so, proto, M_WAIT);
if (pru_attach(so, 0, wait) != 0) {
.pru_attach = uipc_attach,
.pru_attach = uipc_attach,
.pru_attach = ether_frm_attach,
.pru_attach = pfkeyv2_attach,
.pru_attach = route_attach,
.pru_attach = divert_attach,
.pru_attach = rip_attach,
.pru_attach = rip_attach,
.pru_attach = tcp_attach,
.pru_attach = tcp_attach,
.pru_attach = udp_attach,
.pru_attach = udp_attach,
.pru_attach = divert6_attach,
.pru_attach = rip6_attach,
return (*so->so_proto->pr_usrreqs->pru_attach)(so, proto, wait);
int (*pru_attach)(struct socket *, int, int);