• Home
  • Raw
  • Download

Lines Matching refs:entry

282 static void dccp_feat_print_entry(struct dccp_feat_entry const *entry)  in dccp_feat_print_entry()  argument
284 dccp_debug(" * %s %s = ", entry->is_local ? "local" : "remote", in dccp_feat_print_entry()
285 dccp_feat_fname(entry->feat_num)); in dccp_feat_print_entry()
286 dccp_feat_printval(entry->feat_num, &entry->val); in dccp_feat_print_entry()
287 dccp_pr_debug_cat(", state=%s %s\n", dccp_feat_sname[entry->state], in dccp_feat_print_entry()
288 entry->needs_confirm ? "(Confirm pending)" : ""); in dccp_feat_print_entry()
414 static void dccp_feat_entry_destructor(struct dccp_feat_entry *entry) in dccp_feat_entry_destructor() argument
416 if (entry != NULL) { in dccp_feat_entry_destructor()
417 dccp_feat_val_destructor(entry->feat_num, &entry->val); in dccp_feat_entry_destructor()
418 kfree(entry); in dccp_feat_entry_destructor()
434 struct dccp_feat_entry *entry; in dccp_feat_list_lookup() local
436 list_for_each_entry(entry, fn_list, node) { in dccp_feat_list_lookup()
437 if (entry->feat_num == feat_num && entry->is_local == is_local) in dccp_feat_list_lookup()
438 return entry; in dccp_feat_list_lookup()
439 else if (entry->feat_num > feat_num) in dccp_feat_list_lookup()
456 struct dccp_feat_entry *entry; in dccp_feat_entry_new() local
458 list_for_each_entry(entry, head, node) in dccp_feat_entry_new()
459 if (entry->feat_num == feat && entry->is_local == local) { in dccp_feat_entry_new()
460 dccp_feat_val_destructor(entry->feat_num, &entry->val); in dccp_feat_entry_new()
461 return entry; in dccp_feat_entry_new()
462 } else if (entry->feat_num > feat) { in dccp_feat_entry_new()
463 head = &entry->node; in dccp_feat_entry_new()
467 entry = kmalloc(sizeof(*entry), gfp_any()); in dccp_feat_entry_new()
468 if (entry != NULL) { in dccp_feat_entry_new()
469 entry->feat_num = feat; in dccp_feat_entry_new()
470 entry->is_local = local; in dccp_feat_entry_new()
471 list_add_tail(&entry->node, head); in dccp_feat_entry_new()
473 return entry; in dccp_feat_entry_new()
538 static inline void dccp_feat_list_pop(struct dccp_feat_entry *entry) in dccp_feat_list_pop() argument
540 list_del(&entry->node); in dccp_feat_list_pop()
541 dccp_feat_entry_destructor(entry); in dccp_feat_list_pop()
546 struct dccp_feat_entry *entry, *next; in dccp_feat_list_purge() local
548 list_for_each_entry_safe(entry, next, fn_list, node) in dccp_feat_list_purge()
549 dccp_feat_entry_destructor(entry); in dccp_feat_list_purge()
557 struct dccp_feat_entry *entry, *new; in dccp_feat_clone_list() local
560 list_for_each_entry(entry, from, node) { in dccp_feat_clone_list()
561 new = dccp_feat_clone_entry(entry); in dccp_feat_clone_list()
780 struct dccp_feat_entry *entry; in dccp_feat_nn_get() local
782 entry = dccp_feat_list_lookup(&dp->dccps_featneg, feat, 1); in dccp_feat_nn_get()
783 if (entry != NULL) in dccp_feat_nn_get()
784 return entry->val.nn; in dccp_feat_nn_get()
810 struct dccp_feat_entry *entry; in dccp_feat_signal_nn_change() local
822 entry = dccp_feat_list_lookup(fn, feat, 1); in dccp_feat_signal_nn_change()
823 if (entry != NULL) { in dccp_feat_signal_nn_change()
825 (unsigned long long)entry->val.nn, in dccp_feat_signal_nn_change()
827 dccp_feat_list_pop(entry); in dccp_feat_signal_nn_change()
976 struct dccp_feat_entry *entry; in dccp_feat_finalise_settings() local
988 list_for_each_entry(entry, fn, node) in dccp_feat_finalise_settings()
989 if (entry->feat_num == DCCPF_CCID && entry->val.sp.len == 1) in dccp_feat_finalise_settings()
990 ccids[entry->is_local] = entry->val.sp.vec[0]; in dccp_feat_finalise_settings()
1006 struct dccp_feat_entry *entry; in dccp_feat_server_ccid_dependencies() local
1010 entry = dccp_feat_list_lookup(fn, DCCPF_CCID, is_local); in dccp_feat_server_ccid_dependencies()
1012 if (entry != NULL && !entry->empty_confirm) in dccp_feat_server_ccid_dependencies()
1013 ccid = entry->val.sp.vec[0]; in dccp_feat_server_ccid_dependencies()
1107 struct dccp_feat_entry *entry; in dccp_feat_change_recv() local
1134 entry = dccp_feat_list_lookup(fn, feat, local); in dccp_feat_change_recv()
1135 if (entry == NULL) { in dccp_feat_change_recv()
1166 } else if (entry->state == FEAT_UNSTABLE) { /* 6.6.2 */ in dccp_feat_change_recv()
1170 if (dccp_feat_reconcile(&entry->val, val, len, server, true)) { in dccp_feat_change_recv()
1171 entry->empty_confirm = false; in dccp_feat_change_recv()
1174 } else if (entry->state == FEAT_INITIALISING) { in dccp_feat_change_recv()
1185 if (!dccp_feat_reconcile(&entry->val, &defval, 1, server, true)) in dccp_feat_change_recv()
1187 entry->empty_confirm = true; in dccp_feat_change_recv()
1189 entry->needs_confirm = true; in dccp_feat_change_recv()
1190 entry->needs_mandatory = false; in dccp_feat_change_recv()
1191 entry->state = FEAT_STABLE; in dccp_feat_change_recv()
1218 struct dccp_feat_entry *entry = dccp_feat_list_lookup(fn, feat, local); in dccp_feat_confirm_recv() local
1222 if (entry == NULL) { /* nothing queued: ignore or handle error */ in dccp_feat_confirm_recv()
1231 if (entry->state != FEAT_CHANGING) /* 6.6.2 */ in dccp_feat_confirm_recv()
1244 dccp_feat_list_pop(entry); in dccp_feat_confirm_recv()
1249 if (len > sizeof(entry->val.nn)) in dccp_feat_confirm_recv()
1252 if (entry->val.nn == dccp_decode_value_var(val, len)) in dccp_feat_confirm_recv()
1276 if (dccp_feat_reconcile(&entry->val, plist, plen, server, 0) != *val) { in dccp_feat_confirm_recv()
1280 entry->val.sp.vec[0] = *val; in dccp_feat_confirm_recv()
1283 entry->state = FEAT_STABLE; in dccp_feat_confirm_recv()
1315 struct dccp_feat_entry *entry; in dccp_feat_handle_nn_established() local
1352 entry = dccp_feat_list_lookup(fn, feat, local); in dccp_feat_handle_nn_established()
1353 if (entry == NULL || entry->state != FEAT_CHANGING) in dccp_feat_handle_nn_established()
1363 if (fval.nn != entry->val.nn) in dccp_feat_handle_nn_established()
1370 dccp_feat_list_pop(entry); in dccp_feat_handle_nn_established()