GNUnet  0.10.x
Macros
Container library: Doubly-linked list

Macros

#define GNUNET_CONTAINER_DLL_insert(head, tail, element)
 Insert an element at the head of a DLL. More...
 
#define GNUNET_CONTAINER_DLL_insert_tail(head, tail, element)
 Insert an element at the tail of a DLL. More...
 
#define GNUNET_CONTAINER_DLL_insert_after(head, tail, other, element)
 Insert an element into a DLL after the given other element. More...
 
#define GNUNET_CONTAINER_DLL_insert_before(head, tail, other, element)
 Insert an element into a DLL before the given other element. More...
 
#define GNUNET_CONTAINER_DLL_remove(head, tail, element)
 Remove an element from a DLL. More...
 
#define GNUNET_CONTAINER_MDLL_insert(mdll, head, tail, element)
 Insert an element at the head of a MDLL. More...
 
#define GNUNET_CONTAINER_MDLL_insert_tail(mdll, head, tail, element)
 Insert an element at the tail of a MDLL. More...
 
#define GNUNET_CONTAINER_MDLL_insert_after(mdll, head, tail, other, element)
 Insert an element into a MDLL after the given other element. More...
 
#define GNUNET_CONTAINER_MDLL_insert_before(mdll, head, tail, other, element)
 Insert an element into a MDLL before the given other element. More...
 
#define GNUNET_CONTAINER_MDLL_remove(mdll, head, tail, element)
 Remove an element from a MDLL. More...
 

Detailed Description

See also
Documentation

Macro Definition Documentation

◆ GNUNET_CONTAINER_DLL_insert

#define GNUNET_CONTAINER_DLL_insert (   head,
  tail,
  element 
)
Value:
do \
{ \
GNUNET_assert (((element)->prev == NULL) && ((head) != (element))); \
GNUNET_assert (((element)->next == NULL) && ((tail) != (element))); \
(element)->next = (head); \
(element)->prev = NULL; \
if ((tail) == NULL) \
(tail) = element; \
else \
(head)->prev = element; \
(head) = (element); \
} while (0)
static struct PendingResolutions * head
Head of list of pending resolution requests.
Definition: gnunet-ats.c:231
static struct PendingResolutions * tail
Tail of list of pending resolution requests.
Definition: gnunet-ats.c:236

Insert an element at the head of a DLL.

Assumes that head, tail and element are structs with prev and next fields.

Parameters
headpointer to the head of the DLL
tailpointer to the tail of the DLL
elementelement to insert

Definition at line 2154 of file gnunet_container_lib.h.

