Lines Matching defs:ifa

374 	struct ifaddr *ifa;
552 ifa = &ia->ia_ifa;
553 IFA_LOCK(ifa);
555 IFA_ADDREF_LOCKED(ifa);
557 ifa->ifa_addr = (struct sockaddr *)&ia->ia_addr;
558 ifa->ifa_dstaddr = (struct sockaddr *)&ia->ia_dstaddr;
559 ifa->ifa_netmask = (struct sockaddr *)&ia->ia_sockmask;
569 if_attach_ifa(ifp, ifa);
577 ifa->ifa_debug |= IFD_NOTREADY;
578 IFA_UNLOCK(ifa);
582 IFA_ADDREF(ifa);
871 TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) {
872 IFA_LOCK(ifa);
873 if (ifa->ifa_addr->sa_family == AF_INET) {
874 IFA_UNLOCK(ifa);
877 IFA_UNLOCK(ifa);
880 if (ifa != NULL) {
1082 ifa = &ia->ia_ifa;
1085 IFA_REMREF(ifa);
1087 IFA_LOCK(ifa);
1090 IFA_UNLOCK(ifa);
1098 IFA_LOCK(ifa);
1100 if_detach_ifa(ifp, ifa);
1102 IFA_UNLOCK(ifa);
1111 TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) {
1112 IFA_LOCK(ifa);
1113 if (ifa->ifa_addr->sa_family == AF_INET) {
1114 IFA_UNLOCK(ifa);
1117 IFA_UNLOCK(ifa);
1122 if (ifa == NULL && ifp->if_allhostsinm != NULL) {
1142 ifa = ifa_ifpgetprimary(ifp, AF_INET);
1143 if (ifa != NULL) {
1150 error = ifnet_ioctl(ifp, PF_INET, SIOCSIFADDR, ifa);
1155 IFA_REMREF(ifa);
1248 struct ifaddr *ifa;
1343 TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) {
1344 IFA_LOCK(ifa);
1345 if (ifa->ifa_addr->sa_family != AF_INET6) {
1346 IFA_UNLOCK(ifa);
1350 IFA_UNLOCK(ifa);
1353 candidate.s_addr = ((struct sockaddr_in *)&ifa->ifa_addr)->sin_addr.s_addr;
1355 IFA_UNLOCK(ifa);
1359 if (ifa != NULL)
1360 IFA_ADDREF(ifa);
1362 if (!ifa)
1364 ia = (struct in_ifaddr *)ifa;
1367 IFA_LOCK(ifa);
1382 IFA_UNLOCK(ifa);
1383 IFA_REMREF(ifa);
1393 IFA_LOCK(ifa);
1402 IFA_UNLOCK(ifa);
1403 IFA_REMREF(ifa);
1483 panic("%s: unexpected (missing) refcnt ifa=%p", __func__,
1756 struct ifaddr *ifa;
1768 #define ia ((struct in_ifaddr *)ifa)
1770 TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) {
1771 IFA_LOCK(ifa);
1772 if (ifa->ifa_addr->sa_family == AF_INET &&
1785 IFA_UNLOCK(ifa);
1789 IFA_UNLOCK(ifa);
1813 struct ifaddr *ifa;
1815 ifa = ifap[i];
1817 IFA_LOCK(ifa);
1818 ifr.ifra_addr = *ifa->ifa_addr;
1819 if (ifa->ifa_dstaddr != NULL)
1820 ifr.ifra_broadaddr = *ifa->ifa_dstaddr;
1821 IFA_UNLOCK(ifa);
1832 IFA_LOCK(ifa);
1834 (void *)ifa->ifa_addr)->sin_addr;
1836 (void *)ifa->ifa_dstaddr)->sin_addr;
1841 IFA_UNLOCK(ifa);
1941 in_ifaddr_free(struct ifaddr *ifa)
1943 IFA_LOCK_ASSERT_HELD(ifa);
1945 if (ifa->ifa_refcnt != 0) {
1946 panic("%s: ifa %p bad ref cnt", __func__, ifa);
1948 } if (!(ifa->ifa_debug & IFD_ALLOC)) {
1949 panic("%s: ifa %p cannot be freed", __func__, ifa);
1952 if (ifa->ifa_debug & IFD_DEBUG) {
1953 struct in_ifaddr_dbg *inifa_dbg = (struct in_ifaddr_dbg *)ifa;
1957 if (ifa->ifa_debug & IFD_TRASHED) {
1959 IFA_CONVERT_LOCK(ifa);
1964 ifa->ifa_debug &= ~IFD_TRASHED;
1967 IFA_UNLOCK(ifa);
1968 ifa_lock_destroy(ifa);
1969 bzero(ifa, sizeof (struct in_ifaddr));
1970 zfree(inifa_zone, ifa);
1974 in_ifaddr_attached(struct ifaddr *ifa)
1976 struct in_ifaddr_dbg *inifa_dbg = (struct in_ifaddr_dbg *)ifa;
1978 IFA_LOCK_ASSERT_HELD(ifa);
1980 if (!(ifa->ifa_debug & IFD_DEBUG)) {
1981 panic("%s: ifa %p has no debug structure", __func__, ifa);
1984 if (ifa->ifa_debug & IFD_TRASHED) {
1986 IFA_CONVERT_LOCK(ifa);
1990 ifa->ifa_debug &= ~IFD_TRASHED;
1995 in_ifaddr_detached(struct ifaddr *ifa)
1997 struct in_ifaddr_dbg *inifa_dbg = (struct in_ifaddr_dbg *)ifa;
1999 IFA_LOCK_ASSERT_HELD(ifa);
2001 if (!(ifa->ifa_debug & IFD_DEBUG)) {
2002 panic("%s: ifa %p has no debug structure", __func__, ifa);
2004 } else if (ifa->ifa_debug & IFD_TRASHED) {
2005 panic("%s: ifa %p is already in trash list", __func__, ifa);
2008 ifa->ifa_debug |= IFD_TRASHED;
2010 IFA_CONVERT_LOCK(ifa);
2017 in_ifaddr_trace(struct ifaddr *ifa, int refhold)
2019 struct in_ifaddr_dbg *inifa_dbg = (struct in_ifaddr_dbg *)ifa;
2024 if (!(ifa->ifa_debug & IFD_DEBUG)) {
2025 panic("%s: ifa %p has no debug structure", __func__, ifa);