Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet/ip_mroute.c
Show First 20 Lines • Show All 2,721 Lines • ▼ Show 20 Lines | |||||
static SYSCTL_NODE(_net_inet_ip, OID_AUTO, mfctable, | static SYSCTL_NODE(_net_inet_ip, OID_AUTO, mfctable, | ||||
CTLFLAG_RD | CTLFLAG_MPSAFE, sysctl_mfctable, | CTLFLAG_RD | CTLFLAG_MPSAFE, sysctl_mfctable, | ||||
"IPv4 Multicast Forwarding Table " | "IPv4 Multicast Forwarding Table " | ||||
"(struct *mfc[mfchashsize], netinet/ip_mroute.h)"); | "(struct *mfc[mfchashsize], netinet/ip_mroute.h)"); | ||||
static int | static int | ||||
sysctl_viflist(SYSCTL_HANDLER_ARGS) | sysctl_viflist(SYSCTL_HANDLER_ARGS) | ||||
{ | { | ||||
int error; | int error, i; | ||||
if (req->newptr) | if (req->newptr) | ||||
return (EPERM); | return (EPERM); | ||||
if (V_viftable == NULL) /* XXX unlocked */ | if (V_viftable == NULL) /* XXX unlocked */ | ||||
return (0); | return (0); | ||||
error = sysctl_wire_old_buffer(req, sizeof(*V_viftable) * MAXVIFS); | error = sysctl_wire_old_buffer(req, MROUTE_VIF_SYSCTL_LEN * MAXVIFS); | ||||
if (error) | if (error) | ||||
return (error); | return (error); | ||||
MRW_RLOCK(); | MRW_RLOCK(); | ||||
error = SYSCTL_OUT(req, V_viftable, sizeof(*V_viftable) * MAXVIFS); | /* Copy out user-visible portion of vif entry. */ | ||||
for (i = 0; i < MAXVIFS; i++) { | |||||
error = SYSCTL_OUT(req, &V_viftable[i], MROUTE_VIF_SYSCTL_LEN); | |||||
if (error) | |||||
break; | |||||
} | |||||
MRW_RUNLOCK(); | MRW_RUNLOCK(); | ||||
return (error); | return (error); | ||||
} | } | ||||
SYSCTL_PROC(_net_inet_ip, OID_AUTO, viftable, | SYSCTL_PROC(_net_inet_ip, OID_AUTO, viftable, | ||||
CTLTYPE_OPAQUE | CTLFLAG_VNET | CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, 0, | CTLTYPE_OPAQUE | CTLFLAG_VNET | CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, 0, | ||||
sysctl_viflist, "S,vif[MAXVIFS]", | sysctl_viflist, "S,vif[MAXVIFS]", | ||||
"IPv4 Multicast Interfaces (struct vif[MAXVIFS], netinet/ip_mroute.h)"); | "IPv4 Multicast Interfaces (struct vif[MAXVIFS], netinet/ip_mroute.h)"); | ||||
▲ Show 20 Lines • Show All 140 Lines • Show Last 20 Lines |