summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/kern/uipc_domain.c52
-rw-r--r--sys/kern/uipc_usrreq.c23
-rw-r--r--sys/net/raw_usrreq.c15
-rw-r--r--sys/net/rtsock.c15
-rw-r--r--sys/netatalk/ddp_usrreq.c32
-rw-r--r--sys/netatm/atm_aal5.c35
-rw-r--r--sys/netatm/atm_usrreq.c34
-rw-r--r--sys/netgraph/bluetooth/socket/ng_btsocket.c132
-rw-r--r--sys/netgraph/ng_socket.c62
-rw-r--r--sys/netinet/ip_divert.c16
-rw-r--r--sys/netinet/raw_ip.c17
-rw-r--r--sys/netinet/tcp_usrreq.c43
-rw-r--r--sys/netinet/udp_usrreq.c17
-rw-r--r--sys/netinet6/raw_ip6.c16
-rw-r--r--sys/netinet6/udp6_usrreq.c17
-rw-r--r--sys/netipsec/keysock.c18
-rw-r--r--sys/netipx/ipx_usrreq.c32
-rw-r--r--sys/netipx/spx_usrreq.c40
-rw-r--r--sys/netkey/keysock.c20
-rw-r--r--sys/netnatm/natm.c17
-rw-r--r--sys/sys/protosw.h4
21 files changed, 362 insertions, 295 deletions
diff --git a/sys/kern/uipc_domain.c b/sys/kern/uipc_domain.c
index 2ce5080..56b61ed 100644
--- a/sys/kern/uipc_domain.c
+++ b/sys/kern/uipc_domain.c
@@ -74,13 +74,27 @@ MTX_SYSINIT(domain, &dom_mtx, "domain list", MTX_DEF);
* All functions return EOPNOTSUPP.
*/
struct pr_usrreqs nousrreqs = {
- pru_abort_notsupp, pru_accept_notsupp, pru_attach_notsupp,
- pru_bind_notsupp, pru_connect_notsupp, pru_connect2_notsupp,
- pru_control_notsupp, pru_detach_notsupp, pru_disconnect_notsupp,
- pru_listen_notsupp, pru_peeraddr_notsupp, pru_rcvd_notsupp,
- pru_rcvoob_notsupp, pru_send_notsupp, pru_sense_null,
- pru_shutdown_notsupp, pru_sockaddr_notsupp, pru_sosend_notsupp,
- pru_soreceive_notsupp, pru_sopoll_notsupp, pru_sosetlabel_null
+ .pru_abort = pru_abort_notsupp,
+ .pru_accept = pru_accept_notsupp,
+ .pru_attach = pru_attach_notsupp,
+ .pru_bind = pru_bind_notsupp,
+ .pru_connect = pru_connect_notsupp,
+ .pru_connect2 = pru_connect2_notsupp,
+ .pru_control = pru_control_notsupp,
+ .pru_detach = pru_detach_notsupp,
+ .pru_disconnect = pru_disconnect_notsupp,
+ .pru_listen = pru_listen_notsupp,
+ .pru_peeraddr = pru_peeraddr_notsupp,
+ .pru_rcvd = pru_rcvd_notsupp,
+ .pru_rcvoob = pru_rcvoob_notsupp,
+ .pru_send = pru_send_notsupp,
+ .pru_sense = pru_sense_null,
+ .pru_shutdown = pru_shutdown_notsupp,
+ .pru_sockaddr = pru_sockaddr_notsupp,
+ .pru_sosend = pru_sosend_notsupp,
+ .pru_soreceive = pru_soreceive_notsupp,
+ .pru_sopoll = pru_sopoll_notsupp,
+ .pru_sosetlabel = pru_sosetlabel_null
};
/*
@@ -92,14 +106,30 @@ static void
net_init_domain(struct domain *dp)
{
struct protosw *pr;
+ struct pr_usrreqs *pu;
if (dp->dom_init)
(*dp->dom_init)();
for (pr = dp->dom_protosw; pr < dp->dom_protoswNPROTOSW; pr++){
- if (pr->pr_usrreqs == 0)
- panic("domaininit: %ssw[%d] has no usrreqs!",
- dp->dom_name,
- (int)(pr - dp->dom_protosw));
+ pu = pr->pr_usrreqs;
+ KASSERT(pu != NULL,
+ ("domaininit: %ssw[%d] has no usrreqs!",
+ dp->dom_name, (int)(pr - dp->dom_protosw)));
+#define DEFAULT(foo, bar) if ((foo) == NULL) (foo) = (bar)
+ DEFAULT(pu->pru_accept, pru_accept_notsupp);
+ DEFAULT(pu->pru_connect, pru_connect_notsupp);
+ DEFAULT(pu->pru_connect2, pru_connect2_notsupp);
+ DEFAULT(pu->pru_control, pru_control_notsupp);
+ DEFAULT(pu->pru_listen, pru_listen_notsupp);
+ DEFAULT(pu->pru_rcvd, pru_rcvd_notsupp);
+ DEFAULT(pu->pru_rcvoob, pru_rcvoob_notsupp);
+ DEFAULT(pu->pru_sense, pru_sense_null);
+ DEFAULT(pu->pru_sosend, sosend);
+ DEFAULT(pu->pru_soreceive, soreceive);
+ DEFAULT(pu->pru_sopoll, sopoll);
+ DEFAULT(pu->pru_sosetlabel, pru_sosetlabel_null);
+#undef DEFAULT
+
if (pr->pr_init)
(*pr->pr_init)();
}
diff --git a/sys/kern/uipc_usrreq.c b/sys/kern/uipc_usrreq.c
index 6b97f94..af93e2e 100644
--- a/sys/kern/uipc_usrreq.c
+++ b/sys/kern/uipc_usrreq.c
@@ -576,11 +576,24 @@ uipc_sockaddr(struct socket *so, struct sockaddr **nam)
}
struct pr_usrreqs uipc_usrreqs = {
- uipc_abort, uipc_accept, uipc_attach, uipc_bind, uipc_connect,
- uipc_connect2, pru_control_notsupp, uipc_detach, uipc_disconnect,
- uipc_listen, uipc_peeraddr, uipc_rcvd, pru_rcvoob_notsupp,
- uipc_send, uipc_sense, uipc_shutdown, uipc_sockaddr,
- sosend, soreceive, sopoll, pru_sosetlabel_null
+ .pru_abort = uipc_abort,
+ .pru_accept = uipc_accept,
+ .pru_attach = uipc_attach,
+ .pru_bind = uipc_bind,
+ .pru_connect = uipc_connect,
+ .pru_connect2 = uipc_connect2,
+ .pru_detach = uipc_detach,
+ .pru_disconnect = uipc_disconnect,
+ .pru_listen = uipc_listen,
+ .pru_peeraddr = uipc_peeraddr,
+ .pru_rcvd = uipc_rcvd,
+ .pru_send = uipc_send,
+ .pru_sense = uipc_sense,
+ .pru_shutdown = uipc_shutdown,
+ .pru_sockaddr = uipc_sockaddr,
+ .pru_sosend = sosend,
+ .pru_soreceive = soreceive,
+ .pru_sopoll = sopoll,
};
int
diff --git a/sys/net/raw_usrreq.c b/sys/net/raw_usrreq.c
index f444b57..61b2d86 100644
--- a/sys/net/raw_usrreq.c
+++ b/sys/net/raw_usrreq.c
@@ -297,9 +297,14 @@ raw_usockaddr(struct socket *so, struct sockaddr **nam)
}
struct pr_usrreqs raw_usrreqs = {
- raw_uabort, pru_accept_notsupp, raw_uattach, raw_ubind, raw_uconnect,
- pru_connect2_notsupp, pru_control_notsupp, raw_udetach,
- raw_udisconnect, pru_listen_notsupp, raw_upeeraddr, pru_rcvd_notsupp,
- pru_rcvoob_notsupp, raw_usend, pru_sense_null, raw_ushutdown,
- raw_usockaddr, sosend, soreceive, sopoll, pru_sosetlabel_null
+ .pru_abort = raw_uabort,
+ .pru_attach = raw_uattach,
+ .pru_bind = raw_ubind,
+ .pru_connect = raw_uconnect,
+ .pru_detach = raw_udetach,
+ .pru_disconnect = raw_udisconnect,
+ .pru_peeraddr = raw_upeeraddr,
+ .pru_send = raw_usend,
+ .pru_shutdown = raw_ushutdown,
+ .pru_sockaddr = raw_usockaddr,
};
diff --git a/sys/net/rtsock.c b/sys/net/rtsock.c
index ec1ba1d..6ec7c69 100644
--- a/sys/net/rtsock.c
+++ b/sys/net/rtsock.c
@@ -310,11 +310,16 @@ rts_sockaddr(struct socket *so, struct sockaddr **nam)
}
static struct pr_usrreqs route_usrreqs = {
- rts_abort, pru_accept_notsupp, rts_attach, rts_bind, rts_connect,
- pru_connect2_notsupp, pru_control_notsupp, rts_detach, rts_disconnect,
- pru_listen_notsupp, rts_peeraddr, pru_rcvd_notsupp, pru_rcvoob_notsupp,
- rts_send, pru_sense_null, rts_shutdown, rts_sockaddr,
- sosend, soreceive, sopoll, pru_sosetlabel_null
+ .pru_abort = rts_abort,
+ .pru_attach = rts_attach,
+ .pru_bind = rts_bind,
+ .pru_connect = rts_connect,
+ .pru_detach = rts_detach,
+ .pru_disconnect = rts_disconnect,
+ .pru_peeraddr = rts_peeraddr,
+ .pru_send = rts_send,
+ .pru_shutdown = rts_shutdown,
+ .pru_sockaddr = rts_sockaddr,
};
/*ARGSUSED*/
diff --git a/sys/netatalk/ddp_usrreq.c b/sys/netatalk/ddp_usrreq.c
index 1621f1f..0478a56 100644
--- a/sys/netatalk/ddp_usrreq.c
+++ b/sys/netatalk/ddp_usrreq.c
@@ -258,25 +258,15 @@ at_setsockaddr(struct socket *so, struct sockaddr **nam)
}
struct pr_usrreqs ddp_usrreqs = {
- ddp_abort,
- pru_accept_notsupp,
- ddp_attach,
- ddp_bind,
- ddp_connect,
- pru_connect2_notsupp,
- at_control,
- ddp_detach,
- ddp_disconnect,
- pru_listen_notsupp,
- at_setpeeraddr,
- pru_rcvd_notsupp,
- pru_rcvoob_notsupp,
- ddp_send,
- pru_sense_null,
- ddp_shutdown,
- at_setsockaddr,
- sosend,
- soreceive,
- sopoll,
- pru_sosetlabel_null
+ .pru_abort = ddp_abort,
+ .pru_attach = ddp_attach,
+ .pru_bind = ddp_bind,
+ .pru_connect = ddp_connect,
+ .pru_control = at_control,
+ .pru_detach = ddp_detach,
+ .pru_disconnect = ddp_disconnect,
+ .pru_peeraddr = at_setpeeraddr,
+ .pru_send = ddp_send,
+ .pru_shutdown = ddp_shutdown,
+ .pru_sockaddr = at_setsockaddr,
};
diff --git a/sys/netatm/atm_aal5.c b/sys/netatm/atm_aal5.c
index 04e5d7e..3b50c79 100644
--- a/sys/netatm/atm_aal5.c
+++ b/sys/netatm/atm_aal5.c
@@ -93,27 +93,20 @@ static caddr_t atm_aal5_getname(void *);
* New-style socket request routines
*/
struct pr_usrreqs atm_aal5_usrreqs = {
- atm_aal5_abort, /* pru_abort */
- atm_aal5_accept, /* pru_accept */
- atm_aal5_attach, /* pru_attach */
- atm_aal5_bind, /* pru_bind */
- atm_aal5_connect, /* pru_connect */
- pru_connect2_notsupp, /* pru_connect2 */
- atm_aal5_control, /* pru_control */
- atm_aal5_detach, /* pru_detach */
- atm_aal5_disconnect, /* pru_disconnect */
- atm_aal5_listen, /* pru_listen */
- atm_aal5_peeraddr, /* pru_peeraddr */
- pru_rcvd_notsupp, /* pru_rcvd */
- pru_rcvoob_notsupp, /* pru_rcvoob */
- atm_aal5_send, /* pru_send */
- atm_aal5_sense, /* pru_sense */
- atm_aal5_shutdown, /* pru_shutdown */
- atm_aal5_sockaddr, /* pru_sockaddr */
- sosend, /* pru_sosend */
- soreceive, /* pru_soreceive */
- sopoll, /* pru_sopoll */
- pru_sosetlabel_null /* pru_sosetlabel */
+ .pru_abort = atm_aal5_abort,
+ .pru_accept = atm_aal5_accept,
+ .pru_attach = atm_aal5_attach,
+ .pru_bind = atm_aal5_bind,
+ .pru_connect = atm_aal5_connect,
+ .pru_control = atm_aal5_control,
+ .pru_detach = atm_aal5_detach,
+ .pru_disconnect = atm_aal5_disconnect,
+ .pru_listen = atm_aal5_listen,
+ .pru_peeraddr = atm_aal5_peeraddr,
+ .pru_send = atm_aal5_send,
+ .pru_sense = atm_aal5_sense,
+ .pru_shutdown = atm_aal5_shutdown,
+ .pru_sockaddr = atm_aal5_sockaddr,
};
/*
diff --git a/sys/netatm/atm_usrreq.c b/sys/netatm/atm_usrreq.c
index 9b58741..4ea353f 100644
--- a/sys/netatm/atm_usrreq.c
+++ b/sys/netatm/atm_usrreq.c
@@ -66,27 +66,19 @@ static int atm_dgram_info(caddr_t);
* New-style socket request routines
*/
struct pr_usrreqs atm_dgram_usrreqs = {
- atm_proto_notsupp1, /* pru_abort */
- pru_accept_notsupp, /* pru_accept */
- atm_dgram_attach, /* pru_attach */
- atm_proto_notsupp2, /* pru_bind */
- pru_connect_notsupp, /* pru_connect */
- pru_connect2_notsupp, /* pru_connect2 */
- atm_dgram_control, /* pru_control */
- atm_proto_notsupp1, /* pru_detach */
- atm_proto_notsupp1, /* pru_disconnect */
- pru_listen_notsupp, /* pru_listen */
- atm_proto_notsupp3, /* pru_peeraddr */
- pru_rcvd_notsupp, /* pru_rcvd */
- pru_rcvoob_notsupp, /* pru_rcvoob */
- atm_proto_notsupp4, /* pru_send */
- pru_sense_null, /* pru_sense */
- atm_proto_notsupp1, /* pru_shutdown */
- atm_proto_notsupp3, /* pru_sockaddr */
- NULL, /* pru_sosend */
- NULL, /* pru_soreceive */
- NULL, /* pru_sooll */
- pru_sosetlabel_null /* pru_sosetlabel */
+ .pru_abort = atm_proto_notsupp1,
+ .pru_attach = atm_dgram_attach,
+ .pru_bind = atm_proto_notsupp2,
+ .pru_control = atm_dgram_control,
+ .pru_detach = atm_proto_notsupp1,
+ .pru_disconnect = atm_proto_notsupp1,
+ .pru_peeraddr = atm_proto_notsupp3,
+ .pru_send = atm_proto_notsupp4,
+ .pru_shutdown = atm_proto_notsupp1,
+ .pru_sockaddr = atm_proto_notsupp3,
+ .pru_sosend = NULL,
+ .pru_soreceive = NULL,
+ .pru_sopoll = NULL,
};
diff --git a/sys/netgraph/bluetooth/socket/ng_btsocket.c b/sys/netgraph/bluetooth/socket/ng_btsocket.c
index 9932b8c..e956315 100644
--- a/sys/netgraph/bluetooth/socket/ng_btsocket.c
+++ b/sys/netgraph/bluetooth/socket/ng_btsocket.c
@@ -61,27 +61,17 @@ extern struct domain ng_btsocket_domain;
*/
static struct pr_usrreqs ng_btsocket_hci_raw_usrreqs = {
- ng_btsocket_hci_raw_abort, /* abort */
- pru_accept_notsupp, /* accept */
- ng_btsocket_hci_raw_attach, /* attach */
- ng_btsocket_hci_raw_bind, /* bind */
- ng_btsocket_hci_raw_connect, /* connect */
- pru_connect2_notsupp, /* connect2 */
- ng_btsocket_hci_raw_control, /* control */
- ng_btsocket_hci_raw_detach, /* detach */
- ng_btsocket_hci_raw_disconnect, /* disconnect */
- pru_listen_notsupp, /* listen */
- ng_btsocket_hci_raw_peeraddr, /* peeraddr */
- pru_rcvd_notsupp, /* rcvd */
- pru_rcvoob_notsupp, /* rcvoob */
- ng_btsocket_hci_raw_send, /* send */
- pru_sense_null, /* send */
- NULL, /* shutdown */
- ng_btsocket_hci_raw_sockaddr, /* sockaddr */
- sosend,
- soreceive,
- sopoll,
- pru_sosetlabel_null
+ .pru_abort = ng_btsocket_hci_raw_abort,
+ .pru_attach = ng_btsocket_hci_raw_attach,
+ .pru_bind = ng_btsocket_hci_raw_bind,
+ .pru_connect = ng_btsocket_hci_raw_connect,
+ .pru_control = ng_btsocket_hci_raw_control,
+ .pru_detach = ng_btsocket_hci_raw_detach,
+ .pru_disconnect = ng_btsocket_hci_raw_disconnect,
+ .pru_peeraddr = ng_btsocket_hci_raw_peeraddr,
+ .pru_send = ng_btsocket_hci_raw_send,
+ .pru_shutdown = NULL,
+ .pru_sockaddr = ng_btsocket_hci_raw_sockaddr,
};
/*
@@ -89,27 +79,17 @@ static struct pr_usrreqs ng_btsocket_hci_raw_usrreqs = {
*/
static struct pr_usrreqs ng_btsocket_l2cap_raw_usrreqs = {
- ng_btsocket_l2cap_raw_abort, /* abort */
- pru_accept_notsupp, /* accept */
- ng_btsocket_l2cap_raw_attach, /* attach */
- ng_btsocket_l2cap_raw_bind, /* bind */
- ng_btsocket_l2cap_raw_connect, /* connect */
- pru_connect2_notsupp, /* connect2 */
- ng_btsocket_l2cap_raw_control, /* control */
- ng_btsocket_l2cap_raw_detach, /* detach */
- ng_btsocket_l2cap_raw_disconnect, /* disconnect */
- pru_listen_notsupp, /* listen */
- ng_btsocket_l2cap_raw_peeraddr, /* peeraddr */
- pru_rcvd_notsupp, /* rcvd */
- pru_rcvoob_notsupp, /* rcvoob */
- ng_btsocket_l2cap_raw_send, /* send */
- pru_sense_null, /* send */
- NULL, /* shutdown */
- ng_btsocket_l2cap_raw_sockaddr, /* sockaddr */
- sosend,
- soreceive,
- sopoll,
- pru_sosetlabel_null
+ .pru_abort = ng_btsocket_l2cap_raw_abort,
+ .pru_attach = ng_btsocket_l2cap_raw_attach,
+ .pru_bind = ng_btsocket_l2cap_raw_bind,
+ .pru_connect = ng_btsocket_l2cap_raw_connect,
+ .pru_control = ng_btsocket_l2cap_raw_control,
+ .pru_detach = ng_btsocket_l2cap_raw_detach,
+ .pru_disconnect = ng_btsocket_l2cap_raw_disconnect,
+ .pru_peeraddr = ng_btsocket_l2cap_raw_peeraddr,
+ .pru_send = ng_btsocket_l2cap_raw_send,
+ .pru_shutdown = NULL,
+ .pru_sockaddr = ng_btsocket_l2cap_raw_sockaddr,
};
/*
@@ -117,27 +97,19 @@ static struct pr_usrreqs ng_btsocket_l2cap_raw_usrreqs = {
*/
static struct pr_usrreqs ng_btsocket_l2cap_usrreqs = {
- ng_btsocket_l2cap_abort, /* abort */
- ng_btsocket_l2cap_accept, /* accept */
- ng_btsocket_l2cap_attach, /* attach */
- ng_btsocket_l2cap_bind, /* bind */
- ng_btsocket_l2cap_connect, /* connect */
- pru_connect2_notsupp, /* connect2 */
- ng_btsocket_l2cap_control, /* control */
- ng_btsocket_l2cap_detach, /* detach */
- ng_btsocket_l2cap_disconnect, /* disconnect */
- ng_btsocket_l2cap_listen, /* listen */
- ng_btsocket_l2cap_peeraddr, /* peeraddr */
- pru_rcvd_notsupp, /* rcvd */
- pru_rcvoob_notsupp, /* rcvoob */
- ng_btsocket_l2cap_send, /* send */
- pru_sense_null, /* send */
- NULL, /* shutdown */
- ng_btsocket_l2cap_sockaddr, /* sockaddr */
- sosend,
- soreceive,
- sopoll,
- pru_sosetlabel_null
+ .pru_abort = ng_btsocket_l2cap_abort,
+ .pru_accept = ng_btsocket_l2cap_accept,
+ .pru_attach = ng_btsocket_l2cap_attach,
+ .pru_bind = ng_btsocket_l2cap_bind,
+ .pru_connect = ng_btsocket_l2cap_connect,
+ .pru_control = ng_btsocket_l2cap_control,
+ .pru_detach = ng_btsocket_l2cap_detach,
+ .pru_disconnect = ng_btsocket_l2cap_disconnect,
+ .pru_listen = ng_btsocket_l2cap_listen,
+ .pru_peeraddr = ng_btsocket_l2cap_peeraddr,
+ .pru_send = ng_btsocket_l2cap_send,
+ .pru_shutdown = NULL,
+ .pru_sockaddr = ng_btsocket_l2cap_sockaddr,
};
/*
@@ -145,27 +117,19 @@ static struct pr_usrreqs ng_btsocket_l2cap_usrreqs = {
*/
static struct pr_usrreqs ng_btsocket_rfcomm_usrreqs = {
- ng_btsocket_rfcomm_abort, /* abort */
- ng_btsocket_rfcomm_accept, /* accept */
- ng_btsocket_rfcomm_attach, /* attach */
- ng_btsocket_rfcomm_bind, /* bind */
- ng_btsocket_rfcomm_connect, /* connect */
- pru_connect2_notsupp, /* connect2 */
- ng_btsocket_rfcomm_control, /* control */
- ng_btsocket_rfcomm_detach, /* detach */
- ng_btsocket_rfcomm_disconnect, /* disconnect */
- ng_btsocket_rfcomm_listen, /* listen */
- ng_btsocket_rfcomm_peeraddr, /* peeraddr */
- pru_rcvd_notsupp, /* rcvd */
- pru_rcvoob_notsupp, /* rcvoob */
- ng_btsocket_rfcomm_send, /* send */
- pru_sense_null, /* send */
- NULL, /* shutdown */
- ng_btsocket_rfcomm_sockaddr, /* sockaddr */
- sosend,
- soreceive,
- sopoll,
- pru_sosetlabel_null
+ .pru_abort = ng_btsocket_rfcomm_abort,
+ .pru_accept = ng_btsocket_rfcomm_accept,
+ .pru_attach = ng_btsocket_rfcomm_attach,
+ .pru_bind = ng_btsocket_rfcomm_bind,
+ .pru_connect = ng_btsocket_rfcomm_connect,
+ .pru_control = ng_btsocket_rfcomm_control,
+ .pru_detach = ng_btsocket_rfcomm_detach,
+ .pru_disconnect = ng_btsocket_rfcomm_disconnect,
+ .pru_listen = ng_btsocket_rfcomm_listen,
+ .pru_peeraddr = ng_btsocket_rfcomm_peeraddr,
+ .pru_send = ng_btsocket_rfcomm_send,
+ .pru_shutdown = NULL,
+ .pru_sockaddr = ng_btsocket_rfcomm_sockaddr,
};
/*
diff --git a/sys/netgraph/ng_socket.c b/sys/netgraph/ng_socket.c
index 8a0fd29..8f2ea53 100644
--- a/sys/netgraph/ng_socket.c
+++ b/sys/netgraph/ng_socket.c
@@ -1006,51 +1006,29 @@ dummy_disconnect(struct socket *so)
*/
static struct pr_usrreqs ngc_usrreqs = {
- NULL, /* abort */
- pru_accept_notsupp,
- ngc_attach,
- ngc_bind,
- ngc_connect,
- pru_connect2_notsupp,
- pru_control_notsupp,
- ngc_detach,
- dummy_disconnect, /* disconnect */
- pru_listen_notsupp,
- NULL, /* setpeeraddr */
- pru_rcvd_notsupp,
- pru_rcvoob_notsupp,
- ngc_send,
- pru_sense_null,
- NULL, /* shutdown */
- ng_setsockaddr,
- sosend,
- soreceive,
- sopoll,
- pru_sosetlabel_null
+ .pru_abort = NULL,
+ .pru_attach = ngc_attach,
+ .pru_bind = ngc_bind,
+ .pru_connect = ngc_connect,
+ .pru_detach = ngc_detach,
+ .pru_disconnect = dummy_disconnect,
+ .pru_peeraddr = NULL,
+ .pru_send = ngc_send,
+ .pru_shutdown = NULL,
+ .pru_sockaddr = ng_setsockaddr,
};
static struct pr_usrreqs ngd_usrreqs = {
- NULL, /* abort */
- pru_accept_notsupp,
- ngd_attach,
- NULL, /* bind */
- ngd_connect,
- pru_connect2_notsupp,
- pru_control_notsupp,
- ngd_detach,
- dummy_disconnect, /* disconnect */
- pru_listen_notsupp,
- NULL, /* setpeeraddr */
- pru_rcvd_notsupp,
- pru_rcvoob_notsupp,
- ngd_send,
- pru_sense_null,
- NULL, /* shutdown */
- ng_setsockaddr,
- sosend,
- soreceive,
- sopoll,
- pru_sosetlabel_null
+ .pru_abort = NULL,
+ .pru_attach = ngd_attach,
+ .pru_bind = NULL,
+ .pru_connect = ngd_connect,
+ .pru_detach = ngd_detach,
+ .pru_disconnect = dummy_disconnect,
+ .pru_peeraddr = NULL,
+ .pru_send = ngd_send,
+ .pru_shutdown = NULL,
+ .pru_sockaddr ng_setsockaddr,
};
/*
diff --git a/sys/netinet/ip_divert.c b/sys/netinet/ip_divert.c
index ed21cc3..22d87fc 100644
--- a/sys/netinet/ip_divert.c
+++ b/sys/netinet/ip_divert.c
@@ -661,11 +661,17 @@ SYSCTL_PROC(_net_inet_divert, OID_AUTO, pcblist, CTLFLAG_RD, 0, 0,
#endif
struct pr_usrreqs div_usrreqs = {
- div_abort, pru_accept_notsupp, div_attach, div_bind,
- pru_connect_notsupp, pru_connect2_notsupp, in_control, div_detach,
- div_disconnect, pru_listen_notsupp, div_peeraddr, pru_rcvd_notsupp,
- pru_rcvoob_notsupp, div_send, pru_sense_null, div_shutdown,
- div_sockaddr, sosend, soreceive, sopoll, in_pcbsosetlabel
+ .pru_abort = div_abort,
+ .pru_attach = div_attach,
+ .pru_bind = div_bind,
+ .pru_control = in_control,
+ .pru_detach = div_detach,
+ .pru_disconnect = div_disconnect,
+ .pru_peeraddr = div_peeraddr,
+ .pru_send = div_send,
+ .pru_shutdown = div_shutdown,
+ .pru_sockaddr = div_sockaddr,
+ .pru_sosetlabel in_pcbsosetlabel
};
struct protosw div_protosw = {
diff --git a/sys/netinet/raw_ip.c b/sys/netinet/raw_ip.c
index 2406b67..0ff33e3 100644
--- a/sys/netinet/raw_ip.c
+++ b/sys/netinet/raw_ip.c
@@ -899,9 +899,16 @@ SYSCTL_PROC(_net_inet_raw, OID_AUTO/*XXX*/, pcblist, CTLFLAG_RD, 0, 0,
rip_pcblist, "S,xinpcb", "List of active raw IP sockets");
struct pr_usrreqs rip_usrreqs = {
- rip_abort, pru_accept_notsupp, rip_attach, rip_bind, rip_connect,
- pru_connect2_notsupp, in_control, rip_detach, rip_disconnect,
- pru_listen_notsupp, rip_peeraddr, pru_rcvd_notsupp,
- pru_rcvoob_notsupp, rip_send, pru_sense_null, rip_shutdown,
- rip_sockaddr, sosend, soreceive, sopoll, in_pcbsosetlabel
+ .pru_abort = rip_abort,
+ .pru_attach = rip_attach,
+ .pru_bind = rip_bind,
+ .pru_connect = rip_connect,
+ .pru_control = in_control,
+ .pru_detach = rip_detach,
+ .pru_disconnect = rip_disconnect,
+ .pru_peeraddr = rip_peeraddr,
+ .pru_send = rip_send,
+ .pru_shutdown = rip_shutdown,
+ .pru_sockaddr = rip_sockaddr,
+ .pru_sosetlabel = in_pcbsosetlabel
};
diff --git a/sys/netinet/tcp_usrreq.c b/sys/netinet/tcp_usrreq.c
index f2a9cad..55c5b3d 100644
--- a/sys/netinet/tcp_usrreq.c
+++ b/sys/netinet/tcp_usrreq.c
@@ -778,22 +778,43 @@ tcp_usr_rcvoob(struct socket *so, struct mbuf *m, int flags)
COMMON_END(PRU_RCVOOB);
}
-/* xxx - should be const */
struct pr_usrreqs tcp_usrreqs = {
- tcp_usr_abort, tcp_usr_accept, tcp_usr_attach, tcp_usr_bind,
- tcp_usr_connect, pru_connect2_notsupp, in_control, tcp_usr_detach,
- tcp_usr_disconnect, tcp_usr_listen, tcp_peeraddr, tcp_usr_rcvd,
- tcp_usr_rcvoob, tcp_usr_send, pru_sense_null, tcp_usr_shutdown,
- tcp_sockaddr, sosend, soreceive, sopoll, in_pcbsosetlabel
+ .pru_abort = tcp_usr_abort,
+ .pru_accept = tcp_usr_accept,
+ .pru_attach = tcp_usr_attach,
+ .pru_bind = tcp_usr_bind,
+ .pru_connect = tcp_usr_connect,
+ .pru_control = in_control,
+ .pru_detach = tcp_usr_detach,
+ .pru_disconnect = tcp_usr_disconnect,
+ .pru_listen = tcp_usr_listen,
+ .pru_peeraddr = tcp_peeraddr,
+ .pru_rcvd = tcp_usr_rcvd,
+ .pru_rcvoob = tcp_usr_rcvoob,
+ .pru_send = tcp_usr_send,
+ .pru_shutdown = tcp_usr_shutdown,
+ .pru_sockaddr = tcp_sockaddr,
+ .pru_sosetlabel = in_pcbsosetlabel
};
#ifdef INET6
struct pr_usrreqs tcp6_usrreqs = {
- tcp_usr_abort, tcp6_usr_accept, tcp_usr_attach, tcp6_usr_bind,
- tcp6_usr_connect, pru_connect2_notsupp, in6_control, tcp_usr_detach,
- tcp_usr_disconnect, tcp6_usr_listen, in6_mapped_peeraddr, tcp_usr_rcvd,
- tcp_usr_rcvoob, tcp_usr_send, pru_sense_null, tcp_usr_shutdown,
- in6_mapped_sockaddr, sosend, soreceive, sopoll, in_pcbsosetlabel
+ .pru_abort = tcp_usr_abort,
+ .pru_accept = tcp6_usr_accept,
+ .pru_attach = tcp_usr_attach,
+ .pru_bind = tcp6_usr_bind,
+ .pru_connect = tcp6_usr_connect,
+ .pru_control = in6_control,
+ .pru_detach = tcp_usr_detach,
+ .pru_disconnect = tcp_usr_disconnect,
+ .pru_listen = tcp6_usr_listen,
+ .pru_peeraddr = in6_mapped_peeraddr,
+ .pru_rcvd = tcp_usr_rcvd,
+ .pru_rcvoob = tcp_usr_rcvoob,
+ .pru_send = tcp_usr_send,
+ .pru_shutdown = tcp_usr_shutdown,
+ .pru_sockaddr = in6_mapped_sockaddr,
+ .pru_sosetlabel = in_pcbsosetlabel
};
#endif /* INET6 */
diff --git a/sys/netinet/udp_usrreq.c b/sys/netinet/udp_usrreq.c
index b3af066..443b5db 100644
--- a/sys/netinet/udp_usrreq.c
+++ b/sys/netinet/udp_usrreq.c
@@ -1111,9 +1111,16 @@ udp_peeraddr(struct socket *so, struct sockaddr **nam)
}
struct pr_usrreqs udp_usrreqs = {
- udp_abort, pru_accept_notsupp, udp_attach, udp_bind, udp_connect,
- pru_connect2_notsupp, in_control, udp_detach, udp_disconnect,
- pru_listen_notsupp, udp_peeraddr, pru_rcvd_notsupp,
- pru_rcvoob_notsupp, udp_send, pru_sense_null, udp_shutdown,
- udp_sockaddr, sosend, soreceive, sopoll, in_pcbsosetlabel
+ .pru_abort = udp_abort,
+ .pru_attach = udp_attach,
+ .pru_bind = udp_bind,
+ .pru_connect = udp_connect,
+ .pru_control = in_control,
+ .pru_detach = udp_detach,
+ .pru_disconnect = udp_disconnect,
+ .pru_peeraddr = udp_peeraddr,
+ .pru_send = udp_send,
+ .pru_shutdown = udp_shutdown,
+ .pru_sockaddr = udp_sockaddr,
+ .pru_sosetlabel = in_pcbsosetlabel
};
diff --git a/sys/netinet6/raw_ip6.c b/sys/netinet6/raw_ip6.c
index 6495a13..680c529 100644
--- a/sys/netinet6/raw_ip6.c
+++ b/sys/netinet6/raw_ip6.c
@@ -782,9 +782,15 @@ rip6_send(struct socket *so, int flags, struct mbuf *m, struct sockaddr *nam,
}
struct pr_usrreqs rip6_usrreqs = {
- rip6_abort, pru_accept_notsupp, rip6_attach, rip6_bind, rip6_connect,
- pru_connect2_notsupp, in6_control, rip6_detach, rip6_disconnect,
- pru_listen_notsupp, in6_setpeeraddr, pru_rcvd_notsupp,
- pru_rcvoob_notsupp, rip6_send, pru_sense_null, rip6_shutdown,
- in6_setsockaddr, sosend, soreceive, sopoll, pru_sosetlabel_null
+ .pru_abort = rip6_abort,
+ .pru_attach = rip6_attach,
+ .pru_bind = rip6_bind,
+ .pru_connect = rip6_connect,
+ .pru_control = in6_control,
+ .pru_detach = rip6_detach,
+ .pru_disconnect = rip6_disconnect,
+ .pru_peeraddr = in6_setpeeraddr,
+ .pru_send = rip6_send,
+ .pru_shutdown = rip6_shutdown,
+ .pru_sockaddr = in6_setsockaddr,
};
diff --git a/sys/netinet6/udp6_usrreq.c b/sys/netinet6/udp6_usrreq.c
index 6b1dc25..43c11f3 100644
--- a/sys/netinet6/udp6_usrreq.c
+++ b/sys/netinet6/udp6_usrreq.c
@@ -804,9 +804,16 @@ out:
}
struct pr_usrreqs udp6_usrreqs = {
- udp6_abort, pru_accept_notsupp, udp6_attach, udp6_bind, udp6_connect,
- pru_connect2_notsupp, in6_control, udp6_detach, udp6_disconnect,
- pru_listen_notsupp, in6_mapped_peeraddr, pru_rcvd_notsupp,
- pru_rcvoob_notsupp, udp6_send, pru_sense_null, udp_shutdown,
- in6_mapped_sockaddr, sosend, soreceive, sopoll, in_pcbsosetlabel
+ .pru_abort = udp6_abort,
+ .pru_attach = udp6_attach,
+ .pru_bind = udp6_bind,
+ .pru_connect = udp6_connect,
+ .pru_control = in6_control,
+ .pru_detach = udp6_detach,
+ .pru_disconnect = udp6_disconnect,
+ .pru_peeraddr = in6_mapped_peeraddr,
+ .pru_send = udp6_send,
+ .pru_shutdown = udp_shutdown,
+ .pru_sockaddr = in6_mapped_sockaddr,
+ .pru_sosetlabel = in_pcbsosetlabel
};
diff --git a/sys/netipsec/keysock.c b/sys/netipsec/keysock.c
index 787f846..f2c5ddf 100644
--- a/sys/netipsec/keysock.c
+++ b/sys/netipsec/keysock.c
@@ -563,14 +563,16 @@ key_sockaddr(struct socket *so, struct sockaddr **nam)
}
struct pr_usrreqs key_usrreqs = {
- key_abort, pru_accept_notsupp, key_attach, key_bind,
- key_connect,
- pru_connect2_notsupp, pru_control_notsupp, key_detach,
- key_disconnect, pru_listen_notsupp, key_peeraddr,
- pru_rcvd_notsupp,
- pru_rcvoob_notsupp, key_send, pru_sense_null, key_shutdown,
- key_sockaddr, sosend, soreceive, sopoll,
- pru_sosetlabel_null
+ .pru_abort = key_abort,
+ .pru_attach = key_attach,
+ .pru_bind = key_bind,
+ .pru_connect = key_connect,
+ .pru_detach = key_detach,
+ .pru_disconnect = key_disconnect,
+ .pru_peeraddr = key_peeraddr,
+ .pru_send = key_send,
+ .pru_shutdown = key_shutdown,
+ .pru_sockaddr = key_sockaddr,
};
/* sysctl */
diff --git a/sys/netipx/ipx_usrreq.c b/sys/netipx/ipx_usrreq.c
index cff94bc..1c342a7 100644
--- a/sys/netipx/ipx_usrreq.c
+++ b/sys/netipx/ipx_usrreq.c
@@ -88,19 +88,31 @@ static int ripx_attach(struct socket *so, int proto, struct thread *td);
static int ipx_output(struct ipxpcb *ipxp, struct mbuf *m0);
struct pr_usrreqs ipx_usrreqs = {
- ipx_usr_abort, pru_accept_notsupp, ipx_attach, ipx_bind,
- ipx_connect, pru_connect2_notsupp, ipx_control, ipx_detach,
- ipx_disconnect, pru_listen_notsupp, ipx_peeraddr, pru_rcvd_notsupp,
- pru_rcvoob_notsupp, ipx_send, pru_sense_null, ipx_shutdown,
- ipx_sockaddr, sosend, soreceive, sopoll, pru_sosetlabel_null
+ .pru_abort = ipx_usr_abort,
+ .pru_attach = ipx_attach,
+ .pru_bind = ipx_bind,
+ .pru_connect = ipx_connect,
+ .pru_control = ipx_control,
+ .pru_detach = ipx_detach,
+ .pru_disconnect = ipx_disconnect,
+ .pru_peeraddr = ipx_peeraddr,
+ .pru_send = ipx_send,
+ .pru_shutdown = ipx_shutdown,
+ .pru_sockaddr = ipx_sockaddr,
};
struct pr_usrreqs ripx_usrreqs = {
- ipx_usr_abort, pru_accept_notsupp, ripx_attach, ipx_bind,
- ipx_connect, pru_connect2_notsupp, ipx_control, ipx_detach,
- ipx_disconnect, pru_listen_notsupp, ipx_peeraddr, pru_rcvd_notsupp,
- pru_rcvoob_notsupp, ipx_send, pru_sense_null, ipx_shutdown,
- ipx_sockaddr, sosend, soreceive, sopoll, pru_sosetlabel_null
+ .pru_abort = ipx_usr_abort,
+ .pru_attach = ripx_attach,
+ .pru_bind = ipx_bind,
+ .pru_connect = ipx_connect,
+ .pru_control = ipx_control,
+ .pru_detach = ipx_detach,
+ .pru_disconnect = ipx_disconnect,
+ .pru_peeraddr = ipx_peeraddr,
+ .pru_send = ipx_send,
+ .pru_shutdown = ipx_shutdown,
+ .pru_sockaddr = ipx_sockaddr,
};
/*
diff --git a/sys/netipx/spx_usrreq.c b/sys/netipx/spx_usrreq.c
index 67edf45..92769ba 100644
--- a/sys/netipx/spx_usrreq.c
+++ b/sys/netipx/spx_usrreq.c
@@ -108,19 +108,39 @@ static int spx_shutdown(struct socket *so);
static int spx_sp_attach(struct socket *so, int proto, struct thread *td);
struct pr_usrreqs spx_usrreqs = {
- spx_usr_abort, spx_accept, spx_attach, spx_bind,
- spx_connect, pru_connect2_notsupp, ipx_control, spx_detach,
- spx_usr_disconnect, spx_listen, ipx_peeraddr, spx_rcvd,
- spx_rcvoob, spx_send, pru_sense_null, spx_shutdown,
- ipx_sockaddr, sosend, soreceive, sopoll, pru_sosetlabel_null
+ .pru_abort = spx_usr_abort,
+ .pru_accept = spx_accept,
+ .pru_attach = spx_attach,
+ .pru_bind = spx_bind,
+ .pru_connect = spx_connect,
+ .pru_control = ipx_control,
+ .pru_detach = spx_detach,
+ .pru_disconnect = spx_usr_disconnect,
+ .pru_listen = spx_listen,
+ .pru_peeraddr = ipx_peeraddr,
+ .pru_rcvd = spx_rcvd,
+ .pru_rcvoob = spx_rcvoob,
+ .pru_send = spx_send,
+ .pru_shutdown = spx_shutdown,
+ .pru_sockaddr = ipx_sockaddr,
};
struct pr_usrreqs spx_usrreq_sps = {
- spx_usr_abort, spx_accept, spx_sp_attach, spx_bind,
- spx_connect, pru_connect2_notsupp, ipx_control, spx_detach,
- spx_usr_disconnect, spx_listen, ipx_peeraddr, spx_rcvd,
- spx_rcvoob, spx_send, pru_sense_null, spx_shutdown,
- ipx_sockaddr, sosend, soreceive, sopoll, pru_sosetlabel_null
+ .pru_abort = spx_usr_abort,
+ .pru_accept = spx_accept,
+ .pru_attach = spx_sp_attach,
+ .pru_bind = spx_bind,
+ .pru_connect = spx_connect,
+ .pru_control = ipx_control,
+ .pru_detach = spx_detach,
+ .pru_disconnect = spx_usr_disconnect,
+ .pru_listen = spx_listen,
+ .pru_peeraddr = ipx_peeraddr,
+ .pru_rcvd = spx_rcvd,
+ .pru_rcvoob = spx_rcvoob,
+ .pru_send = spx_send,
+ .pru_shutdown = spx_shutdown,
+ .pru_sockaddr = ipx_sockaddr,
};
void
diff --git a/sys/netkey/keysock.c b/sys/netkey/keysock.c
index 58409cd..301644b 100644
--- a/sys/netkey/keysock.c
+++ b/sys/netkey/keysock.c
@@ -473,16 +473,16 @@ key_sockaddr(struct socket *so, struct sockaddr **nam)
}
struct pr_usrreqs key_usrreqs = {
- key_abort, pru_accept_notsupp,
- key_attach,
- key_bind,
- key_connect,
- pru_connect2_notsupp, pru_control_notsupp, key_detach,
- key_disconnect, pru_listen_notsupp, key_peeraddr,
- pru_rcvd_notsupp,
- pru_rcvoob_notsupp, key_send, pru_sense_null, key_shutdown,
- key_sockaddr, sosend, soreceive, sopoll,
- pru_sosetlabel_null
+ .pru_abort = key_abort,
+ .pru_attach = key_attach,
+ .pru_bind = key_bind,
+ .pru_connect = key_connect,
+ .pru_detach = key_detach,
+ .pru_disconnect = key_disconnect,
+ .pru_peeraddr = key_peeraddr,
+ .pru_send = key_send,
+ .pru_shutdown = key_shutdown,
+ .pru_sockaddr = key_sockaddr,
};
/* sysctl */
diff --git a/sys/netnatm/natm.c b/sys/netnatm/natm.c
index f999f32..2318592 100644
--- a/sys/netnatm/natm.c
+++ b/sys/netnatm/natm.c
@@ -393,12 +393,17 @@ natm_usr_sockaddr(struct socket *so, struct sockaddr **nam)
/* xxx - should be const */
struct pr_usrreqs natm_usrreqs = {
- natm_usr_abort, pru_accept_notsupp, natm_usr_attach, natm_usr_bind,
- natm_usr_connect, pru_connect2_notsupp, natm_usr_control,
- natm_usr_detach, natm_usr_disconnect, pru_listen_notsupp,
- natm_usr_peeraddr, pru_rcvd_notsupp, pru_rcvoob_notsupp,
- natm_usr_send, pru_sense_null, natm_usr_shutdown,
- natm_usr_sockaddr, sosend, soreceive, sopoll, pru_sosetlabel_null
+ .pru_abort = natm_usr_abort,
+ .pru_attach = natm_usr_attach,
+ .pru_bind = natm_usr_bind,
+ .pru_connect = natm_usr_connect,
+ .pru_control = natm_usr_control,
+ .pru_detach = natm_usr_detach,
+ .pru_disconnect = natm_usr_disconnect,
+ .pru_peeraddr = natm_usr_peeraddr,
+ .pru_send = natm_usr_send,
+ .pru_shutdown = natm_usr_shutdown,
+ .pru_sockaddr = natm_usr_sockaddr,
};
#else /* !FREEBSD_USRREQS */
diff --git a/sys/sys/protosw.h b/sys/sys/protosw.h
index f4bb734..d93e452 100644
--- a/sys/sys/protosw.h
+++ b/sys/sys/protosw.h
@@ -190,8 +190,12 @@ struct uio;
* Having this structure separated out from the main protoswitch is allegedly
* a big (12 cycles per call) lose on high-end CPUs. We will eventually
* migrate this stuff back into the main structure.
+ *
+ * Some fields initialized to defaults if they are NULL.
+ * See uipc_domain.c:net_init_domain()
*/
struct pr_usrreqs {
+ double __Break_the_struct_layout_for_now;
int (*pru_abort)(struct socket *so);
int (*pru_accept)(struct socket *so, struct sockaddr **nam);
int (*pru_attach)(struct socket *so, int proto, struct thread *td);
OpenPOWER on IntegriCloud