Lines Matching refs:ame
69 struct agr_mc_entry *ame; in agr_mc_purgeall() local
72 while ((ame = TAILQ_FIRST(&ama->ama_addrs)) != NULL) { in agr_mc_purgeall()
74 agrport_mc_del_callback, &ame->ame_ifr); in agr_mc_purgeall()
79 TAILQ_REMOVE(&ama->ama_addrs, ame, ame_q); in agr_mc_purgeall()
80 free(ame, M_DEVBUF); in agr_mc_purgeall()
100 struct agr_mc_entry *ame; in agr_mc_lookup() local
102 TAILQ_FOREACH(ame, &ama->ama_addrs, ame_q) { in agr_mc_lookup()
103 if (!memcmp(&ame->ame_ifr.ifr_ss, sa, sa->sa_len)) in agr_mc_lookup()
104 return ame; in agr_mc_lookup()
114 struct agr_mc_entry *ame; in agr_mc_foreach() local
117 TAILQ_FOREACH(ame, &ama->ama_addrs, ame_q) { in agr_mc_foreach()
118 error = (*func)(ame, arg); in agr_mc_foreach()
134 struct agr_mc_entry *ame; in agr_mc_add() local
136 ame = agr_mc_lookup(ama, sa); in agr_mc_add()
137 if (ame) { in agr_mc_add()
138 ame->ame_refcnt++; in agr_mc_add()
142 ame = malloc(sizeof(*ame), M_DEVBUF, M_WAITOK | M_ZERO); in agr_mc_add()
143 memcpy(&ame->ame_ifr.ifr_ss, sa, sa->sa_len); in agr_mc_add()
144 ame->ame_refcnt = 1; in agr_mc_add()
145 TAILQ_INSERT_TAIL(&ama->ama_addrs, ame, ame_q); in agr_mc_add()
153 struct agr_mc_entry *ame; in agr_mc_del() local
155 ame = agr_mc_lookup(ama, sa); in agr_mc_del()
156 if (ame == NULL) in agr_mc_del()
159 ame->ame_refcnt--; in agr_mc_del()
160 if (ame->ame_refcnt > 0) in agr_mc_del()
163 TAILQ_REMOVE(&ama->ama_addrs, ame, ame_q); in agr_mc_del()
164 free(ame, M_DEVBUF); in agr_mc_del()
198 agrmc_mc_add_callback(struct agr_mc_entry *ame, void *arg) in agrmc_mc_add_callback() argument
201 return agrport_mc_add_callback(arg, &ame->ame_ifr); in agrmc_mc_add_callback()
205 agrmc_mc_del_callback(struct agr_mc_entry *ame, void *arg) in agrmc_mc_del_callback() argument
208 return agrport_mc_del_callback(arg, &ame->ame_ifr); in agrmc_mc_del_callback()