Referenced by add_dns_result(), add_file(), add_host(), add_record(), add_without_sets(), addr_cb(), ats_perf_cb(), ats_perf_mon_cb(), automaton_add_state(), backward_resolution(), cache_answers(), cadet_channel_end_cb(), channel_new_cb(), client_connect_cb(), connect_cb(), connect_nse_service(), consider_path_cb(), create_listen_socket(), create_macendpoint(), create_session(), curl_check_hdr(), deserialize_download(), dfa_add_multi_strides_helper(), dfa_compress_paths_helper(), dir_init(), do_accept(), do_connect(), do_restart_typemap_message(), enforce_add_address(), enqueue(), expand_tree(), find_subsystem_entry(), GAS_proportional_address_add(), GCP_path_entry_add(), GCP_request_mq(), GCT_add_inbound_connection(), get_ip_from_hostname(), GN_external_ipv4_monitor_start(), GNS_resolver_lookup(), GNS_resolver_lookup_cancel(), GNUNET_ATS_performance_list_addresses(), GNUNET_ATS_solver_generate_preferences_start(), GNUNET_ATS_solver_generate_property_start(), GNUNET_ATS_solver_logging_write_to_disk(), GNUNET_ATS_TEST_generate_preferences_start(), GNUNET_ATS_TEST_generate_traffic_start(), GNUNET_CREDENTIAL_collect(), GNUNET_CREDENTIAL_verify(), GNUNET_CURL_job_add2(), GNUNET_DEFRAGMENT_process_fragment(), GNUNET_DHT_monitor_start(), GNUNET_DNSSTUB_add_dns_ip(), GNUNET_DNSSTUB_add_dns_sa(), GNUNET_FS_add_to_index(), GNUNET_FS_download_start(), GNUNET_FS_make_top(), GNUNET_GNS_lookup(), GNUNET_MQ_destroy_notify(), GNUNET_MYSQL_statement_prepare(), GNUNET_notification_context_add(), GNUNET_RECLAIM_ATTRIBUTE_list_add(), GNUNET_RECLAIM_ATTRIBUTE_list_deserialize(), GNUNET_RECLAIM_ATTRIBUTE_list_dup(), GNUNET_RPS_request_peer_info(), GNUNET_RPS_request_peers(), GNUNET_SCHEDULER_add_at_with_priority(), GNUNET_SCHEDULER_add_select(), GNUNET_SCHEDULER_add_shutdown(), GNUNET_SERVER_connect_notify(), GNUNET_SERVER_connect_socket(), GNUNET_SERVER_disconnect_notify(), GNUNET_SET_commit(), GNUNET_SET_copy_lazy(), GNUNET_TRANSPORT_communicator_address_add(), GNUNET_TRANSPORT_communicator_mq_add(), GNUNET_TRANSPORT_communicator_receive(), GNUNET_TRANSPORT_TESTING_connect_peers(), GNUNET_TRANSPORT_TESTING_start_peer(), GNUNET_TRANSPORT_TESTING_transport_communicator_open_queue(), GPI_plugins_load(), GSC_SESSIONS_set_typemap(), GSF_cadet_query(), GSF_push_start_(), GST_blacklist_test_allowed(), GST_connection_pool_get_handle(), GST_hello_modify_addresses(), GST_neighbours_switch_to_address(), GST_plugins_load(), handle_ack(), handle_add_address(), handle_address_change_notification(), handle_attribute_delete_message(), handle_attribute_store_message(), handle_autoconfig_request(), handle_client_accept(), handle_client_address_to_string(), handle_client_blacklist_reply(), handle_client_call_message(), handle_client_copy_lazy_prepare(), handle_client_evaluate(), handle_client_index_start(), handle_client_join(), handle_client_listen(), handle_client_redirect_to_service(), handle_client_start_search(), handle_collect(), handle_consume_ticket_message(), handle_create_message(), handle_dht_local_get(), handle_dht_local_monitor(), handle_dht_response(), handle_dns_request(), handle_gns2dns_result(), handle_issue_ticket_message(), handle_iteration_start(), handle_lookup(), handle_monitor_start(), handle_p2p_reply(), handle_peer_pull_reply(), handle_peer_push(), handle_phone_ring(), handle_raw_message(), handle_record_store(), handle_revoke_ticket_message(), handle_send_msg(), handle_set(), handle_stun(), handle_suggest(), handle_ticket_iteration_start(), handle_transport_notify_connect(), handle_validation_challenge(), handle_verify(), handle_watch(), heap_plugin_put(), http_common_dns_ip_lookup(), http_common_dns_reverse_lookup(), identity_cb(), iface_proc(), ifc_proc(), inbound_channel(), insert_hostlist(), insert_pending_message(), interface_proc(), iter_cb(), kce_generate(), kill_session(), listen_cb(), load_episode(), load_hostlist_file(), lookup_authz_cb(), lookup_hole_external(), lookup_ssl_httpd(), lower_rung(), mark_connection_unready(), move_to_pending(), mq_send(), new_stream_request(), notify_connect(), oidc_attr_collect(), parse_pattern(), peerinfo_list_iteration(), phone_event_handler(), print_peer_info(), process_ego_file(), process_external_ip(), process_parallel_lookup_result(), process_queue(), process_result(), queue(), queue_ready_task(), queue_send_msg(), read_index_list(), read_service_conf(), recursive_gns2dns_resolution(), refresh_block(), resolve_and_cache(), resolve_peer_address(), revoke_attrs_cb(), route_message(), route_packet(), RPS_sampler_get_n_rand_peers(), RPS_sampler_get_rand_peer_info(), run(), run_scan(), rvk_ticket_update(), sampler_notify_on_update(), scan_callback(), select_add(), server_add_address(), set_copy_cb(), setup_service(), setup_shared_secret_enc(), simple_session_add(), sock_read(), start_client(), start_dv_learn(), start_probe_ping_task(), store_skipped_key(), tcp_plugin_address_pretty_printer(), test_connection_ok(), ticket_iter(), try_cache(), try_connect_using_address(), try_connection_reversal(), try_open_exit(), udp_plugin_address_pretty_printer(), update_preference(), watch_cb(), and work().

◆ GNUNET_CONTAINER_DLL_insert_tail

#define GNUNET_CONTAINER_DLL_insert_tail (   head,
  tail,
  element 
)
Value:
do \
{ \
GNUNET_assert (((element)->prev == NULL) && ((head) != (element))); \
GNUNET_assert (((element)->next == NULL) && ((tail) != (element))); \
(element)->prev = (tail); \
(element)->next = NULL; \
if ((head) == NULL) \
(head) = element; \
else \
(tail)->next = element; \
(tail) = (element); \
} while (0)
static struct PendingResolutions * head
Head of list of pending resolution requests.
Definition: gnunet-ats.c:231
static struct PendingResolutions * tail
Tail of list of pending resolution requests.
Definition: gnunet-ats.c:236

