• Home
  • Raw
  • Download

Lines Matching refs:nmh

754 static int o2net_handler_cmp(struct o2net_msg_handler *nmh, u32 msg_type,  in o2net_handler_cmp()  argument
757 int ret = memcmp(&nmh->nh_key, &key, sizeof(key)); in o2net_handler_cmp()
760 ret = memcmp(&nmh->nh_msg_type, &msg_type, sizeof(msg_type)); in o2net_handler_cmp()
771 struct o2net_msg_handler *nmh, *ret = NULL; in o2net_handler_tree_lookup() local
776 nmh = rb_entry(parent, struct o2net_msg_handler, nh_node); in o2net_handler_tree_lookup()
777 cmp = o2net_handler_cmp(nmh, msg_type, key); in o2net_handler_tree_lookup()
784 ret = nmh; in o2net_handler_tree_lookup()
799 struct o2net_msg_handler *nmh; in o2net_handler_kref_release() local
800 nmh = container_of(kref, struct o2net_msg_handler, nh_kref); in o2net_handler_kref_release()
802 kfree(nmh); in o2net_handler_kref_release()
805 static void o2net_handler_put(struct o2net_msg_handler *nmh) in o2net_handler_put() argument
807 kref_put(&nmh->nh_kref, o2net_handler_kref_release); in o2net_handler_put()
817 struct o2net_msg_handler *nmh = NULL; in o2net_register_handler() local
841 nmh = kzalloc(sizeof(struct o2net_msg_handler), GFP_NOFS); in o2net_register_handler()
842 if (nmh == NULL) { in o2net_register_handler()
847 nmh->nh_func = func; in o2net_register_handler()
848 nmh->nh_func_data = data; in o2net_register_handler()
849 nmh->nh_post_func = post_func; in o2net_register_handler()
850 nmh->nh_msg_type = msg_type; in o2net_register_handler()
851 nmh->nh_max_len = max_len; in o2net_register_handler()
852 nmh->nh_key = key; in o2net_register_handler()
855 kref_init(&nmh->nh_kref); in o2net_register_handler()
856 INIT_LIST_HEAD(&nmh->nh_unregister_item); in o2net_register_handler()
862 rb_link_node(&nmh->nh_node, parent, p); in o2net_register_handler()
863 rb_insert_color(&nmh->nh_node, &o2net_handler_tree); in o2net_register_handler()
864 list_add_tail(&nmh->nh_unregister_item, unreg_list); in o2net_register_handler()
880 kfree(nmh); in o2net_register_handler()
888 struct o2net_msg_handler *nmh, *n; in o2net_unregister_handler_list() local
891 list_for_each_entry_safe(nmh, n, list, nh_unregister_item) { in o2net_unregister_handler_list()
893 nmh->nh_func, nmh->nh_msg_type, nmh->nh_key); in o2net_unregister_handler_list()
894 rb_erase(&nmh->nh_node, &o2net_handler_tree); in o2net_unregister_handler_list()
895 list_del_init(&nmh->nh_unregister_item); in o2net_unregister_handler_list()
896 kref_put(&nmh->nh_kref, o2net_handler_kref_release); in o2net_unregister_handler_list()
904 struct o2net_msg_handler *nmh; in o2net_handler_get() local
907 nmh = o2net_handler_tree_lookup(msg_type, key, NULL, NULL); in o2net_handler_get()
908 if (nmh) in o2net_handler_get()
909 kref_get(&nmh->nh_kref); in o2net_handler_get()
912 return nmh; in o2net_handler_get()
1189 struct o2net_msg_handler *nmh = NULL; in o2net_process_message() local
1221 nmh = o2net_handler_get(be16_to_cpu(hdr->msg_type), in o2net_process_message()
1223 if (!nmh) { in o2net_process_message()
1232 if (be16_to_cpu(hdr->data_len) > nmh->nh_max_len) in o2net_process_message()
1241 handler_status = (nmh->nh_func)(hdr, sizeof(struct o2net_msg) + in o2net_process_message()
1243 nmh->nh_func_data, &ret_data); in o2net_process_message()
1258 if (nmh) { in o2net_process_message()
1259 BUG_ON(ret_data != NULL && nmh->nh_post_func == NULL); in o2net_process_message()
1260 if (nmh->nh_post_func) in o2net_process_message()
1261 (nmh->nh_post_func)(handler_status, nmh->nh_func_data, in o2net_process_message()
1266 if (nmh) in o2net_process_message()
1267 o2net_handler_put(nmh); in o2net_process_message()