Lines Matching refs:in6m
847 * address on a given interface. If no matching record is found, "in6m"
860 #define IN6_LOOKUP_MULTI(addr, ifp, in6m) \
863 /* struct in6_multi *in6m; */ \
866 IN6_FIRST_MULTI(_step, in6m); \
867 while ((in6m) != NULL) { \
868 IN6M_LOCK_SPIN(in6m); \
869 if ((in6m)->in6m_ifp == (ifp) && \
870 IN6_ARE_ADDR_EQUAL(&(in6m)->in6m_addr, (addr))) { \
871 IN6M_ADDREF_LOCKED(in6m); \
872 IN6M_UNLOCK(in6m); \
875 IN6M_UNLOCK(in6m); \
876 IN6_NEXT_MULTI(_step, in6m); \
884 * and get the first record. Both macros return a NULL "in6m" when there
889 #define IN6_NEXT_MULTI(step, in6m) \
891 /* struct in6_multi *in6m; */ \
894 if (((in6m) = (step).i_in6m) != NULL) \
898 #define IN6_FIRST_MULTI(step, in6m) \
900 /* struct in6_multi *in6m */ \
904 IN6_NEXT_MULTI((step), (in6m)); \