Insert an element at the tail of a DLL.

Assumes that head, tail and element are structs with prev and next fields.

Parameters
headpointer to the head of the DLL
tailpointer to the tail of the DLL
elementelement to insert

Definition at line 2178 of file gnunet_container_lib.h.

Referenced by adaptive_queue_set_max_active(), add_entry(), add_setter_action(), add_to_lru(), assign_timeslot(), cache_lookup(), change_service(), change_state(), connection_ready(), connection_ready_cb(), create_session(), create_step(), do_transmit(), enforce_add_address(), exop_insert(), forward_overlay_connect(), GAS_ril_address_add(), GCCH_handle_local_data(), GCT_send(), GNUNET_ARM_request_service_list(), GNUNET_ARM_request_service_start(), GNUNET_ATS_reserve_bandwidth(), GNUNET_ATS_solver_logging_now(), GNUNET_ATS_TEST_logging_now(), GNUNET_CONTAINER_meta_data_insert(), GNUNET_DHT_put(), GNUNET_HELPER_send(), GNUNET_IDENTITY_create(), GNUNET_IDENTITY_delete(), GNUNET_IDENTITY_get(), GNUNET_IDENTITY_rename(), GNUNET_IDENTITY_set(), GNUNET_MQ_dll_insert_tail(), GNUNET_MQ_send(), GNUNET_NAMECACHE_block_cache(), GNUNET_NAMECACHE_lookup_block(), GNUNET_NAMESTORE_records_lookup(), GNUNET_NAMESTORE_records_store(), GNUNET_NAMESTORE_zone_iteration_start(), GNUNET_NAMESTORE_zone_to_name(), GNUNET_OP_add(), GNUNET_PEERINFO_iterate(), GNUNET_PEERSTORE_iterate(), GNUNET_PEERSTORE_store(), GNUNET_RECLAIM_attribute_delete(), GNUNET_RECLAIM_attribute_store(), GNUNET_RECLAIM_get_attributes_start(), GNUNET_RECLAIM_ticket_consume(), GNUNET_RECLAIM_ticket_issue(), GNUNET_RECLAIM_ticket_iteration_start(), GNUNET_RECLAIM_ticket_revoke(), GNUNET_RESOLVER_hostname_get(), GNUNET_RESOLVER_ip_get(), GNUNET_SIGNAL_handler_install(), GNUNET_STATISTICS_get(), GNUNET_TESTBED_mark_host_registered_at_(), GNUNET_TESTBED_peer_register_(), GNUNET_TESTBED_SD_add_data_(), GNUNET_VPN_redirect_to_ip(), GNUNET_VPN_redirect_to_peer(), GSC_SESSIONS_queue_request(), GSC_SESSIONS_transmit(), GST_connection_pool_get_handle(), GST_manipulation_send(), GST_neighbour_get_connection(), GST_neighbours_send(), GST_process_next_focc(), GST_queue_host_registration(), handle_barrier_init(), handle_barrier_wait(), handle_client_mutation(), handle_core_connect(), handle_cred_collection_cb(), handle_dht_result(), handle_gns_cname_result(), handle_gns_resolution_result(), handle_link_controllers(), handle_manage_peer_service(), handle_monitor_event(), handle_overlay_connect(), handle_peer_create(), handle_peer_destroy(), handle_peer_get_config(), handle_peer_reconfigure(), handle_peer_start(), handle_peer_stop(), handle_remote_overlay_connect(), handle_shutdown_peers(), handle_verify(), http_client_plugin_send(), http_server_plugin_send(), id_connect_cb(), init_egos(), iteration_start(), list_ego(), load_episode(), maint_child_death(), make_oplist_entry(), mqm_execute(), nfa_add_alternation(), nfa_add_concatenation(), nfa_add_label(), nfa_add_plus_op(), nfa_add_question_op(), nfa_add_star_op(), overlay_link_completed(), process_queue(), process_result(), put_gns_record(), queue(), record(), recursive_gns2dns_resolution(), recursive_pkey_resolution(), request_peers(), ril_get_agent(), rq_add(), schedule_missing_requests(), schedule_watch_request(), send_with_fragmentation(), start_resolver_lookup(), tcp_plugin_send(), timeout_request(), unix_plugin_send(), and update_tslots().

◆ GNUNET_CONTAINER_DLL_insert_after

