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

Function sysctl_iflist_ifm

freebsd/net/rtsock.c:2237–2269  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2235}
2236
2237static int
2238sysctl_iflist_ifm(struct ifnet *ifp, const struct if_data *src_ifd,
2239 struct rt_addrinfo *info, struct walkarg *w, int len)
2240{
2241 struct if_msghdr *ifm;
2242 struct if_data *ifd;
2243
2244 ifm = (struct if_msghdr *)w->w_tmem;
2245
2246#ifdef COMPAT_FREEBSD32
2247 if (w->w_req->flags & SCTL_MASK32) {
2248 struct if_msghdr32 *ifm32;
2249
2250 ifm32 = (struct if_msghdr32 *)ifm;
2251 ifm32->ifm_addrs = info->rti_addrs;
2252 ifm32->ifm_flags = ifp->if_flags | ifp->if_drv_flags;
2253 ifm32->ifm_index = ifp->if_index;
2254 ifm32->_ifm_spare1 = 0;
2255 ifd = &ifm32->ifm_data;
2256 } else
2257#endif
2258 {
2259 ifm->ifm_addrs = info->rti_addrs;
2260 ifm->ifm_flags = ifp->if_flags | ifp->if_drv_flags;
2261 ifm->ifm_index = ifp->if_index;
2262 ifm->_ifm_spare1 = 0;
2263 ifd = &ifm->ifm_data;
2264 }
2265
2266 memcpy(ifd, src_ifd, sizeof(*ifd));
2267
2268 return (SYSCTL_OUT(w->w_req, (caddr_t)ifm, len));
2269}
2270
2271static int
2272sysctl_iflist_ifaml(struct ifaddr *ifa, struct rt_addrinfo *info,

Callers 1

sysctl_iflistFunction · 0.85

Calls 1

memcpyFunction · 0.50

Tested by

no test coverage detected