Lines Matching refs:bat_priv

78 batadv_tvlv_handler_get(struct batadv_priv *bat_priv, u8 type, u8 version)  in batadv_tvlv_handler_get()  argument
84 &bat_priv->tvlv.handler_list, list) { in batadv_tvlv_handler_get()
137 batadv_tvlv_container_get(struct batadv_priv *bat_priv, u8 type, u8 version) in batadv_tvlv_container_get() argument
141 lockdep_assert_held(&bat_priv->tvlv.container_list_lock); in batadv_tvlv_container_get()
143 hlist_for_each_entry(tvlv_tmp, &bat_priv->tvlv.container_list, list) { in batadv_tvlv_container_get()
168 static u16 batadv_tvlv_container_list_size(struct batadv_priv *bat_priv) in batadv_tvlv_container_list_size() argument
173 lockdep_assert_held(&bat_priv->tvlv.container_list_lock); in batadv_tvlv_container_list_size()
175 hlist_for_each_entry(tvlv, &bat_priv->tvlv.container_list, list) { in batadv_tvlv_container_list_size()
192 static void batadv_tvlv_container_remove(struct batadv_priv *bat_priv, in batadv_tvlv_container_remove() argument
195 lockdep_assert_held(&bat_priv->tvlv.container_list_lock); in batadv_tvlv_container_remove()
214 void batadv_tvlv_container_unregister(struct batadv_priv *bat_priv, in batadv_tvlv_container_unregister() argument
219 spin_lock_bh(&bat_priv->tvlv.container_list_lock); in batadv_tvlv_container_unregister()
220 tvlv = batadv_tvlv_container_get(bat_priv, type, version); in batadv_tvlv_container_unregister()
221 batadv_tvlv_container_remove(bat_priv, tvlv); in batadv_tvlv_container_unregister()
222 spin_unlock_bh(&bat_priv->tvlv.container_list_lock); in batadv_tvlv_container_unregister()
237 void batadv_tvlv_container_register(struct batadv_priv *bat_priv, in batadv_tvlv_container_register() argument
258 spin_lock_bh(&bat_priv->tvlv.container_list_lock); in batadv_tvlv_container_register()
259 tvlv_old = batadv_tvlv_container_get(bat_priv, type, version); in batadv_tvlv_container_register()
260 batadv_tvlv_container_remove(bat_priv, tvlv_old); in batadv_tvlv_container_register()
263 hlist_add_head(&tvlv_new->list, &bat_priv->tvlv.container_list); in batadv_tvlv_container_register()
264 spin_unlock_bh(&bat_priv->tvlv.container_list_lock); in batadv_tvlv_container_register()
317 u16 batadv_tvlv_container_ogm_append(struct batadv_priv *bat_priv, in batadv_tvlv_container_ogm_append() argument
327 spin_lock_bh(&bat_priv->tvlv.container_list_lock); in batadv_tvlv_container_ogm_append()
328 tvlv_value_len = batadv_tvlv_container_list_size(bat_priv); in batadv_tvlv_container_ogm_append()
341 hlist_for_each_entry(tvlv, &bat_priv->tvlv.container_list, list) { in batadv_tvlv_container_ogm_append()
352 spin_unlock_bh(&bat_priv->tvlv.container_list_lock); in batadv_tvlv_container_ogm_append()
371 static int batadv_tvlv_call_handler(struct batadv_priv *bat_priv, in batadv_tvlv_call_handler() argument
388 tvlv_handler->ogm_handler(bat_priv, orig_node, in batadv_tvlv_call_handler()
402 return tvlv_handler->unicast_handler(bat_priv, src, in batadv_tvlv_call_handler()
424 int batadv_tvlv_containers_process(struct batadv_priv *bat_priv, in batadv_tvlv_containers_process() argument
445 tvlv_handler = batadv_tvlv_handler_get(bat_priv, in batadv_tvlv_containers_process()
449 ret |= batadv_tvlv_call_handler(bat_priv, tvlv_handler, in batadv_tvlv_containers_process()
464 &bat_priv->tvlv.handler_list, list) { in batadv_tvlv_containers_process()
467 tvlv_handler->ogm_handler(bat_priv, orig_node, in batadv_tvlv_containers_process()
484 void batadv_tvlv_ogm_receive(struct batadv_priv *bat_priv, in batadv_tvlv_ogm_receive() argument
500 batadv_tvlv_containers_process(bat_priv, true, orig_node, NULL, NULL, in batadv_tvlv_ogm_receive()
518 void batadv_tvlv_handler_register(struct batadv_priv *bat_priv, in batadv_tvlv_handler_register() argument
519 void (*optr)(struct batadv_priv *bat_priv, in batadv_tvlv_handler_register() argument
524 int (*uptr)(struct batadv_priv *bat_priv, in batadv_tvlv_handler_register() argument
532 spin_lock_bh(&bat_priv->tvlv.handler_list_lock); in batadv_tvlv_handler_register()
534 tvlv_handler = batadv_tvlv_handler_get(bat_priv, type, version); in batadv_tvlv_handler_register()
536 spin_unlock_bh(&bat_priv->tvlv.handler_list_lock); in batadv_tvlv_handler_register()
543 spin_unlock_bh(&bat_priv->tvlv.handler_list_lock); in batadv_tvlv_handler_register()
556 hlist_add_head_rcu(&tvlv_handler->list, &bat_priv->tvlv.handler_list); in batadv_tvlv_handler_register()
557 spin_unlock_bh(&bat_priv->tvlv.handler_list_lock); in batadv_tvlv_handler_register()
570 void batadv_tvlv_handler_unregister(struct batadv_priv *bat_priv, in batadv_tvlv_handler_unregister() argument
575 tvlv_handler = batadv_tvlv_handler_get(bat_priv, type, version); in batadv_tvlv_handler_unregister()
580 spin_lock_bh(&bat_priv->tvlv.handler_list_lock); in batadv_tvlv_handler_unregister()
582 spin_unlock_bh(&bat_priv->tvlv.handler_list_lock); in batadv_tvlv_handler_unregister()
597 void batadv_tvlv_unicast_send(struct batadv_priv *bat_priv, u8 *src, in batadv_tvlv_unicast_send() argument
609 orig_node = batadv_orig_hash_find(bat_priv, dst); in batadv_tvlv_unicast_send()