#define GNUNET_CONTAINER_DLL_insert_after (   head,
  tail,
  other,
  element 
)
Value:
do \
{ \
GNUNET_assert (((element)->prev == NULL) && ((head) != (element))); \
GNUNET_assert (((element)->next == NULL) && ((tail) != (element))); \
(element)->prev = (other); \
if (NULL == other) \
{ \
(element)->next = (head); \
(head) = (element); \
} \
else \
{ \
(element)->next = (other)->next; \
(other)->next = (element); \
} \
if (NULL == (element)->next) \
(tail) = (element); \
else \
(element)->next->prev = (element); \
} while (0)
static struct PendingResolutions * head
Head of list of pending resolution requests.
Definition: gnunet-ats.c:231
static struct PendingResolutions * tail
Tail of list of pending resolution requests.
Definition: gnunet-ats.c:236

Insert an element into a DLL after the given other element.

Insert at the head if the other element is NULL.

Parameters
headpointer to the head of the DLL
tailpointer to the tail of the DLL
otherprior element, NULL for insertion at head of DLL
elementelement to insert

Definition at line 2203 of file gnunet_container_lib.h.

Referenced by do_transmit(), GNUNET_CONTAINER_meta_data_insert(), GNUNET_FS_queue_(), GNUNET_SCHEDULER_add_at_with_priority(), GSC_SESSIONS_transmit(), GSF_peer_transmit_(), lower_rung(), make_queue_entry(), process_migration_content(), route_message(), start_job(), and stop_job().

◆ GNUNET_CONTAINER_DLL_insert_before

#define GNUNET_CONTAINER_DLL_insert_before (   head,
  tail,
  other,
  element 
)
Value:
do \
{ \
GNUNET_assert (((element)->prev == NULL) && ((head) != (element))); \
GNUNET_assert (((element)->next == NULL) && ((tail) != (element))); \
(element)->next = (other); \
if (NULL == other) \
{ \
(element)->prev = (tail); \
(tail) = (element); \
} \
else \
{ \
(element)->prev = (other)->prev; \
(other)->prev = (element); \
} \
if (NULL == (element)->prev) \
(head) = (element); \
else \
(element)->prev->next = (element); \
} while (0)
static struct PendingResolutions * head
Head of list of pending resolution requests.
Definition: gnunet-ats.c:231
static struct PendingResolutions * tail
Tail of list of pending resolution requests.
Definition: gnunet-ats.c:236

Insert an element into a DLL before the given other element.

Insert at the tail if the other element is NULL.

Parameters
headpointer to the head of the DLL
tailpointer to the tail of the DLL
otherprior element, NULL for insertion at head of DLL
elementelement to insert

Definition at line 2236 of file gnunet_container_lib.h.

Referenced by state_add_transition().

◆ GNUNET_CONTAINER_DLL_remove

#define GNUNET_CONTAINER_DLL_remove (   head,
  tail,
  element 
)
Value:
do \
{ \
GNUNET_assert (((element)->prev != NULL) || ((head) == (element))); \
GNUNET_assert (((element)->next != NULL) || ((tail) == (element))); \
if ((element)->prev == NULL) \
(head) = (element)->next; \
else \
(element)->prev->next = (element)->next; \
if ((element)->next == NULL) \
(tail) = (element)->prev; \
else \
(element)->next->prev = (element)->prev; \
(element)->next = NULL; \
(element)->prev = NULL; \
} while (0)
static struct PendingResolutions * head
Head of list of pending resolution requests.
Definition: gnunet-ats.c:231
static struct PendingResolutions * tail
Tail of list of pending resolution requests.
Definition: gnunet-ats.c:236

Remove an element from a DLL.

Assumes that head, tail and element point to structs with prev and next fields.

Using the head or tail pointer as the element argument does NOT work with this macro. Make sure to store head/tail in another pointer and use it to remove the head or tail of the list.

Parameters
headpointer to the head of the DLL
tailpointer to the tail of the DLL
elementelement to remove

Definition at line 2273 of file gnunet_container_lib.h.

Referenced by _GSS_operation_destroy(), abort_all_requests(), abort_parallel_lookups(), append_port(), assign_timeslot(), ats_perf_mon_cb(), attr_iter_finished(), attr_store_cont(), automaton_merge_states(), automaton_remove_state(), bi_destroy(), cache_lookup(), cadet_channel_end_cb(), cancel_aps(), cancel_pending_req(), cancel_request(), cancel_wrappers(), channel_destroy(), churn_cb(), clean_up_channel(), cleanup(), cleanup_adh(), cleanup_client(), cleanup_cth(), cleanup_delegation_set(), cleanup_handle(), cleanup_mctx(), cleanup_ncc(), cleanup_occ(), cleanup_prc(), cleanup_rocc(), cleanup_rvk(), cleanup_s5r(), cleanup_task(), cleanup_tslots(), client_delete_session(), client_disconnect_cb(), client_request_destroy(), client_send_cb(), close_monitor_connections(), conclude_autoconfig_request(), connect_cb(), connect_probe_continuation(), connection_ready(), connection_ready_cb(), consume_result_cb(), core_env_sent_cb(), data_sent_cb(), default_reply_handle(), delete_migration_block(), delete_networks(), delete_skipped_key(), delete_value(), dequeue(), destroy_cli_ctx(), destroy_direction(), destroy_pooled_connection(), dfa_compress_paths(), dht_put_continuation(), dht_put_monitor_continuation(), discard_all_from_rung_tail(), discard_oldest_mc(), disconnect(), disconnect_cb(), dns_pre_request_handler(), do_accept(), do_read(), do_reconnect(), do_reject(), do_restart_typemap_message(), do_shutdown(), do_transmit(), done(), dump_pc(), end(), enforce_del_address(), execute_delayed_mutations(), exop_check(), find_qe(), finish_cache_operation(), force_reconnect(), free_active_lookup(), free_address_list_entry(), free_cache_entry(), free_channel_client(), free_channel_state(), free_destination_entry(), free_download_context(), free_entry(), free_fragment_message(), free_hosts_entry(), free_incoming_request(), free_it(), free_lal(), free_macendpoint(), free_neighbour(), free_proto_queue(), free_qe(), free_queue(), free_queue_entry(), free_records(), free_service(), free_store_activity(), free_tmps(), free_tree(), free_virtual_link(), free_ze(), GAS_preference_client_disconnect(), GAS_preference_done(), GAS_proportional_address_delete(), GAS_ril_address_delete(), GCCH_handle_channel_plaintext_data(), GCCH_handle_local_ack(), GCP_path_entry_remove(), GCP_request_mq_cancel(), GCT_connection_lost(), GCT_send_cancel(), GN_external_ipv4_monitor_stop(), GNS_interceptor_done(), GNS_resolver_done(), GNS_resolver_lookup_cancel(), GNUNET_ARM_disconnect(), GNUNET_ARM_operation_cancel(), GNUNET_ATS_performance_done(), GNUNET_ATS_performance_list_addresses_cancel(), GNUNET_ATS_solver_generate_preferences_stop(), GNUNET_ATS_solver_generate_property_stop(), GNUNET_ATS_solver_logging_free(), GNUNET_ATS_solver_logging_write_to_disk(), GNUNET_ATS_TEST_generate_preferences_stop(), GNUNET_ATS_TEST_generate_traffic_stop(), GNUNET_ATS_TEST_logging_clean_up(), GNUNET_CONNECTION_destroy(), GNUNET_CONTAINER_meta_data_clear(), GNUNET_CONTAINER_meta_data_delete(), GNUNET_CONTAINER_meta_data_destroy(), GNUNET_CONVERSATION_caller_hang_up(), GNUNET_CREDENTIAL_request_cancel(), GNUNET_CURL_job_cancel(), GNUNET_DEFRAGMENT_context_destroy(), GNUNET_DHT_monitor_stop(), GNUNET_DHT_put_cancel(), GNUNET_DNSSTUB_stop(), GNUNET_FS_dequeue_(), GNUNET_FS_download_signal_suspend_(), GNUNET_FS_download_stop(), GNUNET_FS_end_top(), GNUNET_FS_indexing_do_unindex(), GNUNET_FS_indexing_done(), GNUNET_FS_share_tree_free(), GNUNET_FS_stop_probe_ping_task_(), GNUNET_GNS_lookup_cancel(), GNUNET_HELPER_destroy(), GNUNET_HELPER_kill(), GNUNET_HELPER_send_cancel(), GNUNET_HELPER_wait(), GNUNET_IDENTITY_disconnect(), GNUNET_MQ_destroy(), GNUNET_MQ_destroy_notify_cancel(), GNUNET_MQ_dll_remove(), GNUNET_MQ_send_cancel(), GNUNET_MQ_unsent_head(), GNUNET_MYSQL_context_destroy(), GNUNET_NAMECACHE_cancel(), GNUNET_NAMECACHE_disconnect(), GNUNET_NAMESTORE_disconnect(), GNUNET_NAT_AUTO_test_stop(), GNUNET_NAT_test_stop(), GNUNET_notification_context_destroy(), GNUNET_PEERINFO_disconnect(), GNUNET_PEERINFO_iterate_cancel(), GNUNET_PEERSTORE_iterate_cancel(), GNUNET_PEERSTORE_store_cancel(), GNUNET_RECLAIM_cancel(), GNUNET_RESOLVER_disconnect(), GNUNET_RESOLVER_request_cancel(), GNUNET_RPS_request_cancel(), GNUNET_RPS_request_single_info_cancel(), GNUNET_SCHEDULER_cancel(), GNUNET_SCHEDULER_do_work(), GNUNET_SCHEDULER_shutdown(), GNUNET_SCHEDULER_task_ready(), GNUNET_SERVER_client_disconnect(), GNUNET_SERVER_connect_notify_cancel(), GNUNET_SERVER_destroy(), GNUNET_SERVER_disconnect_notify_cancel(), GNUNET_SERVICE_client_drop(), GNUNET_SIGNAL_handler_uninstall(), GNUNET_STATISTICS_destroy(), GNUNET_STATISTICS_get_cancel(), GNUNET_TESTBED_deregister_host_at_(), GNUNET_TESTBED_host_destroy(), GNUNET_TESTBED_peer_deregister_(), GNUNET_TESTBED_SD_add_data_(), GNUNET_TESTBED_SD_destroy_(), GNUNET_TRANSPORT_communicator_address_remove(), GNUNET_TRANSPORT_communicator_mq_del(), GNUNET_TRANSPORT_TESTING_connect_peers_cancel(), GNUNET_TRANSPORT_TESTING_stop_peer(), GNUNET_VPN_cancel_request(), GPI_plugins_load(), GPI_plugins_unload(), GSC_SESSIONS_dequeue_request(), GSC_SESSIONS_end(), GSC_SESSIONS_set_typemap(), GSF_cadet_query_cancel(), GSF_peer_disconnect_handler(), GSF_push_stop_(), GST_blacklist_test_cancel(), GST_cleanup_focc(), GST_clear_fopcq(), GST_connection_pool_destroy(), GST_connection_pool_get_handle(), GST_connection_pool_get_handle_done(), GST_forwarded_operation_reply_relay(), GST_forwarded_operation_timeout(), GST_free_lcf(), GST_hello_modify_addresses(), GST_link_notify_disconnect(), GST_manipulation_peer_disconnect(), GST_manipulation_stop(), GST_neighbour_get_connection_cancel(), GST_plugins_load(), GST_plugins_unload(), handle_ack(), handle_address_change_notification(), handle_address_list(), handle_arm_result(), handle_attribute_result(), handle_client_accept(), handle_client_blacklist_reply(), handle_client_copy_lazy_connect(), handle_client_recv_ok(), handle_consume_ticket_result(), handle_copy_lazy(), handle_core_disconnect(), handle_delete_message(), handle_dht_local_monitor_stop(), handle_dns_response(), handle_end_iteration(), handle_gns2dns_ip(), handle_gns2dns_result(), handle_identity_result_code(), handle_identity_set_default(), handle_incoming_ack(), handle_iteration_stop(), handle_matching_ack(), handle_monitor_event(), handle_mq_destroy(), handle_phone_hangup(), handle_reservation_result(), handle_result(), handle_revoke_ticket_result(), handle_send_message_ack(), handle_set(), handle_success_response(), handle_suggest_cancel(), handle_ticket_iteration_stop(), handle_ticket_result(), handle_transport_notify_disconnect(), handle_use_ip(), hash_for_index_val(), helper_write(), hr_completion(), http_common_dns_ip_lookup_cb(), http_common_dns_reverse_lookup_cb(), impl_send_continue(), incoming_destroy(), info_cb(), insert_hostlist(), issue_ticket_result_cb(), kce_destroy(), kill_httpd(), kill_session_task(), kill_slave(), lcf_proc_task(), libgnunet_plugin_ats_proportional_done(), libgnunet_plugin_ats_ril_done(), libgnunet_plugin_transport_tcp_done(), libgnunet_plugin_transport_udp_done(), libgnunet_plugin_transport_unix_done(), list_ego(), lower_rung(), main(), manage_service_cb(), mark_connection_unready(), mhd_completed_cb(), mq_cancel(), mq_error_handler(), mqm_execute(), namecache_cache_continuation(), neighbour_connect_notify_task(), nfa_add_alternation(), nfa_add_concatenation(), nfa_add_plus_op(), nfa_add_question_op(), nfa_add_star_op(), notify_running(), notify_send_probe(), notify_starting(), notify_update(), op_result(), operation_timeout(), oprelease_overlay_configure_topology(), overlay_link_completed(), peer_connect_notify_cb(), peer_free(), peer_transmit(), phone_event_handler(), plugin_env_session_end(), process_external_ip(), process_lookup_result(), process_parallel_lookup_result(), process_peer_string(), process_queue(), process_result(), process_tickets(), progress_cb(), proto_read_kx(), put_gns_record(), queue_destroy(), reconnect(), REGEX_INTERNAL_automaton_destroy(), REGEX_INTERNAL_construct_nfa(), REGEX_INTERNAL_dfa_add_multi_strides(), remove_barrier(), remove_client_record(), remove_expired(), remove_pending_message(), remove_queue_entry(), remove_stream_request(), reply_to_dns(), request_peers(), reschedule_connect(), revoke_result_cb(), route_message(), RPS_sampler_request_cancel(), RPS_sampler_request_single_info_cancel(), rq_remove(), run_scan(), rvk_move_attr_cb(), sampler_get_rand_peer(), sampler_mod_get_rand_peer(), save(), save_hostlist_file(), schedule_action(), secret_destroy(), select_del(), select_write_cb(), send_ack_cb(), send_delayed(), send_delete_response(), send_lookup_response(), server_delete_session(), server_remove_address(), server_send_callback(), server_stop_report_addresses(), set_operation_destroy(), shutdown_op(), shutdown_peers_reply_cb(), shutdown_task(), simple_session_del(), start_dv_learn(), start_job(), state_remove_transition(), stop_broadcast(), stop_job(), stun_ip_timeout(), suggest_start_cb(), switch_address_bl_check_cont(), tcp_plugin_disconnect_session(), teardown_service(), ticket_iter_cb(), timeout_request(), transmit_address_to_client(), transmit_delayed_now(), transmit_pending(), transport_addr_to_str_cb(), try_cache(), try_connect(), try_open_exit(), try_send_normal_payload(), try_transmission(), try_transmission_to_peer(), unix_plugin_do_write(), unix_plugin_session_disconnect(), update_tickets(), update_tslots(), wlan_plugin_disconnect_session(), work(), and zone_iteration_done_client_continue().

◆ GNUNET_CONTAINER_MDLL_insert

#define GNUNET_CONTAINER_MDLL_insert (   mdll,
  head,
  tail,
  element 
)
Value:
do \
{ \
GNUNET_assert (((element)->prev_##mdll == NULL) && ((head) != (element))); \
GNUNET_assert (((element)->next_##mdll == NULL) && ((tail) != (element))); \
(element)->next_##mdll = (head); \
(element)->prev_##mdll = NULL; \
if ((tail) == NULL) \
(tail) = element; \
else \
(head)->prev_##mdll = element; \
(head) = (element); \
} while (0)
static struct PendingResolutions * head
Head of list of pending resolution requests.
Definition: gnunet-ats.c:231
static struct PendingResolutions * tail
Tail of list of pending resolution requests.
Definition: gnunet-ats.c:236

Insert an element at the head of a MDLL.

Assumes that head, tail and element are structs with prev and next fields.

Parameters
mdllsuffix name for the next and prev pointers in the element
headpointer to the head of the MDLL
tailpointer to the tail of the MDLL
elementelement to insert

Definition at line 2304 of file gnunet_container_lib.h.

Referenced by forward_dv_box(), fragment_message(), GSF_plan_add_(), handle_add_queue_message(), handle_client_send(), learn_dv_path(), merge_pr(), nfa_closure_set_create(), prepare_pending_acknowledgement(), and reliability_box_message().

◆ GNUNET_CONTAINER_MDLL_insert_tail

#define GNUNET_CONTAINER_MDLL_insert_tail (   mdll,
  head,
  tail,
  element 
)
Value:
do \
{ \
GNUNET_assert (((element)->prev_##mdll == NULL) && ((head) != (element))); \
GNUNET_assert (((element)->next_##mdll == NULL) && ((tail) != (element))); \
(element)->prev_##mdll = (tail); \
(element)->next_##mdll = NULL; \
if ((head) == NULL) \
(head) = element; \
else \
(tail)->next_##mdll = element; \
(tail) = (element); \
} while (0)
static struct PendingResolutions * head
Head of list of pending resolution requests.
Definition: gnunet-ats.c:231
static struct PendingResolutions * tail
Tail of list of pending resolution requests.
Definition: gnunet-ats.c:236

Insert an element at the tail of a MDLL.

Assumes that head, tail and element are structs with prev and next fields.

Parameters
mdllsuffix name for the next and prev pointers in the element
headpointer to the head of the MDLL
tailpointer to the tail of the MDLL
elementelement to insert

Definition at line 2329 of file gnunet_container_lib.h.

Referenced by fragment_message(), and nfa_closure_set_create().

◆ GNUNET_CONTAINER_MDLL_insert_after

#define GNUNET_CONTAINER_MDLL_insert_after (   mdll,
  head,
  tail,
  other,
  element 
)
Value:
do \
{ \
GNUNET_assert (((element)->prev_##mdll == NULL) && ((head) != (element))); \
GNUNET_assert (((element)->next_##mdll == NULL) && ((tail) != (element))); \
(element)->prev_##mdll = (other); \
if (NULL == other) \
{ \
(element)->next_##mdll = (head); \
(head) = (element); \
} \
else \
{ \
(element)->next_##mdll = (other)->next_##mdll; \
(other)->next_##mdll = (element); \
} \
if (NULL == (element)->next_##mdll) \
(tail) = (element); \
else \
(element)->next_##mdll->prev_##mdll = (element); \
} while (0)
static struct PendingResolutions * head
Head of list of pending resolution requests.
Definition: gnunet-ats.c:231
static struct PendingResolutions * tail
Tail of list of pending resolution requests.
Definition: gnunet-ats.c:236

Insert an element into a MDLL after the given other element.

Insert at the head if the other element is NULL.

Parameters
mdllsuffix name for the next and prev pointers in the element
headpointer to the head of the MDLL
tailpointer to the tail of the MDLL
otherprior element, NULL for insertion at head of MDLL
elementelement to insert

Definition at line 2355 of file gnunet_container_lib.h.

Referenced by update_pm_next_attempt().

◆ GNUNET_CONTAINER_MDLL_insert_before

#define GNUNET_CONTAINER_MDLL_insert_before (   mdll,
  head,
  tail,
  other,
  element 
)
Value:
do \
{ \
GNUNET_assert (((element)->prev_##mdll == NULL) && ((head) != (element))); \
GNUNET_assert (((element)->next_##mdll == NULL) && ((tail) != (element))); \
(element)->next_##mdll = (other); \
if (NULL == other) \
{ \
(element)->prev = (tail); \
(tail) = (element); \
} \
else \
{ \
(element)->prev_##mdll = (other)->prev_##mdll; \
(other)->prev_##mdll = (element); \
} \
if (NULL == (element)->prev_##mdll) \
(head) = (element); \
else \
(element)->prev_##mdll->next_##mdll = (element); \
} while (0)
static struct PendingResolutions * head
Head of list of pending resolution requests.
Definition: gnunet-ats.c:231
static struct PendingResolutions * tail
Tail of list of pending resolution requests.
Definition: gnunet-ats.c:236

Insert an element into a MDLL before the given other element.

Insert at the tail if the other element is NULL.

Parameters
mdllsuffix name for the next and prev pointers in the element
headpointer to the head of the MDLL
tailpointer to the tail of the MDLL
otherprior element, NULL for insertion at head of MDLL
elementelement to insert

Definition at line 2389 of file gnunet_container_lib.h.

◆ GNUNET_CONTAINER_MDLL_remove

#define GNUNET_CONTAINER_MDLL_remove (   mdll,
  head,
  tail,
  element 
)
Value:
do \
{ \
GNUNET_assert (((element)->prev_##mdll != NULL) || ((head) == (element))); \
GNUNET_assert (((element)->next_##mdll != NULL) || ((tail) == (element))); \
if ((element)->prev_##mdll == NULL) \
(head) = (element)->next_##mdll; \
else \
(element)->prev_##mdll->next_##mdll = (element)->next_##mdll; \
if ((element)->next_##mdll == NULL) \
(tail) = (element)->prev_##mdll; \
else \
(element)->next_##mdll->prev_##mdll = (element)->prev_##mdll; \
(element)->next_##mdll = NULL; \
(element)->prev_##mdll = NULL; \
} while (0)
static struct PendingResolutions * head
Head of list of pending resolution requests.
Definition: gnunet-ats.c:231
static struct PendingResolutions * tail
Tail of list of pending resolution requests.
Definition: gnunet-ats.c:236

Remove an element from a MDLL.

Assumes that head, tail and element are structs with prev and next fields.

Parameters
mdllsuffix name for the next and prev pointers in the element
headpointer to the head of the MDLL
tailpointer to the tail of the MDLL
elementelement to remove

Definition at line 2423 of file gnunet_container_lib.h.

Referenced by client_disconnect_cb(), completed_pending_message(), fragment_message(), free_distance_vector_hop(), free_fragment_tree(), free_pending_acknowledgement(), free_pending_message(), free_queue(), GSF_plan_notify_peer_disconnect_(), GSF_plan_notify_request_done_(), learn_dv_path(), nfa_closure_set_create(), and update_pm_next_attempt().