diff --git a/api/latest b/api/latest index 8f93ba592d6..1661878d873 120000 --- a/api/latest +++ b/api/latest @@ -1 +1 @@ -v1.16 \ No newline at end of file +v1.17 \ No newline at end of file diff --git a/api/v1.17/html/Architecture.png b/api/v1.17/html/Architecture.png new file mode 100644 index 00000000000..dd09d211c69 Binary files /dev/null and b/api/v1.17/html/Architecture.png differ diff --git a/api/v1.17/html/UCX_Logo_80x80.png b/api/v1.17/html/UCX_Logo_80x80.png new file mode 100644 index 00000000000..1a60fd766dd Binary files /dev/null and b/api/v1.17/html/UCX_Logo_80x80.png differ diff --git a/api/v1.17/html/annotated.html b/api/v1.17/html/annotated.html new file mode 100644 index 00000000000..d932ba4a8da --- /dev/null +++ b/api/v1.17/html/annotated.html @@ -0,0 +1,193 @@ + + + + + + + +UCX: Data Structures + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Data Structures
+
+
+
Here are the data structures with brief descriptions:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Cucp_am_handler_paramActive Message handler parameters passed to ucp_worker_set_am_recv_handler routine
 Cucp_am_recv_paramOperation parameters provided in ucp_am_recv_callback_t callback
 Cucp_conn_request_attrUCP listener's connection request attributes
 Cucp_context_attrContext attributes
 Cucp_datatype_attrUCP datatype attributes
 Cucp_dt_iovStructure for scatter-gather I/O
 Cucp_ep_attrUCP endpoint attributes
 Cucp_ep_evaluate_perf_attr_tUCP endpoint performance evaluation result attributes
 Cucp_ep_evaluate_perf_param_tUCP endpoint performance evaluation request attributes
 Cucp_ep_paramsTuning parameters for the UCP endpoint
 Cucp_err_handlerUCP endpoint error handling context
 Cucp_generic_dt_opsUCP generic data type descriptor
 Cucp_lib_attrLib attributes
 Cucp_listener_accept_handler
 Cucp_listener_attrUCP listener attributes
 Cucp_listener_conn_handlerUCP callback to handle the connection request in a client-server connection establishment flow
 Cucp_listener_paramsParameters for a UCP listener object
 Cucp_mem_advise_paramsTuning parameters for the UCP memory advice
 Cucp_mem_attrAttributes of the UCP Memory handle, filled by ucp_mem_query function
 Cucp_mem_map_paramsTuning parameters for the UCP memory mapping
 Cucp_memh_buffer_release_paramsMemory handle release parameters passed to ucp_memh_buffer_release
 Cucp_memh_pack_paramsMemory handle pack parameters passed to ucp_memh_pack
 Cucp_paramsTuning parameters for UCP library
 Cucp_request_attr_tAttributes of a particular request
 Cucp_request_param_tOperation parameters passed to ucp_tag_send_nbx, ucp_tag_send_sync_nbx, ucp_tag_recv_nbx, ucp_put_nbx, ucp_get_nbx, ucp_am_send_nbx and ucp_am_recv_data_nbx
 Cucp_request_param_t.cb
 Cucp_request_param_t.recv_info
 Cucp_rkey_compare_paramsTuning parameters for the comparison function ucp_rkey_compare
 Cucp_stream_poll_epOutput parameter of ucp_stream_worker_poll function
 Cucp_tag_recv_infoUCP receive information descriptor
 Cucp_transport_entry_tThe ucp_transports_t and ucp_transport_entry_t structures are used when ucp_ep_query is called to return an array of transport name and device name pairs that are used by an active endpoint
 Cucp_transports_tStructure containing an array of transport layers and device names used by an endpoint
 Cucp_worker_address_attrUCP worker address attributes
 Cucp_worker_attrUCP worker attributes
 Cucp_worker_paramsTuning parameters for the UCP worker
 Cucs_callbackq
 Cucs_callbackq_elem
 Cucs_config_allow_list_t
 Cucs_log_component_config
 Cucs_sock_addr
 Cuct_allocated_memoryDescribes a memory allocated by UCT
 Cuct_cm_attrConnection manager attributes, capabilities and limitations
 Cuct_cm_ep_client_connect_argsArguments to the client's connect callback
 Cuct_cm_ep_priv_data_pack_argsArguments to the client-server private data pack callback
 Cuct_cm_ep_resolve_argsArguments to the client-server resolved callback
 Cuct_cm_ep_server_conn_notify_argsArguments to the server's notify callback
 Cuct_cm_listener_conn_request_argsArguments to the listener's connection request callback
 Cuct_cm_remote_dataData received from the remote peer
 Cuct_completionCompletion handle
 Cuct_component_attrUCT component attributes
 Cuct_ep_connect_paramsParameters for connecting a UCT endpoint by uct_ep_connect
 Cuct_ep_paramsParameters for creating a UCT endpoint by uct_ep_create
 Cuct_iface_attrInterface attributes: capabilities and limitations
 Cuct_iface_attr.cap
 Cuct_iface_attr.cap.am
 Cuct_iface_attr.cap.atomic32
 Cuct_iface_attr.cap.atomic64
 Cuct_iface_attr.cap.get
 Cuct_iface_attr.cap.put
 Cuct_iface_attr.cap.tag
 Cuct_iface_attr.cap.tag.eager
 Cuct_iface_attr.cap.tag.recv
 Cuct_iface_attr.cap.tag.rndv
 Cuct_iface_paramsParameters used for interface creation
 Cuct_iface_params.mode
 Cuct_iface_params.mode.device
 Cuct_iface_params.mode.sockaddr
 Cuct_iovStructure for scatter-gather I/O
 Cuct_listener_attrUCT listener attributes, capabilities and limitations
 Cuct_listener_paramsParameters for creating a listener object uct_listener_h by uct_listener_create
 Cuct_md_attrMemory domain attributes
 Cuct_md_attr.cap
 Cuct_md_mem_attrMemory domain attributes
 Cuct_md_resource_descMemory domain resource descriptor
 Cuct_mem_alloc_params_tParameters for allocating memory using uct_mem_alloc
 Cuct_mem_alloc_params_t.mds
 Cuct_pending_reqPending request
 Cuct_ppn_bandwidth
 Cuct_rkey_bundleRemote key with its type
 Cuct_tag_contextPosted tag context
 Cuct_tl_resource_descCommunication resource descriptor
+
+
+
+ + + + diff --git a/api/v1.17/html/annotated_dup.js b/api/v1.17/html/annotated_dup.js new file mode 100644 index 00000000000..e460901b508 --- /dev/null +++ b/api/v1.17/html/annotated_dup.js @@ -0,0 +1,84 @@ +var annotated_dup = +[ + [ "ucp_am_handler_param", "group___u_c_p___w_o_r_k_e_r.html#structucp__am__handler__param", "group___u_c_p___w_o_r_k_e_r_structucp__am__handler__param" ], + [ "ucp_am_recv_param", "group___u_c_p___w_o_r_k_e_r.html#structucp__am__recv__param", "group___u_c_p___w_o_r_k_e_r_structucp__am__recv__param" ], + [ "ucp_conn_request_attr", "group___u_c_p___w_o_r_k_e_r.html#structucp__conn__request__attr", "group___u_c_p___w_o_r_k_e_r_structucp__conn__request__attr" ], + [ "ucp_context_attr", "group___u_c_p___c_o_n_t_e_x_t.html#structucp__context__attr", "group___u_c_p___c_o_n_t_e_x_t_structucp__context__attr" ], + [ "ucp_datatype_attr", "group___u_c_p___d_a_t_a_t_y_p_e.html#structucp__datatype__attr", "group___u_c_p___d_a_t_a_t_y_p_e_structucp__datatype__attr" ], + [ "ucp_dt_iov", "group___u_c_p___d_a_t_a_t_y_p_e.html#structucp__dt__iov", "group___u_c_p___d_a_t_a_t_y_p_e_structucp__dt__iov" ], + [ "ucp_ep_attr", "group___u_c_p___e_n_d_p_o_i_n_t.html#structucp__ep__attr", "group___u_c_p___e_n_d_p_o_i_n_t_structucp__ep__attr" ], + [ "ucp_ep_evaluate_perf_attr_t", "group___u_c_p___e_n_d_p_o_i_n_t.html#structucp__ep__evaluate__perf__attr__t", "group___u_c_p___e_n_d_p_o_i_n_t_structucp__ep__evaluate__perf__attr__t" ], + [ "ucp_ep_evaluate_perf_param_t", "group___u_c_p___e_n_d_p_o_i_n_t.html#structucp__ep__evaluate__perf__param__t", "group___u_c_p___e_n_d_p_o_i_n_t_structucp__ep__evaluate__perf__param__t" ], + [ "ucp_ep_params", "group___u_c_p___e_n_d_p_o_i_n_t.html#structucp__ep__params", "group___u_c_p___e_n_d_p_o_i_n_t_structucp__ep__params" ], + [ "ucp_err_handler", "group___u_c_p___c_o_m_m.html#structucp__err__handler", "group___u_c_p___c_o_m_m_structucp__err__handler" ], + [ "ucp_generic_dt_ops", "structucp__generic__dt__ops.html", "structucp__generic__dt__ops" ], + [ "ucp_lib_attr", "group___u_c_p___c_o_n_t_e_x_t.html#structucp__lib__attr", "group___u_c_p___c_o_n_t_e_x_t_structucp__lib__attr" ], + [ "ucp_listener_accept_handler", "group___u_c_p___w_o_r_k_e_r.html#structucp__listener__accept__handler", "group___u_c_p___w_o_r_k_e_r_structucp__listener__accept__handler" ], + [ "ucp_listener_attr", "group___u_c_p___w_o_r_k_e_r.html#structucp__listener__attr", "group___u_c_p___w_o_r_k_e_r_structucp__listener__attr" ], + [ "ucp_listener_conn_handler", "group___u_c_p___w_o_r_k_e_r.html#structucp__listener__conn__handler", "group___u_c_p___w_o_r_k_e_r_structucp__listener__conn__handler" ], + [ "ucp_listener_params", "group___u_c_p___w_o_r_k_e_r.html#structucp__listener__params", "group___u_c_p___w_o_r_k_e_r_structucp__listener__params" ], + [ "ucp_mem_advise_params", "group___u_c_p___m_e_m.html#structucp__mem__advise__params", "group___u_c_p___m_e_m_structucp__mem__advise__params" ], + [ "ucp_mem_attr", "group___u_c_p___m_e_m.html#structucp__mem__attr", "group___u_c_p___m_e_m_structucp__mem__attr" ], + [ "ucp_mem_map_params", "group___u_c_p___m_e_m.html#structucp__mem__map__params", "group___u_c_p___m_e_m_structucp__mem__map__params" ], + [ "ucp_memh_buffer_release_params", "group___u_c_p___m_e_m.html#structucp__memh__buffer__release__params", "group___u_c_p___m_e_m_structucp__memh__buffer__release__params" ], + [ "ucp_memh_pack_params", "group___u_c_p___m_e_m.html#structucp__memh__pack__params", "group___u_c_p___m_e_m_structucp__memh__pack__params" ], + [ "ucp_params", "group___u_c_p___c_o_n_f_i_g.html#structucp__params", "group___u_c_p___c_o_n_f_i_g_structucp__params" ], + [ "ucp_request_attr_t", "group___u_c_p___c_o_m_m.html#structucp__request__attr__t", "group___u_c_p___c_o_m_m_structucp__request__attr__t" ], + [ "ucp_request_param_t", "group___u_c_p___c_o_n_t_e_x_t.html#structucp__request__param__t", "group___u_c_p___c_o_n_t_e_x_t_structucp__request__param__t" ], + [ "ucp_request_param_t.cb", "group___u_c_p___c_o_n_t_e_x_t.html#unionucp__request__param__t_8cb", "group___u_c_p___c_o_n_t_e_x_t_unionucp__request__param__t_8cb" ], + [ "ucp_request_param_t.recv_info", "group___u_c_p___c_o_n_t_e_x_t.html#unionucp__request__param__t_8recv__info", "group___u_c_p___c_o_n_t_e_x_t_unionucp__request__param__t_8recv__info" ], + [ "ucp_rkey_compare_params", "group___u_c_p___m_e_m.html#structucp__rkey__compare__params", "group___u_c_p___m_e_m_structucp__rkey__compare__params" ], + [ "ucp_stream_poll_ep", "group___u_c_p___e_n_d_p_o_i_n_t.html#structucp__stream__poll__ep", "group___u_c_p___e_n_d_p_o_i_n_t_structucp__stream__poll__ep" ], + [ "ucp_tag_recv_info", "group___u_c_p___c_o_n_t_e_x_t.html#structucp__tag__recv__info", "group___u_c_p___c_o_n_t_e_x_t_structucp__tag__recv__info" ], + [ "ucp_transport_entry_t", "group___u_c_p___e_n_d_p_o_i_n_t.html#structucp__transport__entry__t", "group___u_c_p___e_n_d_p_o_i_n_t_structucp__transport__entry__t" ], + [ "ucp_transports_t", "group___u_c_p___e_n_d_p_o_i_n_t.html#structucp__transports__t", "group___u_c_p___e_n_d_p_o_i_n_t_structucp__transports__t" ], + [ "ucp_worker_address_attr", "group___u_c_p___w_o_r_k_e_r.html#structucp__worker__address__attr", "group___u_c_p___w_o_r_k_e_r_structucp__worker__address__attr" ], + [ "ucp_worker_attr", "group___u_c_p___w_o_r_k_e_r.html#structucp__worker__attr", "group___u_c_p___w_o_r_k_e_r_structucp__worker__attr" ], + [ "ucp_worker_params", "group___u_c_p___w_o_r_k_e_r.html#structucp__worker__params", "group___u_c_p___w_o_r_k_e_r_structucp__worker__params" ], + [ "ucs_callbackq", "namespace_3global_scope_4.html#structucs__callbackq", "namespace_3global_scope_4_structucs__callbackq" ], + [ "ucs_callbackq_elem", "namespace_3global_scope_4.html#structucs__callbackq__elem", "namespace_3global_scope_4_structucs__callbackq__elem" ], + [ "ucs_config_allow_list_t", "namespace_3global_scope_4.html#structucs__config__allow__list__t", "namespace_3global_scope_4_structucs__config__allow__list__t" ], + [ "ucs_log_component_config", "namespace_3global_scope_4.html#structucs__log__component__config", "namespace_3global_scope_4_structucs__log__component__config" ], + [ "ucs_sock_addr", "group___u_c_s___r_e_s_o_u_r_c_e.html#structucs__sock__addr", "group___u_c_s___r_e_s_o_u_r_c_e_structucs__sock__addr" ], + [ "uct_allocated_memory", "group___u_c_t___m_d.html#structuct__allocated__memory", "group___u_c_t___m_d_structuct__allocated__memory" ], + [ "uct_cm_attr", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__cm__attr", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__attr" ], + [ "uct_cm_ep_client_connect_args", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__cm__ep__client__connect__args", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__ep__client__connect__args" ], + [ "uct_cm_ep_priv_data_pack_args", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__cm__ep__priv__data__pack__args", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__ep__priv__data__pack__args" ], + [ "uct_cm_ep_resolve_args", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__cm__ep__resolve__args", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__ep__resolve__args" ], + [ "uct_cm_ep_server_conn_notify_args", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__cm__ep__server__conn__notify__args", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__ep__server__conn__notify__args" ], + [ "uct_cm_listener_conn_request_args", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__cm__listener__conn__request__args", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__listener__conn__request__args" ], + [ "uct_cm_remote_data", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__cm__remote__data", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__remote__data" ], + [ "uct_completion", "group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__completion", "group___u_c_t___r_e_s_o_u_r_c_e_structuct__completion" ], + [ "uct_component_attr", "group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__component__attr", "group___u_c_t___r_e_s_o_u_r_c_e_structuct__component__attr" ], + [ "uct_ep_connect_params", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__ep__connect__params", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__ep__connect__params" ], + [ "uct_ep_params", "group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__ep__params", "group___u_c_t___r_e_s_o_u_r_c_e_structuct__ep__params" ], + [ "uct_iface_attr", "group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr", "group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr" ], + [ "uct_iface_attr.cap", "group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap", "group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap" ], + [ "uct_iface_attr.cap.am", "group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap_8am", "group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8am" ], + [ "uct_iface_attr.cap.atomic32", "group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap_8atomic32", "group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8atomic32" ], + [ "uct_iface_attr.cap.atomic64", "group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap_8atomic64", "group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8atomic64" ], + [ "uct_iface_attr.cap.get", "group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap_8get", "group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8get" ], + [ "uct_iface_attr.cap.put", "group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap_8put", "group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8put" ], + [ "uct_iface_attr.cap.tag", "group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap_8tag", "group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8tag" ], + [ "uct_iface_attr.cap.tag.eager", "group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap_8tag_8eager", "group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8tag_8eager" ], + [ "uct_iface_attr.cap.tag.recv", "group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap_8tag_8recv", "group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8tag_8recv" ], + [ "uct_iface_attr.cap.tag.rndv", "group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap_8tag_8rndv", "group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8tag_8rndv" ], + [ "uct_iface_params", "group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__params", "group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__params" ], + [ "uct_iface_params.mode", "group___u_c_t___r_e_s_o_u_r_c_e.html#unionuct__iface__params_8mode", "group___u_c_t___r_e_s_o_u_r_c_e_unionuct__iface__params_8mode" ], + [ "uct_iface_params.mode.device", "group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__params_8mode_8device", "group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__params_8mode_8device" ], + [ "uct_iface_params.mode.sockaddr", "group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__params_8mode_8sockaddr", "group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__params_8mode_8sockaddr" ], + [ "uct_iov", "group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iov", "group___u_c_t___r_e_s_o_u_r_c_e_structuct__iov" ], + [ "uct_listener_attr", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__listener__attr", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__listener__attr" ], + [ "uct_listener_params", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__listener__params", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__listener__params" ], + [ "uct_md_attr", "group___u_c_t___m_d.html#structuct__md__attr", "group___u_c_t___m_d_structuct__md__attr" ], + [ "uct_md_attr.cap", "group___u_c_t___m_d.html#structuct__md__attr_8cap", "group___u_c_t___m_d_structuct__md__attr_8cap" ], + [ "uct_md_mem_attr", "group___u_c_t___m_d.html#structuct__md__mem__attr", "group___u_c_t___m_d_structuct__md__mem__attr" ], + [ "uct_md_resource_desc", "group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__md__resource__desc", "group___u_c_t___r_e_s_o_u_r_c_e_structuct__md__resource__desc" ], + [ "uct_mem_alloc_params_t", "group___u_c_t___m_d.html#structuct__mem__alloc__params__t", "group___u_c_t___m_d_structuct__mem__alloc__params__t" ], + [ "uct_mem_alloc_params_t.mds", "group___u_c_t___m_d.html#structuct__mem__alloc__params__t_8mds", "group___u_c_t___m_d_structuct__mem__alloc__params__t_8mds" ], + [ "uct_pending_req", "group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__pending__req", "group___u_c_t___r_e_s_o_u_r_c_e_structuct__pending__req" ], + [ "uct_ppn_bandwidth", "namespace_3global_scope_4.html#structuct__ppn__bandwidth", "namespace_3global_scope_4_structuct__ppn__bandwidth" ], + [ "uct_rkey_bundle", "group___u_c_t___m_d.html#structuct__rkey__bundle", "group___u_c_t___m_d_structuct__rkey__bundle" ], + [ "uct_tag_context", "structuct__tag__context.html", "structuct__tag__context" ], + [ "uct_tl_resource_desc", "group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__tl__resource__desc", "group___u_c_t___r_e_s_o_u_r_c_e_structuct__tl__resource__desc" ] +]; \ No newline at end of file diff --git a/api/v1.17/html/async__fwd_8h_source.html b/api/v1.17/html/async__fwd_8h_source.html new file mode 100644 index 00000000000..d73348958dc --- /dev/null +++ b/api/v1.17/html/async__fwd_8h_source.html @@ -0,0 +1,177 @@ + + + + + + + +UCX: async_fwd.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
async_fwd.h
+
+
+
1
+
7#ifndef UCS_ASYNC_FWD_H
+
8#define UCS_ASYNC_FWD_H
+
9
+
10#include <ucs/config/types.h>
+
11#include <ucs/time/time_def.h>
+
12#include <ucs/type/status.h>
+
13#include <ucs/sys/event_set.h>
+
14
+
15BEGIN_C_DECLS
+
16
+
20#define UCS_ASYNC_PTHREAD_ID_NULL ((pthread_t)-1)
+
21
+
22
+
23typedef struct ucs_async_context ucs_async_context_t;
+
24
+
25
+
35typedef void (*ucs_async_event_cb_t)(int id, ucs_event_set_types_t events,
+
36 void *arg);
+
37
+
38
+
55ucs_status_t ucs_async_set_event_handler(ucs_async_mode_t mode, int event_fd,
+
56 ucs_event_set_types_t events,
+
57 ucs_async_event_cb_t cb, void *arg,
+
58 ucs_async_context_t *async);
+
59
+
60
+
76ucs_status_t ucs_async_add_timer(ucs_async_mode_t mode, ucs_time_t interval,
+
77 ucs_async_event_cb_t cb, void *arg,
+
78 ucs_async_context_t *async, int *timer_id_p);
+
79
+
80
+ +
95
+
96
+
107ucs_status_t ucs_async_modify_handler(int fd, ucs_event_set_types_t events);
+
108
+
109
+ +
124 ucs_async_context_t **async_p);
+
125
+
126
+
136void ucs_async_context_destroy(ucs_async_context_t *async);
+
137
+
138
+
146void ucs_async_poll(ucs_async_context_t *async);
+
147
+
148
+
149void __ucs_async_poll_missed(ucs_async_context_t *async);
+
150
+
151END_C_DECLS
+
152
+
153#endif
+
ucs_status_t ucs_async_add_timer(ucs_async_mode_t mode, ucs_time_t interval, ucs_async_event_cb_t cb, void *arg, ucs_async_context_t *async, int *timer_id_p)
+
void ucs_async_poll(ucs_async_context_t *async)
+
ucs_status_t ucs_async_modify_handler(int fd, ucs_event_set_types_t events)
+
ucs_status_t ucs_async_set_event_handler(ucs_async_mode_t mode, int event_fd, ucs_event_set_types_t events, ucs_async_event_cb_t cb, void *arg, ucs_async_context_t *async)
+
void(* ucs_async_event_cb_t)(int id, ucs_event_set_types_t events, void *arg)
Definition async_fwd.h:35
+
void ucs_async_context_destroy(ucs_async_context_t *async)
Destroy the asynchronous execution context.
+
unsigned long ucs_time_t
Definition time_def.h:23
+
ucs_status_t ucs_async_remove_handler(int id, int sync)
+
ucs_status_t
Status codes.
Definition status.h:45
+
ucs_status_t ucs_async_context_create(ucs_async_mode_t mode, ucs_async_context_t **async_p)
Create an asynchronous execution context.
+
+
+ + + + diff --git a/api/v1.17/html/bc_s.png b/api/v1.17/html/bc_s.png new file mode 100644 index 00000000000..224b29aa984 Binary files /dev/null and b/api/v1.17/html/bc_s.png differ diff --git a/api/v1.17/html/bc_sd.png b/api/v1.17/html/bc_sd.png new file mode 100644 index 00000000000..31ca888dc71 Binary files /dev/null and b/api/v1.17/html/bc_sd.png differ diff --git a/api/v1.17/html/callbackq_8h_source.html b/api/v1.17/html/callbackq_8h_source.html new file mode 100644 index 00000000000..04f77d2af4f --- /dev/null +++ b/api/v1.17/html/callbackq_8h_source.html @@ -0,0 +1,219 @@ + + + + + + + +UCX: callbackq.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
callbackq.h
+
+
+
1
+
8#ifndef UCS_CALLBACKQ_H
+
9#define UCS_CALLBACKQ_H
+
10
+
11#include <ucs/datastruct/list.h>
+
12#include <ucs/sys/compiler_def.h>
+
13#include <ucs/type/status.h>
+
14#include <stddef.h>
+
15#include <stdint.h>
+
16
+
17BEGIN_C_DECLS
+
18
+
21/*
+
22 * Thread-safe callback queue:
+
23 * - only one thread can dispatch
+
24 * - any thread can add and remove
+
25 * - add/remove operations are O(1)
+
26 */
+
27
+
28#define UCS_CALLBACKQ_FAST_COUNT 7 /* Max. number of fast-path callbacks */
+
29#define UCS_CALLBACKQ_ID_NULL (-1) /* Invalid callback identifier */
+
30
+
31
+
32/*
+
33 * Forward declarations
+
34 */
+
35typedef struct ucs_callbackq ucs_callbackq_t;
+ +
37typedef struct ucs_callbackq_priv ucs_callbackq_priv_t;
+
38typedef void * ucs_callbackq_key_t;
+
39
+
40
+
50typedef unsigned (*ucs_callback_t)(void *arg);
+
51
+
52
+
61typedef int (*ucs_callbackq_predicate_t)(const ucs_callbackq_elem_t *elem,
+
62 void *arg);
+
63
+
64
+
+ +
69 ucs_callback_t cb;
+
70 void *arg;
+
71};
+
+
72
+
73
+
+ +
82 ucs_callbackq_elem_t fast_elems[UCS_CALLBACKQ_FAST_COUNT + 1];
+
83
+
88 ucs_callbackq_priv_t *priv;
+
89};
+
+
90
+
91
+
97ucs_status_t ucs_callbackq_init(ucs_callbackq_t *cbq);
+
98
+
99
+
105void ucs_callbackq_cleanup(ucs_callbackq_t *cbq);
+
106
+
107
+
120int ucs_callbackq_add(ucs_callbackq_t *cbq, ucs_callback_t cb, void *arg);
+
121
+
122
+
135void *ucs_callbackq_remove(ucs_callbackq_t *cbq, int id);
+
136
+
137
+
150int ucs_callbackq_add_safe(ucs_callbackq_t *cbq, ucs_callback_t cb, void *arg);
+
151
+
152
+
165void *ucs_callbackq_remove_safe(ucs_callbackq_t *cbq, int id);
+
166
+
167
+
181void ucs_callbackq_add_oneshot(ucs_callbackq_t *cbq, ucs_callbackq_key_t key,
+
182 ucs_callback_t cb, void *arg);
+
183
+
184
+
195void ucs_callbackq_remove_oneshot(ucs_callbackq_t *cbq, ucs_callbackq_key_t key,
+
196 ucs_callbackq_predicate_t pred, void *arg);
+
197
+
198
+
207static inline unsigned ucs_callbackq_dispatch(ucs_callbackq_t *cbq)
+
208{
+ +
210 ucs_callback_t cb;
+
211 unsigned count;
+
212
+
213 count = 0;
+
214 for (elem = cbq->fast_elems; (cb = elem->cb) != NULL; ++elem) {
+
215 count += cb(elem->arg);
+
216 }
+
217 return count;
+
218}
+
219
+
220END_C_DECLS
+
221
+
222#endif
+
ucs_status_t
Status codes.
Definition status.h:45
+
ucs_callbackq_elem_t fast_elems[UCS_CALLBACKQ_FAST_COUNT+1]
Definition callbackq.h:82
+
ucs_callbackq_priv_t * priv
Definition callbackq.h:88
+
ucs_callback_t cb
Definition callbackq.h:69
+
void * arg
Definition callbackq.h:70
+
Definition callbackq.h:77
+
Definition callbackq.h:68
+
+
+ + + + diff --git a/api/v1.17/html/callbackq__compat_8h_source.html b/api/v1.17/html/callbackq__compat_8h_source.html new file mode 100644 index 00000000000..8a60da1cd3d --- /dev/null +++ b/api/v1.17/html/callbackq__compat_8h_source.html @@ -0,0 +1,132 @@ + + + + + + + +UCX: callbackq_compat.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
callbackq_compat.h
+
+
+
1
+
7#ifndef UCS_CALLBACKQ_COMPAT_H
+
8#define UCS_CALLBACKQ_COMPAT_H
+
9
+
10#include <ucs/sys/compiler_def.h>
+
11
+
12
+ +
22
+
23#endif
+
ucs_callbackq_flags
Definition callbackq_compat.h:17
+
@ UCS_CALLBACKQ_FLAG_FAST
Definition callbackq_compat.h:18
+
@ UCS_CALLBACKQ_FLAG_ONESHOT
Definition callbackq_compat.h:19
+
+
+ + + + diff --git a/api/v1.17/html/classes.html b/api/v1.17/html/classes.html new file mode 100644 index 00000000000..dad0d16bb7d --- /dev/null +++ b/api/v1.17/html/classes.html @@ -0,0 +1,114 @@ + + + + + + + +UCX: Data Structure Index + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Data Structure Index
+
+
+ +
+
+
U
+
ucp_am_handler_param
ucp_am_recv_param
ucp_conn_request_attr
ucp_context_attr
ucp_datatype_attr
ucp_dt_iov
ucp_ep_attr
ucp_ep_evaluate_perf_attr_t
ucp_ep_evaluate_perf_param_t
ucp_ep_params
ucp_err_handler
ucp_generic_dt_ops
ucp_lib_attr
ucp_listener_accept_handler
ucp_listener_attr
ucp_listener_conn_handler
ucp_listener_params
ucp_mem_advise_params
ucp_mem_attr
ucp_mem_map_params
ucp_memh_buffer_release_params
ucp_memh_pack_params
ucp_params
ucp_request_attr_t
ucp_request_param_t
ucp_request_param_t.cb
ucp_request_param_t.recv_info
ucp_rkey_compare_params
ucp_stream_poll_ep
ucp_tag_recv_info
ucp_transport_entry_t
ucp_transports_t
ucp_worker_address_attr
ucp_worker_attr
ucp_worker_params
ucs_callbackq
ucs_callbackq_elem
ucs_config_allow_list_t
ucs_log_component_config
ucs_sock_addr
uct_allocated_memory
uct_cm_attr
uct_cm_ep_client_connect_args
uct_cm_ep_priv_data_pack_args
uct_cm_ep_resolve_args
uct_cm_ep_server_conn_notify_args
uct_cm_listener_conn_request_args
uct_cm_remote_data
uct_completion
uct_component_attr
uct_ep_connect_params
uct_ep_params
uct_iface_attr
uct_iface_attr.cap
uct_iface_attr.cap.am
uct_iface_attr.cap.atomic32
uct_iface_attr.cap.atomic64
uct_iface_attr.cap.get
uct_iface_attr.cap.put
uct_iface_attr.cap.tag
uct_iface_attr.cap.tag.eager
uct_iface_attr.cap.tag.recv
uct_iface_attr.cap.tag.rndv
uct_iface_params
uct_iface_params.mode
uct_iface_params.mode.device
uct_iface_params.mode.sockaddr
uct_iov
uct_listener_attr
uct_listener_params
uct_md_attr
uct_md_attr.cap
uct_md_mem_attr
uct_md_resource_desc
uct_mem_alloc_params_t
uct_mem_alloc_params_t.mds
uct_pending_req
uct_ppn_bandwidth
uct_rkey_bundle
uct_tag_context
uct_tl_resource_desc
+
+
+
+ + + + diff --git a/api/v1.17/html/clipboard.js b/api/v1.17/html/clipboard.js new file mode 100644 index 00000000000..42c1fb0e02d --- /dev/null +++ b/api/v1.17/html/clipboard.js @@ -0,0 +1,61 @@ +/** + +The code below is based on the Doxygen Awesome project, see +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2021 - 2022 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +let clipboard_title = "Copy to clipboard" +let clipboard_icon = `` +let clipboard_successIcon = `` +let clipboard_successDuration = 1000 + +$(function() { + if(navigator.clipboard) { + const fragments = document.getElementsByClassName("fragment") + for(const fragment of fragments) { + const clipboard_div = document.createElement("div") + clipboard_div.classList.add("clipboard") + clipboard_div.innerHTML = clipboard_icon + clipboard_div.title = clipboard_title + $(clipboard_div).click(function() { + const content = this.parentNode.cloneNode(true) + // filter out line number and folded fragments from file listings + content.querySelectorAll(".lineno, .ttc, .foldclosed").forEach((node) => { node.remove() }) + let text = content.textContent + // remove trailing newlines and trailing spaces from empty lines + text = text.replace(/^\s*\n/gm,'\n').replace(/\n*$/,'') + navigator.clipboard.writeText(text); + this.classList.add("success") + this.innerHTML = clipboard_successIcon + window.setTimeout(() => { // switch back to normal icon after timeout + this.classList.remove("success") + this.innerHTML = clipboard_icon + }, clipboard_successDuration); + }) + fragment.insertBefore(clipboard_div, fragment.firstChild) + } + } +}) diff --git a/api/v1.17/html/closed.png b/api/v1.17/html/closed.png new file mode 100644 index 00000000000..98cc2c909da Binary files /dev/null and b/api/v1.17/html/closed.png differ diff --git a/api/v1.17/html/compiler__def_8h_source.html b/api/v1.17/html/compiler__def_8h_source.html new file mode 100644 index 00000000000..0deec56e1fd --- /dev/null +++ b/api/v1.17/html/compiler__def_8h_source.html @@ -0,0 +1,305 @@ + + + + + + + +UCX: compiler_def.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
compiler_def.h
+
+
+
1
+
9#ifndef UCS_COMPILER_DEF_H
+
10#define UCS_COMPILER_DEF_H
+
11
+
12/* Note: Place "@file <file name>.h" after BEGIN_C_DECS
+
13 * to avoid bugs in a documentation */
+
14#ifdef __cplusplus
+
15# define BEGIN_C_DECLS extern "C" {
+
16# define END_C_DECLS }
+
17#else
+
18# define BEGIN_C_DECLS
+
19# define END_C_DECLS
+
20#endif
+
21
+
22/*
+
23 * Assertions which are checked in compile-time
+
24 *
+
25 * Usage: UCS_STATIC_ASSERT(condition)
+
26 */
+
27#define UCS_STATIC_ASSERT(_cond) \
+
28 switch(0) {case 0:case (_cond):;}
+
29
+
30/* Maximal allocation size for on-stack buffers */
+
31#define UCS_ALLOCA_MAX_SIZE 1200
+
32
+
33/* Aliasing structure */
+
34#define UCS_S_MAY_ALIAS __attribute__((may_alias))
+
35
+
36/* A function without side effects */
+
37#define UCS_F_PURE __attribute__((pure))
+
38
+
39/* A function which does not return */
+
40#define UCS_F_NORETURN __attribute__((noreturn))
+
41
+
42/* Packed structure */
+
43#define UCS_S_PACKED __attribute__((packed))
+
44
+
45/* Avoid inlining the function */
+
46#define UCS_F_NOINLINE __attribute__ ((noinline))
+
47
+
48/* Shared library constructor and destructor */
+
49#define UCS_F_CTOR __attribute__((constructor))
+
50#define UCS_F_DTOR __attribute__((destructor))
+
51
+
52/* Silence "defined but not used" error for static function,
+
53 * remove it by linker if it's not used at all.
+
54 */
+
55#define UCS_F_MAYBE_UNUSED __attribute__((unused))
+
56
+
57/* Non-null return */
+
58#define UCS_F_NON_NULL __attribute__((nonnull))
+
59
+
60/* Always inline the function */
+
61#ifdef __GNUC__
+
62#define UCS_F_ALWAYS_INLINE inline __attribute__ ((always_inline))
+
63#else
+
64#define UCS_F_ALWAYS_INLINE inline
+
65#endif
+
66
+
67/* Silence "uninitialized variable" for stupid compilers (gcc 4.1)
+
68 * which can't optimize properly.
+
69 */
+
70#if (((__GNUC__ == 4) && (__GNUC_MINOR__ == 1)) || !defined(__OPTIMIZE__))
+
71# define UCS_V_INITIALIZED(_v) (_v = (ucs_typeof(_v))0)
+
72#else
+
73# define UCS_V_INITIALIZED(_v) ((void)0)
+
74#endif
+
75
+
76/* The i-th bit */
+
77#define UCS_BIT(i) (1ul << (i))
+
78
+
79/* Mask of bits 0..i-1 */
+
80#define UCS_MASK(i) (UCS_BIT(i) - 1)
+
81
+
82/*
+
83 * Enable compiler checks for printf-like formatting.
+
84 *
+
85 * @param fmtargN number of formatting argument
+
86 * @param vargN number of variadic argument
+
87 */
+
88#define UCS_F_PRINTF(fmtargN, vargN) __attribute__((format(printf, fmtargN, vargN)))
+
89
+
90/* Unused variable */
+
91#define UCS_V_UNUSED __attribute__((unused))
+
92
+
93/* Aligned variable */
+
94#define UCS_V_ALIGNED(_align) __attribute__((aligned(_align)))
+
95
+
96/* Disable address sanitizer */
+
97#ifdef __SANITIZE_ADDRESS__
+
98# define UCS_F_NO_SANITIZE_ADDRESS __attribute__((no_sanitize_address))
+
99#else
+
100# define UCS_F_NO_SANITIZE_ADDRESS
+
101#endif
+
102
+
103/* Used for labels */
+
104#define UCS_EMPTY_STATEMENT {}
+
105
+
106/* Helper macro for address arithmetic in bytes */
+
107#define UCS_PTR_BYTE_OFFSET(_ptr, _offset) \
+
108 ((void *)((intptr_t)(_ptr) + (intptr_t)(_offset)))
+
109
+
110/* Helper macro to calculate an address with offset equal to size of _type */
+
111#define UCS_PTR_TYPE_OFFSET(_ptr, _type) \
+
112 ((void *)((ucs_typeof(_type) *)(_ptr) + 1))
+
113
+
114/* Helper macro to calculate ptr difference (_end - _start) */
+
115#define UCS_PTR_BYTE_DIFF(_start, _end) \
+
116 ((ptrdiff_t)((uintptr_t)(_end) - (uintptr_t)(_start)))
+
117
+
118
+
122#define ucs_static_array_size(_array) \
+
123 (sizeof(_array) / sizeof((_array)[0]))
+
124
+
125
+
129#define ucs_offsetof(_type, _member) \
+
130 ((unsigned long)&( ((_type*)0)->_member ))
+
131
+
132
+
142#define ucs_container_of(_ptr, _type, _member) \
+
143 ( (_type*)( (char*)(void*)(_ptr) - ucs_offsetof(_type, _member) ) )
+
144
+
145
+
153#define ucs_typeof(_type) \
+
154 __typeof__(_type)
+
155
+
156
+
162#define ucs_derived_of(_ptr, _type) \
+
163 ({\
+
164 UCS_STATIC_ASSERT(offsetof(_type, super) == 0) \
+
165 ucs_container_of(_ptr, _type, super); \
+
166 })
+
167
+
174#define ucs_field_sizeof(_type, _field) \
+
175 sizeof(((_type*)0)->_field)
+
176
+
183#define ucs_field_type(_type, _field) \
+
184 ucs_typeof(((_type*)0)->_field)
+
185
+
191#define ucs_is_unsigned_type(_type) \
+
192 ((_type)(-1) > (_type)(0))
+
193
+
197#define ucs_compiler_fence() asm volatile(""::: "memory")
+
198
+
202#define ucs_prefetch(p) __builtin_prefetch(p)
+
203
+
204/* Branch prediction */
+
205#define ucs_likely(x) __builtin_expect(x, 1)
+
206#define ucs_unlikely(x) __builtin_expect(x, 0)
+
207
+
208/* Check if an expression is a compile-time constant */
+
209#define ucs_is_constant(expr) __builtin_constant_p(expr)
+
210
+
211/*
+
212 * Define code which runs at global constructor phase
+
213 */
+
214#define UCS_STATIC_INIT \
+
215 static void UCS_F_CTOR UCS_PP_APPEND_UNIQUE_ID(ucs_initializer_ctor)()
+
216
+
217/*
+
218 * Define code which runs at global destructor phase
+
219 */
+
220#define UCS_STATIC_CLEANUP \
+
221 static void UCS_F_DTOR UCS_PP_APPEND_UNIQUE_ID(ucs_initializer_dtor)()
+
222
+
223/*
+
224 * Check if the two types are the same
+
225 */
+
226#define ucs_same_type(_type1, _type2) \
+
227 __builtin_types_compatible_p(_type1, _type2)
+
228
+
229/*
+
230 * Iterate over all elements of a C-array
+
231 */
+
232#define ucs_carray_for_each(_elem, _array, _length) \
+
233 for ((_elem) = (_array); (_elem) < ((_array) + (_length)); ++(_elem))
+
234
+
235/*
+
236 * Swap two variables values
+
237 */
+
238#define ucs_swap(_a, _b) \
+
239 { \
+
240 ucs_typeof(*(_a)) __tmp; \
+
241 \
+
242 UCS_STATIC_ASSERT(ucs_same_type(ucs_typeof(*(_a)), ucs_typeof(*(_b)))); \
+
243 __tmp = *(_a); \
+
244 *(_a) = *(_b); \
+
245 *(_b) = __tmp; \
+
246 }
+
247
+
248#endif /* UCS_COMPILER_DEF_H */
+
+
+ + + + diff --git a/api/v1.17/html/cookie.js b/api/v1.17/html/cookie.js new file mode 100644 index 00000000000..53ad21d9811 --- /dev/null +++ b/api/v1.17/html/cookie.js @@ -0,0 +1,58 @@ +/*! + Cookie helper functions + Copyright (c) 2023 Dimitri van Heesch + Released under MIT license. +*/ +let Cookie = { + cookie_namespace: 'doxygen_', + + readSetting(cookie,defVal) { + if (window.chrome) { + const val = localStorage.getItem(this.cookie_namespace+cookie) || + sessionStorage.getItem(this.cookie_namespace+cookie); + if (val) return val; + } else { + let myCookie = this.cookie_namespace+cookie+"="; + if (document.cookie) { + const index = document.cookie.indexOf(myCookie); + if (index != -1) { + const valStart = index + myCookie.length; + let valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + return document.cookie.substring(valStart, valEnd); + } + } + } + return defVal; + }, + + writeSetting(cookie,val,days=10*365) { // default days='forever', 0=session cookie, -1=delete + if (window.chrome) { + if (days==0) { + sessionStorage.setItem(this.cookie_namespace+cookie,val); + } else { + localStorage.setItem(this.cookie_namespace+cookie,val); + } + } else { + let date = new Date(); + date.setTime(date.getTime()+(days*24*60*60*1000)); + const expiration = days!=0 ? "expires="+date.toGMTString()+";" : ""; + document.cookie = this.cookie_namespace + cookie + "=" + + val + "; SameSite=Lax;" + expiration + "path=/"; + } + }, + + eraseSetting(cookie) { + if (window.chrome) { + if (localStorage.getItem(this.cookie_namespace+cookie)) { + localStorage.removeItem(this.cookie_namespace+cookie); + } else if (sessionStorage.getItem(this.cookie_namespace+cookie)) { + sessionStorage.removeItem(this.cookie_namespace+cookie); + } + } else { + this.writeSetting(cookie,'',-1); + } + }, +} diff --git a/api/v1.17/html/deprecated.html b/api/v1.17/html/deprecated.html new file mode 100644 index 00000000000..d314117a493 --- /dev/null +++ b/api/v1.17/html/deprecated.html @@ -0,0 +1,199 @@ + + + + + + + +UCX: Deprecated List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Deprecated List
+
+
+
+
Global ucp_am_send_nb (ucp_ep_h ep, uint16_t id, const void *buffer, size_t count, ucp_datatype_t datatype, ucp_send_callback_t cb, unsigned flags)
+
Use ucp_am_send_nbx instead.
+
Global ucp_atomic_add32 (ucp_ep_h ep, uint32_t add, uint64_t remote_addr, ucp_rkey_h rkey)
+
Replaced by ucp_atomic_post with opcode UCP_ATOMIC_POST_OP_ADD.
+
Global ucp_atomic_add64 (ucp_ep_h ep, uint64_t add, uint64_t remote_addr, ucp_rkey_h rkey)
+
Replaced by ucp_atomic_post with opcode UCP_ATOMIC_POST_OP_ADD.
+
Global ucp_atomic_cswap32 (ucp_ep_h ep, uint32_t compare, uint32_t swap, uint64_t remote_addr, ucp_rkey_h rkey, uint32_t *result)
+
Replaced by ucp_atomic_fetch_nb with opcode UCP_ATOMIC_FETCH_OP_CSWAP.
+
Global ucp_atomic_cswap64 (ucp_ep_h ep, uint64_t compare, uint64_t swap, uint64_t remote_addr, ucp_rkey_h rkey, uint64_t *result)
+
Replaced by ucp_atomic_fetch_nb with opcode UCP_ATOMIC_FETCH_OP_CSWAP.
+
Global ucp_atomic_fadd32 (ucp_ep_h ep, uint32_t add, uint64_t remote_addr, ucp_rkey_h rkey, uint32_t *result)
+
Replaced by ucp_atomic_fetch_nb with opcode UCP_ATOMIC_FETCH_OP_FADD.
+
Global ucp_atomic_fadd64 (ucp_ep_h ep, uint64_t add, uint64_t remote_addr, ucp_rkey_h rkey, uint64_t *result)
+
Replaced by ucp_atomic_fetch_nb with opcode UCP_ATOMIC_FETCH_OP_FADD.
+
Global ucp_atomic_fetch_nb (ucp_ep_h ep, ucp_atomic_fetch_op_t opcode, uint64_t value, void *result, size_t op_size, uint64_t remote_addr, ucp_rkey_h rkey, ucp_send_callback_t cb)
+
Use ucp_atomic_op_nbx with the flag UCP_OP_ATTR_FIELD_REPLY_BUFFER instead.
+
Global ucp_atomic_fetch_op_t
+
Use ucp_atomic_op_nbx and ucp_atomic_op_t instead.
+
Global ucp_atomic_post (ucp_ep_h ep, ucp_atomic_post_op_t opcode, uint64_t value, size_t op_size, uint64_t remote_addr, ucp_rkey_h rkey)
+
Use ucp_atomic_op_nbx without the flag UCP_OP_ATTR_FIELD_REPLY_BUFFER instead.
+
Global ucp_atomic_post_op_t
+
Use ucp_atomic_op_nbx and ucp_atomic_op_t instead.
+
Global ucp_atomic_swap32 (ucp_ep_h ep, uint32_t swap, uint64_t remote_addr, ucp_rkey_h rkey, uint32_t *result)
+
Replaced by ucp_atomic_fetch_nb with opcode UCP_ATOMIC_FETCH_OP_SWAP.
+
Global ucp_atomic_swap64 (ucp_ep_h ep, uint64_t swap, uint64_t remote_addr, ucp_rkey_h rkey, uint64_t *result)
+
Replaced by ucp_atomic_fetch_nb with opcode UCP_ATOMIC_FETCH_OP_SWAP.
+
Global ucp_disconnect_nb (ucp_ep_h ep)
+
Replaced by ucp_ep_close_nb.
+
Global ucp_ep_close_mode
+
Use ucp_ep_close_nbx and ucp_ep_close_flags_t instead.
+
Global ucp_ep_close_nb (ucp_ep_h ep, unsigned mode)
+
Use ucp_ep_close_nbx instead.
+
Global ucp_ep_destroy (ucp_ep_h ep)
+
Replaced by ucp_ep_close_nb.
+
Global ucp_ep_flush (ucp_ep_h ep)
+
Replaced by ucp_ep_flush_nb.
+
Global ucp_ep_flush_nb (ucp_ep_h ep, unsigned flags, ucp_send_callback_t cb)
+
Use ucp_ep_flush_nbx instead.
+
Global ucp_ep_modify_nb (ucp_ep_h ep, const ucp_ep_params_t *params)
+
Use ucp_listener_conn_handler_t instead of ucp_listener_accept_handler_t, if you have other use case please submit an issue on https://github.com/openucx/ucx or report to ucx-g.nosp@m.roup.nosp@m.@elis.nosp@m.t.or.nosp@m.nl.go.nosp@m.v
+
Global ucp_get (ucp_ep_h ep, void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey)
+
Replaced by ucp_get_nb.
+
Global ucp_get_nb (ucp_ep_h ep, void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey, ucp_send_callback_t cb)
+
Use ucp_get_nbx instead.
+
Global ucp_get_nbi (ucp_ep_h ep, void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey)
+
Use ucp_get_nbx without passing the flag UCP_OP_ATTR_FIELD_CALLBACK instead. If a request pointer is returned, release it immediately by ucp_request_free.
+
Global ucp_listener_accept_handler_t
+
Replaced by ucp_listener_conn_handler_t.
+
Global ucp_put (ucp_ep_h ep, const void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey)
+
Replaced by ucp_put_nb. The following example implements the same functionality using ucp_put_nb :
+
Global ucp_put_nb (ucp_ep_h ep, const void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey, ucp_send_callback_t cb)
+
Use ucp_put_nbx instead.
+
Global ucp_put_nbi (ucp_ep_h ep, const void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey)
+
Use ucp_put_nbx without passing the flag UCP_OP_ATTR_FIELD_CALLBACK instead. If a request pointer is returned, release it immediately by ucp_request_free.
+
Global ucp_request_is_completed (void *request)
+
Replaced by ucp_request_test.
+
Global ucp_request_release (void *request)
+
Replaced by ucp_request_free.
+
Global ucp_request_test (void *request, ucp_tag_recv_info_t *info)
+
Replaced by ucp_tag_recv_request_test and ucp_request_check_status depends on use case.
+
Global ucp_rkey_buffer_release (void *rkey_buffer)
+
Replaced by ucp_memh_buffer_release().
+
Global ucp_rkey_pack (ucp_context_h context, ucp_mem_h memh, void **rkey_buffer_p, size_t *size_p)
+
Replaced by ucp_memh_pack().
+
Global ucp_stream_recv_nb (ucp_ep_h ep, void *buffer, size_t count, ucp_datatype_t datatype, ucp_stream_recv_callback_t cb, size_t *length, unsigned flags)
+
Use ucp_stream_recv_nbx instead.
+
Global ucp_stream_send_nb (ucp_ep_h ep, const void *buffer, size_t count, ucp_datatype_t datatype, ucp_send_callback_t cb, unsigned flags)
+
Use ucp_stream_send_nbx instead.
+
Global ucp_tag_msg_recv_nb (ucp_worker_h worker, void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_message_h message, ucp_tag_recv_callback_t cb)
+
Use ucp_tag_recv_nbx instead.
+
Global ucp_tag_recv_nb (ucp_worker_h worker, void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_t tag, ucp_tag_t tag_mask, ucp_tag_recv_callback_t cb)
+
Use ucp_tag_recv_nbx instead.
+
Global ucp_tag_recv_nbr (ucp_worker_h worker, void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_t tag, ucp_tag_t tag_mask, void *req)
+
Use ucp_tag_recv_nbx with the flag UCP_OP_ATTR_FIELD_REQUEST instead.
+
Global ucp_tag_send_nb (ucp_ep_h ep, const void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_t tag, ucp_send_callback_t cb)
+
Use ucp_tag_send_nbx instead.
+
Global ucp_tag_send_nbr (ucp_ep_h ep, const void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_t tag, void *req)
+
Use ucp_tag_send_nbx with the flag UCP_OP_ATTR_FIELD_REQUEST instead.
+
Global ucp_tag_send_sync_nb (ucp_ep_h ep, const void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_t tag, ucp_send_callback_t cb)
+
Use ucp_tag_send_sync_nbx instead.
+
Global ucp_worker_flush (ucp_worker_h worker)
+
Replaced by ucp_worker_flush_nb. The following example implements the same functionality using ucp_worker_flush_nb :
+
Global ucp_worker_flush_nb (ucp_worker_h worker, unsigned flags, ucp_send_callback_t cb)
+
Use ucp_worker_flush_nbx instead.
+
Global ucp_worker_get_address (ucp_worker_h worker, ucp_address_t **address_p, size_t *address_length_p)
+
Use ucp_worker_query with the flag UCP_WORKER_ATTR_FIELD_ADDRESS in order to obtain the worker address.
+
Global ucp_worker_set_am_handler (ucp_worker_h worker, uint16_t id, ucp_am_callback_t cb, void *arg, uint32_t flags)
+
Use ucp_worker_set_am_recv_handler instead.
+
+
+
+
+ + + + diff --git a/api/v1.17/html/dir_1659c59dcdbe18b621f54b1ef0f6f4c9.html b/api/v1.17/html/dir_1659c59dcdbe18b621f54b1ef0f6f4c9.html new file mode 100644 index 00000000000..06d04b27136 --- /dev/null +++ b/api/v1.17/html/dir_1659c59dcdbe18b621f54b1ef0f6f4c9.html @@ -0,0 +1,119 @@ + + + + + + + +UCX: api Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
api Directory Reference
+
+
+ + + + + + + + +

+Files

 ucp.h
 
 ucp_compat.h
 
 ucp_def.h
 
+
+
+ + + + diff --git a/api/v1.17/html/dir_1c93fb0e274825ee3f8885f93e5ea363.html b/api/v1.17/html/dir_1c93fb0e274825ee3f8885f93e5ea363.html new file mode 100644 index 00000000000..2cba95eb6af --- /dev/null +++ b/api/v1.17/html/dir_1c93fb0e274825ee3f8885f93e5ea363.html @@ -0,0 +1,118 @@ + + + + + + + +UCX: api Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
api Directory Reference
+
+
+ + + + + + + +

+Files

 uct.h
 Unified Communication Transport.
 
 uct_def.h
 
+
+
+ + + + diff --git a/api/v1.17/html/dir_359d2bec989c9a8deeeb9aee335c1c76.html b/api/v1.17/html/dir_359d2bec989c9a8deeeb9aee335c1c76.html new file mode 100644 index 00000000000..e1350757374 --- /dev/null +++ b/api/v1.17/html/dir_359d2bec989c9a8deeeb9aee335c1c76.html @@ -0,0 +1,109 @@ + + + + + + + +UCX: doxygen Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
doxygen Directory Reference
+
+
+
+
+ + + + diff --git a/api/v1.17/html/dir_36fdb95a94f45e39a2040c31ddd31225.html b/api/v1.17/html/dir_36fdb95a94f45e39a2040c31ddd31225.html new file mode 100644 index 00000000000..1582898384b --- /dev/null +++ b/api/v1.17/html/dir_36fdb95a94f45e39a2040c31ddd31225.html @@ -0,0 +1,115 @@ + + + + + + + +UCX: async Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
async Directory Reference
+
+
+ + + + +

+Files

 async_fwd.h
 
+
+
+ + + + diff --git a/api/v1.17/html/dir_49e56c817e5e54854c35e136979f97ca.html b/api/v1.17/html/dir_49e56c817e5e54854c35e136979f97ca.html new file mode 100644 index 00000000000..50bc5acf176 --- /dev/null +++ b/api/v1.17/html/dir_49e56c817e5e54854c35e136979f97ca.html @@ -0,0 +1,115 @@ + + + + + + + +UCX: docs Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
docs Directory Reference
+
+
+ + + + +

+Directories

 doxygen
 
+
+
+ + + + diff --git a/api/v1.17/html/dir_4b6387ca6c2433d33ff8cebb03d1c9cf.html b/api/v1.17/html/dir_4b6387ca6c2433d33ff8cebb03d1c9cf.html new file mode 100644 index 00000000000..3ef9228cc9e --- /dev/null +++ b/api/v1.17/html/dir_4b6387ca6c2433d33ff8cebb03d1c9cf.html @@ -0,0 +1,127 @@ + + + + + + + +UCX: ucs Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ucs Directory Reference
+
+
+ + + + + + + + + + + + + + + + +

+Directories

 async
 
 config
 
 datastruct
 
 memory
 
 sys
 
 time
 
 type
 
+
+
+ + + + diff --git a/api/v1.17/html/dir_4c780fc7bd1b054a8fd909bf37e638e8.html b/api/v1.17/html/dir_4c780fc7bd1b054a8fd909bf37e638e8.html new file mode 100644 index 00000000000..c3236ba2c47 --- /dev/null +++ b/api/v1.17/html/dir_4c780fc7bd1b054a8fd909bf37e638e8.html @@ -0,0 +1,115 @@ + + + + + + + +UCX: time Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
time Directory Reference
+
+
+ + + + +

+Files

 time_def.h
 
+
+
+ + + + diff --git a/api/v1.17/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/api/v1.17/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html new file mode 100644 index 00000000000..3b4c8398fe7 --- /dev/null +++ b/api/v1.17/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -0,0 +1,119 @@ + + + + + + + +UCX: src Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
src Directory Reference
+
+
+ + + + + + + + +

+Directories

 ucp
 
 ucs
 
 uct
 
+
+
+ + + + diff --git a/api/v1.17/html/dir_7e9580f7d5a447a1ad6c976d66f43d97.html b/api/v1.17/html/dir_7e9580f7d5a447a1ad6c976d66f43d97.html new file mode 100644 index 00000000000..ab022073b50 --- /dev/null +++ b/api/v1.17/html/dir_7e9580f7d5a447a1ad6c976d66f43d97.html @@ -0,0 +1,115 @@ + + + + + + + +UCX: ucp Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ucp Directory Reference
+
+
+ + + + +

+Directories

 api
 
+
+
+ + + + diff --git a/api/v1.17/html/dir_8763891bebbe3f83ca5e81e2d3bf898e.html b/api/v1.17/html/dir_8763891bebbe3f83ca5e81e2d3bf898e.html new file mode 100644 index 00000000000..b1869596686 --- /dev/null +++ b/api/v1.17/html/dir_8763891bebbe3f83ca5e81e2d3bf898e.html @@ -0,0 +1,115 @@ + + + + + + + +UCX: memory Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
memory Directory Reference
+
+
+ + + + +

+Files

 memory_type.h
 
+
+
+ + + + diff --git a/api/v1.17/html/dir_9182fa9dcf28807332430d9f0469c7a9.html b/api/v1.17/html/dir_9182fa9dcf28807332430d9f0469c7a9.html new file mode 100644 index 00000000000..c8bc588b7c2 --- /dev/null +++ b/api/v1.17/html/dir_9182fa9dcf28807332430d9f0469c7a9.html @@ -0,0 +1,118 @@ + + + + + + + +UCX: type Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
type Directory Reference
+
+
+ + + + + + + +

+Files

 status.h
 Unified Communication Services.
 
 thread_mode.h
 
+
+
+ + + + diff --git a/api/v1.17/html/dir_966ceeb60a198c7f2c4538eba94cad34.html b/api/v1.17/html/dir_966ceeb60a198c7f2c4538eba94cad34.html new file mode 100644 index 00000000000..4401e1da059 --- /dev/null +++ b/api/v1.17/html/dir_966ceeb60a198c7f2c4538eba94cad34.html @@ -0,0 +1,115 @@ + + + + + + + +UCX: config Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
config Directory Reference
+
+
+ + + + +

+Files

 types.h
 
+
+
+ + + + diff --git a/api/v1.17/html/dir_9c8a053dfc2c97cd678899a55ba24f2d.html b/api/v1.17/html/dir_9c8a053dfc2c97cd678899a55ba24f2d.html new file mode 100644 index 00000000000..29d88efe04b --- /dev/null +++ b/api/v1.17/html/dir_9c8a053dfc2c97cd678899a55ba24f2d.html @@ -0,0 +1,115 @@ + + + + + + + +UCX: uct Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
uct Directory Reference
+
+
+ + + + +

+Directories

 api
 
+
+
+ + + + diff --git a/api/v1.17/html/dir_bda1aca17be1467105c0c9d575a28072.html b/api/v1.17/html/dir_bda1aca17be1467105c0c9d575a28072.html new file mode 100644 index 00000000000..c8833961211 --- /dev/null +++ b/api/v1.17/html/dir_bda1aca17be1467105c0c9d575a28072.html @@ -0,0 +1,115 @@ + + + + + + + +UCX: sys Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
sys Directory Reference
+
+
+ + + + +

+Files

 compiler_def.h
 
+
+
+ + + + diff --git a/api/v1.17/html/dir_f0a01d00a336ff0b43099df76ae9e0f7.html b/api/v1.17/html/dir_f0a01d00a336ff0b43099df76ae9e0f7.html new file mode 100644 index 00000000000..57a7f10bd7f --- /dev/null +++ b/api/v1.17/html/dir_f0a01d00a336ff0b43099df76ae9e0f7.html @@ -0,0 +1,117 @@ + + + + + + + +UCX: datastruct Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
datastruct Directory Reference
+
+
+ + + + + + +

+Files

 callbackq.h
 
 callbackq_compat.h
 
+
+
+ + + + diff --git a/api/v1.17/html/doc.svg b/api/v1.17/html/doc.svg new file mode 100644 index 00000000000..0b928a53171 --- /dev/null +++ b/api/v1.17/html/doc.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/api/v1.17/html/docd.svg b/api/v1.17/html/docd.svg new file mode 100644 index 00000000000..ac18b275522 --- /dev/null +++ b/api/v1.17/html/docd.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/api/v1.17/html/doxygen.css b/api/v1.17/html/doxygen.css new file mode 100644 index 00000000000..7b7d851b8a8 --- /dev/null +++ b/api/v1.17/html/doxygen.css @@ -0,0 +1,2225 @@ +/* The standard CSS for doxygen 1.10.0*/ + +html { +/* page base colors */ +--page-background-color: white; +--page-foreground-color: black; +--page-link-color: #3D578C; +--page-visited-link-color: #4665A2; + +/* index */ +--index-odd-item-bg-color: #F8F9FC; +--index-even-item-bg-color: white; +--index-header-color: black; +--index-separator-color: #A0A0A0; + +/* header */ +--header-background-color: #F9FAFC; +--header-separator-color: #C4CFE5; +--header-gradient-image: url('nav_h.png'); +--group-header-separator-color: #879ECB; +--group-header-color: #354C7B; +--inherit-header-color: gray; + +--footer-foreground-color: #2A3D61; +--footer-logo-width: 104px; +--citation-label-color: #334975; +--glow-color: cyan; + +--title-background-color: white; +--title-separator-color: #5373B4; +--directory-separator-color: #9CAFD4; +--separator-color: #4A6AAA; + +--blockquote-background-color: #F7F8FB; +--blockquote-border-color: #9CAFD4; + +--scrollbar-thumb-color: #9CAFD4; +--scrollbar-background-color: #F9FAFC; + +--icon-background-color: #728DC1; +--icon-foreground-color: white; +--icon-doc-image: url('doc.svg'); +--icon-folder-open-image: url('folderopen.svg'); +--icon-folder-closed-image: url('folderclosed.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #F9FAFC; +--memdecl-separator-color: #DEE4F0; +--memdecl-foreground-color: #555; +--memdecl-template-color: #4665A2; + +/* detailed member list */ +--memdef-border-color: #A8B8D9; +--memdef-title-background-color: #E2E8F2; +--memdef-title-gradient-image: url('nav_f.png'); +--memdef-proto-background-color: #DFE5F1; +--memdef-proto-text-color: #253555; +--memdef-proto-text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--memdef-doc-background-color: white; +--memdef-param-name-color: #602020; +--memdef-template-color: #4665A2; + +/* tables */ +--table-cell-border-color: #2D4068; +--table-header-background-color: #374F7F; +--table-header-foreground-color: #FFFFFF; + +/* labels */ +--label-background-color: #728DC1; +--label-left-top-border-color: #5373B4; +--label-right-bottom-border-color: #C4CFE5; +--label-foreground-color: white; + +/** navigation bar/tree/menu */ +--nav-background-color: #F9FAFC; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_b.png'); +--nav-gradient-hover-image: url('tab_h.png'); +--nav-gradient-active-image: url('tab_a.png'); +--nav-gradient-active-image-parent: url("../tab_a.png"); +--nav-separator-image: url('tab_s.png'); +--nav-breadcrumb-image: url('bc_s.png'); +--nav-breadcrumb-border-color: #C2CDE4; +--nav-splitbar-image: url('splitbar.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #283A5D; +--nav-text-hover-color: white; +--nav-text-active-color: white; +--nav-text-normal-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #364D7C; +--nav-menu-background-color: white; +--nav-menu-foreground-color: #555555; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.5); +--nav-arrow-color: #9CAFD4; +--nav-arrow-selected-color: #9CAFD4; + +/* table of contents */ +--toc-background-color: #F4F6FA; +--toc-border-color: #D8DFEE; +--toc-header-color: #4665A2; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: white; +--search-foreground-color: #909090; +--search-magnification-image: url('mag.svg'); +--search-magnification-select-image: url('mag_sel.svg'); +--search-active-color: black; +--search-filter-background-color: #F9FAFC; +--search-filter-foreground-color: black; +--search-filter-border-color: #90A5CE; +--search-filter-highlight-text-color: white; +--search-filter-highlight-bg-color: #3D578C; +--search-results-foreground-color: #425E97; +--search-results-background-color: #EEF1F7; +--search-results-border-color: black; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #555; + +/** code fragments */ +--code-keyword-color: #008000; +--code-type-keyword-color: #604020; +--code-flow-keyword-color: #E08000; +--code-comment-color: #800000; +--code-preprocessor-color: #806020; +--code-string-literal-color: #002080; +--code-char-literal-color: #008080; +--code-xml-cdata-color: black; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #4665A2; +--code-external-link-color: #4665A2; +--fragment-foreground-color: black; +--fragment-background-color: #FBFCFD; +--fragment-border-color: #C4CFE5; +--fragment-lineno-border-color: #00FF00; +--fragment-lineno-background-color: #E8E8E8; +--fragment-lineno-foreground-color: black; +--fragment-lineno-link-fg-color: #4665A2; +--fragment-lineno-link-bg-color: #D8D8D8; +--fragment-lineno-link-hover-fg-color: #4665A2; +--fragment-lineno-link-hover-bg-color: #C8C8C8; +--fragment-copy-ok-color: #2EC82E; +--tooltip-foreground-color: black; +--tooltip-background-color: white; +--tooltip-border-color: gray; +--tooltip-doc-color: grey; +--tooltip-declaration-color: #006318; +--tooltip-link-color: #4665A2; +--tooltip-shadow: 1px 1px 7px gray; +--fold-line-color: #808080; +--fold-minus-image: url('minus.svg'); +--fold-plus-image: url('plus.svg'); +--fold-minus-image-relpath: url('../../minus.svg'); +--fold-plus-image-relpath: url('../../plus.svg'); + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +/** special sections */ +--warning-color-bg: #f8d1cc; +--warning-color-hl: #b61825; +--warning-color-text: #75070f; +--note-color-bg: #faf3d8; +--note-color-hl: #f3a600; +--note-color-text: #5f4204; +--todo-color-bg: #e4f3ff; +--todo-color-hl: #1879C4; +--todo-color-text: #274a5c; +--test-color-bg: #e8e8ff; +--test-color-hl: #3939C4; +--test-color-text: #1a1a5c; +--deprecated-color-bg: #ecf0f3; +--deprecated-color-hl: #5b6269; +--deprecated-color-text: #43454a; +--bug-color-bg: #e4dafd; +--bug-color-hl: #5b2bdd; +--bug-color-text: #2a0d72; +--invariant-color-bg: #d8f1e3; +--invariant-color-hl: #44b86f; +--invariant-color-text: #265532; +} + +@media (prefers-color-scheme: dark) { + html:not(.dark-mode) { + color-scheme: dark; + +/* page base colors */ +--page-background-color: black; +--page-foreground-color: #C9D1D9; +--page-link-color: #90A5CE; +--page-visited-link-color: #A3B4D7; + +/* index */ +--index-odd-item-bg-color: #0B101A; +--index-even-item-bg-color: black; +--index-header-color: #C4CFE5; +--index-separator-color: #334975; + +/* header */ +--header-background-color: #070B11; +--header-separator-color: #141C2E; +--header-gradient-image: url('nav_hd.png'); +--group-header-separator-color: #283A5D; +--group-header-color: #90A5CE; +--inherit-header-color: #A0A0A0; + +--footer-foreground-color: #5B7AB7; +--footer-logo-width: 60px; +--citation-label-color: #90A5CE; +--glow-color: cyan; + +--title-background-color: #090D16; +--title-separator-color: #354C79; +--directory-separator-color: #283A5D; +--separator-color: #283A5D; + +--blockquote-background-color: #101826; +--blockquote-border-color: #283A5D; + +--scrollbar-thumb-color: #283A5D; +--scrollbar-background-color: #070B11; + +--icon-background-color: #334975; +--icon-foreground-color: #C4CFE5; +--icon-doc-image: url('docd.svg'); +--icon-folder-open-image: url('folderopend.svg'); +--icon-folder-closed-image: url('folderclosedd.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #0B101A; +--memdecl-separator-color: #2C3F65; +--memdecl-foreground-color: #BBB; +--memdecl-template-color: #7C95C6; + +/* detailed member list */ +--memdef-border-color: #233250; +--memdef-title-background-color: #1B2840; +--memdef-title-gradient-image: url('nav_fd.png'); +--memdef-proto-background-color: #19243A; +--memdef-proto-text-color: #9DB0D4; +--memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9); +--memdef-doc-background-color: black; +--memdef-param-name-color: #D28757; +--memdef-template-color: #7C95C6; + +/* tables */ +--table-cell-border-color: #283A5D; +--table-header-background-color: #283A5D; +--table-header-foreground-color: #C4CFE5; + +/* labels */ +--label-background-color: #354C7B; +--label-left-top-border-color: #4665A2; +--label-right-bottom-border-color: #283A5D; +--label-foreground-color: #CCCCCC; + +/** navigation bar/tree/menu */ +--nav-background-color: #101826; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_bd.png'); +--nav-gradient-hover-image: url('tab_hd.png'); +--nav-gradient-active-image: url('tab_ad.png'); +--nav-gradient-active-image-parent: url("../tab_ad.png"); +--nav-separator-image: url('tab_sd.png'); +--nav-breadcrumb-image: url('bc_sd.png'); +--nav-breadcrumb-border-color: #2A3D61; +--nav-splitbar-image: url('splitbard.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #B6C4DF; +--nav-text-hover-color: #DCE2EF; +--nav-text-active-color: #DCE2EF; +--nav-text-normal-shadow: 0px 1px 1px black; +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #B6C4DF; +--nav-menu-background-color: #05070C; +--nav-menu-foreground-color: #BBBBBB; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.2); +--nav-arrow-color: #334975; +--nav-arrow-selected-color: #90A5CE; + +/* table of contents */ +--toc-background-color: #151E30; +--toc-border-color: #202E4A; +--toc-header-color: #A3B4D7; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: black; +--search-foreground-color: #C5C5C5; +--search-magnification-image: url('mag_d.svg'); +--search-magnification-select-image: url('mag_seld.svg'); +--search-active-color: #C5C5C5; +--search-filter-background-color: #101826; +--search-filter-foreground-color: #90A5CE; +--search-filter-border-color: #7C95C6; +--search-filter-highlight-text-color: #BCC9E2; +--search-filter-highlight-bg-color: #283A5D; +--search-results-background-color: #101826; +--search-results-foreground-color: #90A5CE; +--search-results-border-color: #7C95C6; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #2F436C; + +/** code fragments */ +--code-keyword-color: #CC99CD; +--code-type-keyword-color: #AB99CD; +--code-flow-keyword-color: #E08000; +--code-comment-color: #717790; +--code-preprocessor-color: #65CABE; +--code-string-literal-color: #7EC699; +--code-char-literal-color: #00E0F0; +--code-xml-cdata-color: #C9D1D9; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #C0C0C0; +--code-vhdl-keyword-color: #CF53C9; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #79C0FF; +--code-external-link-color: #79C0FF; +--fragment-foreground-color: #C9D1D9; +--fragment-background-color: #090D16; +--fragment-border-color: #30363D; +--fragment-lineno-border-color: #30363D; +--fragment-lineno-background-color: black; +--fragment-lineno-foreground-color: #6E7681; +--fragment-lineno-link-fg-color: #6E7681; +--fragment-lineno-link-bg-color: #303030; +--fragment-lineno-link-hover-fg-color: #8E96A1; +--fragment-lineno-link-hover-bg-color: #505050; +--fragment-copy-ok-color: #0EA80E; +--tooltip-foreground-color: #C9D1D9; +--tooltip-background-color: #202020; +--tooltip-border-color: #C9D1D9; +--tooltip-doc-color: #D9E1E9; +--tooltip-declaration-color: #20C348; +--tooltip-link-color: #79C0FF; +--tooltip-shadow: none; +--fold-line-color: #808080; +--fold-minus-image: url('minusd.svg'); +--fold-plus-image: url('plusd.svg'); +--fold-minus-image-relpath: url('../../minusd.svg'); +--fold-plus-image-relpath: url('../../plusd.svg'); + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +/** special sections */ +--warning-color-bg: #2e1917; +--warning-color-hl: #ad2617; +--warning-color-text: #f5b1aa; +--note-color-bg: #3b2e04; +--note-color-hl: #f1b602; +--note-color-text: #ceb670; +--todo-color-bg: #163750; +--todo-color-hl: #1982D2; +--todo-color-text: #dcf0fa; +--test-color-bg: #121258; +--test-color-hl: #4242cf; +--test-color-text: #c0c0da; +--deprecated-color-bg: #2e323b; +--deprecated-color-hl: #738396; +--deprecated-color-text: #abb0bd; +--bug-color-bg: #2a2536; +--bug-color-hl: #7661b3; +--bug-color-text: #ae9ed6; +--invariant-color-bg: #303a35; +--invariant-color-hl: #76ce96; +--invariant-color-text: #cceed5; +}} +body { + background-color: var(--page-background-color); + color: var(--page-foreground-color); +} + +body, table, div, p, dl { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 22px; +} + +/* @group Heading Levels */ + +.title { + font-family: var(--font-family-normal); + line-height: 28px; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h1.groupheader { + font-size: 150%; +} + +h2.groupheader { + border-bottom: 1px solid var(--group-header-separator-color); + color: var(--group-header-color); + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px var(--glow-color); +} + +dt { + font-weight: bold; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL { + background-image: var(--nav-gradient-active-image); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: var(--index-separator-color); +} + +#main-menu a:focus { + outline: auto; + z-index: 10; + position: relative; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: var(--index-header-color); +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.even { + background-color: var(--index-even-item-bg-color); +} + +.classindex dl.odd { + background-color: var(--index-odd-item-bg-color); +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: var(--page-link-color); + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: var(--page-visited-link-color); +} + +a:hover { + text-decoration: none; + background: linear-gradient(to bottom, transparent 0,transparent calc(100% - 1px), currentColor 100%); +} + +a:hover > span.arrow { + text-decoration: none; + background : var(--nav-background-color); +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: var(--code-link-color); +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: var(--code-external-link-color); +} + +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: visible; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + list-style-type: none; +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; + overflow-y: hidden; + position: relative; + min-height: 12px; + margin: 10px 0px; + padding: 10px 10px; + border: 1px solid var(--fragment-border-color); + border-radius: 4px; + background-color: var(--fragment-background-color); + color: var(--fragment-foreground-color); +} + +pre.fragment { + word-wrap: break-word; + font-size: 10pt; + line-height: 125%; + font-family: var(--font-family-monospace); +} + +.clipboard { + width: 24px; + height: 24px; + right: 5px; + top: 5px; + opacity: 0; + position: absolute; + display: inline; + overflow: auto; + fill: var(--fragment-foreground-color); + justify-content: center; + align-items: center; + cursor: pointer; +} + +.clipboard.success { + border: 1px solid var(--fragment-foreground-color); + border-radius: 4px; +} + +.fragment:hover .clipboard, .clipboard.success { + opacity: .28; +} + +.clipboard:hover, .clipboard.success { + opacity: 1 !important; +} + +.clipboard:active:not([class~=success]) svg { + transform: scale(.91); +} + +.clipboard.success svg { + fill: var(--fragment-copy-ok-color); +} + +.clipboard.success { + border-color: var(--fragment-copy-ok-color); +} + +div.line { + font-family: var(--font-family-monospace); + font-size: 13px; + min-height: 13px; + line-height: 1.2; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: var(--glow-color); + box-shadow: 0 0 10px var(--glow-color); +} + +span.fold { + margin-left: 5px; + margin-right: 1px; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; + display: inline-block; + width: 12px; + height: 12px; + background-repeat:no-repeat; + background-position:center; +} + +span.lineno { + padding-right: 4px; + margin-right: 9px; + text-align: right; + border-right: 2px solid var(--fragment-lineno-border-color); + color: var(--fragment-lineno-foreground-color); + background-color: var(--fragment-lineno-background-color); + white-space: pre; +} +span.lineno a, span.lineno a:visited { + color: var(--fragment-lineno-link-fg-color); + background-color: var(--fragment-lineno-link-bg-color); +} + +span.lineno a:hover { + color: var(--fragment-lineno-link-hover-fg-color); + background-color: var(--fragment-lineno-link-hover-bg-color); +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + color: var(--page-foreground-color); + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +p.formulaDsp { + text-align: center; +} + +img.dark-mode-visible { + display: none; +} +img.light-mode-visible { + display: none; +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; + width: var(--footer-logo-width); +} + +.compoundTemplParams { + color: var(--memdecl-template-color); + font-size: 80%; + line-height: 120%; +} + +/* @group Code Colorization */ + +span.keyword { + color: var(--code-keyword-color); +} + +span.keywordtype { + color: var(--code-type-keyword-color); +} + +span.keywordflow { + color: var(--code-flow-keyword-color); +} + +span.comment { + color: var(--code-comment-color); +} + +span.preprocessor { + color: var(--code-preprocessor-color); +} + +span.stringliteral { + color: var(--code-string-literal-color); +} + +span.charliteral { + color: var(--code-char-literal-color); +} + +span.xmlcdata { + color: var(--code-xml-cdata-color); +} + +span.vhdldigit { + color: var(--code-vhdl-digit-color); +} + +span.vhdlchar { + color: var(--code-vhdl-char-color); +} + +span.vhdlkeyword { + color: var(--code-vhdl-keyword-color); +} + +span.vhdllogic { + color: var(--code-vhdl-logic-color); +} + +blockquote { + background-color: var(--blockquote-background-color); + border-left: 2px solid var(--blockquote-border-color); + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid var(--table-cell-border-color); +} + +th.dirtab { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid var(--separator-color); +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: var(--glow-color); + box-shadow: 0 0 15px var(--glow-color); +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: var(--memdecl-background-color); + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: var(--memdecl-foreground-color); +} + +.memSeparator { + border-bottom: 1px solid var(--memdecl-separator-color); + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: var(--memdecl-template-color); + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: var(--memdef-title-gradient-image); + background-repeat: repeat-x; + background-color: var(--memdef-title-background-color); + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: var(--memdef-template-color); + font-weight: normal; + margin-left: 9px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px var(--glow-color); +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 0px 6px 0px; + color: var(--memdef-proto-text-color); + font-weight: bold; + text-shadow: var(--memdef-proto-text-shadow); + background-color: var(--memdef-proto-background-color); + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; +} + +.overload { + font-family: var(--font-family-monospace); + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 10px 2px 10px; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: var(--memdef-doc-background-color); + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; + padding: 0px; + padding-bottom: 1px; +} + +.paramname { + white-space: nowrap; + padding: 0px; + padding-bottom: 1px; + margin-left: 2px; +} + +.paramname em { + color: var(--memdef-param-name-color); + font-style: normal; + margin-right: 1px; +} + +.paramname .paramdefval { + font-family: var(--font-family-monospace); +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: var(--font-family-monospace); + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: var(--label-background-color); + border-top:1px solid var(--label-left-top-border-color); + border-left:1px solid var(--label-left-top-border-color); + border-right:1px solid var(--label-right-bottom-border-color); + border-bottom:1px solid var(--label-right-bottom-border-color); + text-shadow: none; + color: var(--label-foreground-color); + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid var(--directory-separator-color); + border-bottom: 1px solid var(--directory-separator-color); + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.odd { + padding-left: 6px; + background-color: var(--index-odd-item-bg-color); +} + +.directory tr.even { + padding-left: 6px; + background-color: var(--index-even-item-bg-color); +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: var(--page-link-color); +} + +.arrow { + color: var(--nav-arrow-color); + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: var(--font-family-icon); + line-height: normal; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: var(--icon-background-color); + color: var(--icon-foreground-color); + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-folder-open-image); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-folder-closed-image); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-doc-image); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: var(--footer-foreground-color); +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + margin-bottom: 10px; + border: 1px solid var(--memdef-border-color); + border-spacing: 0px; + border-radius: 4px; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid var(--memdef-border-color); + border-bottom: 1px solid var(--memdef-border-color); + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid var(--memdef-border-color); +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image: var(--memdef-title-gradient-image); + background-repeat:repeat-x; + background-color: var(--memdef-title-background-color); + font-size: 90%; + color: var(--memdef-proto-text-color); + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid var(--memdef-border-color); +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: var(--nav-gradient-image); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image: var(--nav-gradient-image); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:var(--nav-text-normal-color); + border:solid 1px var(--nav-breadcrumb-border-color); + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:var(--nav-breadcrumb-image); + background-repeat:no-repeat; + background-position:right; + color: var(--nav-foreground-color); +} + +.navpath li.navelem a +{ + height:32px; + display:block; + outline: none; + color: var(--nav-text-normal-color); + font-family: var(--font-family-nav); + text-shadow: var(--nav-text-normal-shadow); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color: var(--footer-foreground-color); + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image: var(--header-gradient-image); + background-repeat:repeat-x; + background-color: var(--header-background-color); + margin: 0px; + border-bottom: 1px solid var(--header-separator-color); +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* + +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +*/ + +dl.bug dt a, dl.deprecated dt a, dl.todo dt a, dl.test a { + font-weight: bold !important; +} + +dl.warning, dl.attention, dl.note, dl.deprecated, dl.bug, +dl.invariant, dl.pre, dl.post, dl.todo, dl.test, dl.remark { + padding: 10px; + margin: 10px 0px; + overflow: hidden; + margin-left: 0; + border-radius: 4px; +} + +dl.section dd { + margin-bottom: 2px; +} + +dl.warning, dl.attention { + background: var(--warning-color-bg); + border-left: 8px solid var(--warning-color-hl); + color: var(--warning-color-text); +} + +dl.warning dt, dl.attention dt { + color: var(--warning-color-hl); +} + +dl.note, dl.remark { + background: var(--note-color-bg); + border-left: 8px solid var(--note-color-hl); + color: var(--note-color-text); +} + +dl.note dt, dl.remark dt { + color: var(--note-color-hl); +} + +dl.todo { + background: var(--todo-color-bg); + border-left: 8px solid var(--todo-color-hl); + color: var(--todo-color-text); +} + +dl.todo dt { + color: var(--todo-color-hl); +} + +dl.test { + background: var(--test-color-bg); + border-left: 8px solid var(--test-color-hl); + color: var(--test-color-text); +} + +dl.test dt { + color: var(--test-color-hl); +} + +dl.bug dt a { + color: var(--bug-color-hl) !important; +} + +dl.bug { + background: var(--bug-color-bg); + border-left: 8px solid var(--bug-color-hl); + color: var(--bug-color-text); +} + +dl.bug dt a { + color: var(--bug-color-hl) !important; +} + +dl.deprecated { + background: var(--deprecated-color-bg); + border-left: 8px solid var(--deprecated-color-hl); + color: var(--deprecated-color-text); +} + +dl.deprecated dt a { + color: var(--deprecated-color-hl) !important; +} + +dl.section dd, dl.bug dd, dl.deprecated dd, dl.todo dd, dl.test dd { + margin-inline-start: 0px; +} + +dl.invariant, dl.pre, dl.post { + background: var(--invariant-color-bg); + border-left: 8px solid var(--invariant-color-hl); + color: var(--invariant-color-text); +} + +dl.invariant dt, dl.pre dt, dl.post dt { + color: var(--invariant-color-hl); +} + + +#projectrow +{ + height: 56px; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; + padding-left: 0.5em; +} + +#projectname +{ + font-size: 200%; + font-family: var(--font-family-title); + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font-size: 90%; + font-family: var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font-size: 50%; + font-family: 50% var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid var(--title-separator-color); + background-color: var(--title-background-color); +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:var(--citation-label-color); + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: var(--toc-background-color); + border: 1px solid var(--toc-border-color); + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: var(--toc-down-arrow-image) no-repeat scroll 0 5px transparent; + font: 10px/1.2 var(--font-family-toc); + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 var(--font-family-toc); + color: var(--toc-header-color); + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 15px; +} + +div.toc li.level4 { + margin-left: 15px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +span.obfuscator { + display: none; +} + +.inherit_header { + font-weight: bold; + color: var(--inherit-header-color); + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + /*white-space: nowrap;*/ + color: var(--tooltip-foreground-color); + background-color: var(--tooltip-background-color); + border: 1px solid var(--tooltip-border-color); + border-radius: 4px 4px 4px 4px; + box-shadow: var(--tooltip-shadow); + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: var(--tooltip-doc-color); + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip a { + color: var(--tooltip-link-color); +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: var(--tooltip-declaration-color); +} + +#powerTip div { + margin: 0px; + padding: 0px; + font-size: 12px; + font-family: var(--font-family-tooltip); + line-height: 16px; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before { + border-top-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +tt, code, kbd, samp +{ + display: inline-block; +} +/* @end */ + +u { + text-decoration: underline; +} + +details>summary { + list-style-type: none; +} + +details > summary::-webkit-details-marker { + display: none; +} + +details>summary::before { + content: "\25ba"; + padding-right:4px; + font-size: 80%; +} + +details[open]>summary::before { + content: "\25bc"; + padding-right:4px; + font-size: 80%; +} + +body { + scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color); +} + +::-webkit-scrollbar { + background-color: var(--scrollbar-background-color); + height: 12px; + width: 12px; +} +::-webkit-scrollbar-thumb { + border-radius: 6px; + box-shadow: inset 0 0 12px 12px var(--scrollbar-thumb-color); + border: solid 2px transparent; +} +::-webkit-scrollbar-corner { + background-color: var(--scrollbar-background-color); +} + diff --git a/api/v1.17/html/doxygen.svg b/api/v1.17/html/doxygen.svg new file mode 100644 index 00000000000..79a76354078 --- /dev/null +++ b/api/v1.17/html/doxygen.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/api/v1.17/html/doxygen_crawl.html b/api/v1.17/html/doxygen_crawl.html new file mode 100644 index 00000000000..73aff35908c --- /dev/null +++ b/api/v1.17/html/doxygen_crawl.html @@ -0,0 +1,118 @@ + + + +Validator / crawler helper + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/api/v1.17/html/dynsections.js b/api/v1.17/html/dynsections.js new file mode 100644 index 00000000000..8f493264f0d --- /dev/null +++ b/api/v1.17/html/dynsections.js @@ -0,0 +1,194 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ + +let dynsection = { + + // helper function + updateStripes : function() { + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); + $('table.directory tr'). + removeClass('odd').filter(':visible:odd').addClass('odd'); + }, + + toggleVisibility : function(linkObj) { + const base = $(linkObj).attr('id'); + const summary = $('#'+base+'-summary'); + const content = $('#'+base+'-content'); + const trigger = $('#'+base+'-trigger'); + const src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; + }, + + toggleLevel : function(level) { + $('table.directory tr').each(function() { + const l = this.id.split('_').length-1; + const i = $('#img'+this.id.substring(3)); + const a = $('#arr'+this.id.substring(3)); + if (l'); + // add vertical lines to other rows + $('span[class=lineno]').not(':eq(0)').append(''); + // add toggle controls to lines with fold divs + $('div[class=foldopen]').each(function() { + // extract specific id to use + const id = $(this).attr('id').replace('foldopen',''); + // extract start and end foldable fragment attributes + const start = $(this).attr('data-start'); + const end = $(this).attr('data-end'); + // replace normal fold span with controls for the first line of a foldable fragment + $(this).find('span[class=fold]:first').replaceWith(''); + // append div for folded (closed) representation + $(this).after(''); + // extract the first line from the "open" section to represent closed content + const line = $(this).children().first().clone(); + // remove any glow that might still be active on the original line + $(line).removeClass('glow'); + if (start) { + // if line already ends with a start marker (e.g. trailing {), remove it + $(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),'')); + } + // replace minus with plus symbol + $(line).find('span[class=fold]').css('background-image',codefold.plusImg[relPath]); + // append ellipsis + $(line).append(' '+start+''+end); + // insert constructed line into closed div + $('#foldclosed'+id).html(line); + }); + }, +}; +/* @license-end */ diff --git a/api/v1.17/html/examples.html b/api/v1.17/html/examples.html new file mode 100644 index 00000000000..f46d13ca7ac --- /dev/null +++ b/api/v1.17/html/examples.html @@ -0,0 +1,113 @@ + + + + + + + +UCX: Examples + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Examples
+
+
+
Here is a list of all examples:
+
+
+ + + + diff --git a/api/v1.17/html/examples.js b/api/v1.17/html/examples.js new file mode 100644 index 00000000000..80aea10be65 --- /dev/null +++ b/api/v1.17/html/examples.js @@ -0,0 +1,6 @@ +var examples = +[ + [ "ucp_hello_world.c", "ucp_hello_world_8c-example.html", null ], + [ "ucp_client_server.c", "ucp_client_server_8c-example.html", null ], + [ "uct_hello_world.c", "uct_hello_world_8c-example.html", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/folderclosed.svg b/api/v1.17/html/folderclosed.svg new file mode 100644 index 00000000000..b04bed2e723 --- /dev/null +++ b/api/v1.17/html/folderclosed.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/api/v1.17/html/folderclosedd.svg b/api/v1.17/html/folderclosedd.svg new file mode 100644 index 00000000000..52f0166a23e --- /dev/null +++ b/api/v1.17/html/folderclosedd.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/api/v1.17/html/folderopen.svg b/api/v1.17/html/folderopen.svg new file mode 100644 index 00000000000..f6896dd254b --- /dev/null +++ b/api/v1.17/html/folderopen.svg @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/api/v1.17/html/folderopend.svg b/api/v1.17/html/folderopend.svg new file mode 100644 index 00000000000..2d1f06e7bc6 --- /dev/null +++ b/api/v1.17/html/folderopend.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/api/v1.17/html/functions.html b/api/v1.17/html/functions.html new file mode 100644 index 00000000000..520a389dfaf --- /dev/null +++ b/api/v1.17/html/functions.html @@ -0,0 +1,129 @@ + + + + + + + +UCX: Data Fields + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- a -

+
+
+ + + + diff --git a/api/v1.17/html/functions_b.html b/api/v1.17/html/functions_b.html new file mode 100644 index 00000000000..5d308f1f65c --- /dev/null +++ b/api/v1.17/html/functions_b.html @@ -0,0 +1,113 @@ + + + + + + + +UCX: Data Fields + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- b -

+
+
+ + + + diff --git a/api/v1.17/html/functions_c.html b/api/v1.17/html/functions_c.html new file mode 100644 index 00000000000..f864b9b2593 --- /dev/null +++ b/api/v1.17/html/functions_c.html @@ -0,0 +1,126 @@ + + + + + + + +UCX: Data Fields + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- c -

+
+
+ + + + diff --git a/api/v1.17/html/functions_d.html b/api/v1.17/html/functions_d.html new file mode 100644 index 00000000000..07e9af2ebca --- /dev/null +++ b/api/v1.17/html/functions_d.html @@ -0,0 +1,125 @@ + + + + + + + +UCX: Data Fields + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- d -

+
+
+ + + + diff --git a/api/v1.17/html/functions_dup.js b/api/v1.17/html/functions_dup.js new file mode 100644 index 00000000000..0fc0df87c29 --- /dev/null +++ b/api/v1.17/html/functions_dup.js @@ -0,0 +1,23 @@ +var functions_dup = +[ + [ "a", "functions.html", null ], + [ "b", "functions_b.html", null ], + [ "c", "functions_c.html", null ], + [ "d", "functions_d.html", null ], + [ "e", "functions_e.html", null ], + [ "f", "functions_f.html", null ], + [ "g", "functions_g.html", null ], + [ "h", "functions_h.html", null ], + [ "i", "functions_i.html", null ], + [ "k", "functions_k.html", null ], + [ "l", "functions_l.html", null ], + [ "m", "functions_m.html", null ], + [ "n", "functions_n.html", null ], + [ "o", "functions_o.html", null ], + [ "p", "functions_p.html", null ], + [ "r", "functions_r.html", null ], + [ "s", "functions_s.html", null ], + [ "t", "functions_t.html", null ], + [ "u", "functions_u.html", null ], + [ "w", "functions_w.html", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/functions_e.html b/api/v1.17/html/functions_e.html new file mode 100644 index 00000000000..9a91ccb22fb --- /dev/null +++ b/api/v1.17/html/functions_e.html @@ -0,0 +1,127 @@ + + + + + + + +UCX: Data Fields + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- e -

+
+
+ + + + diff --git a/api/v1.17/html/functions_f.html b/api/v1.17/html/functions_f.html new file mode 100644 index 00000000000..45451b579f7 --- /dev/null +++ b/api/v1.17/html/functions_f.html @@ -0,0 +1,117 @@ + + + + + + + +UCX: Data Fields + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- f -

+
+
+ + + + diff --git a/api/v1.17/html/functions_g.html b/api/v1.17/html/functions_g.html new file mode 100644 index 00000000000..d043bbda398 --- /dev/null +++ b/api/v1.17/html/functions_g.html @@ -0,0 +1,110 @@ + + + + + + + +UCX: Data Fields + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- g -

+
+
+ + + + diff --git a/api/v1.17/html/functions_h.html b/api/v1.17/html/functions_h.html new file mode 100644 index 00000000000..805fc26d5e6 --- /dev/null +++ b/api/v1.17/html/functions_h.html @@ -0,0 +1,110 @@ + + + + + + + +UCX: Data Fields + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- h -

+
+
+ + + + diff --git a/api/v1.17/html/functions_i.html b/api/v1.17/html/functions_i.html new file mode 100644 index 00000000000..0bf6107f7e3 --- /dev/null +++ b/api/v1.17/html/functions_i.html @@ -0,0 +1,113 @@ + + + + + + + +UCX: Data Fields + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- i -

+
+
+ + + + diff --git a/api/v1.17/html/functions_k.html b/api/v1.17/html/functions_k.html new file mode 100644 index 00000000000..0e8304b75eb --- /dev/null +++ b/api/v1.17/html/functions_k.html @@ -0,0 +1,110 @@ + + + + + + + +UCX: Data Fields + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- k -

+
+
+ + + + diff --git a/api/v1.17/html/functions_l.html b/api/v1.17/html/functions_l.html new file mode 100644 index 00000000000..707f45544f3 --- /dev/null +++ b/api/v1.17/html/functions_l.html @@ -0,0 +1,115 @@ + + + + + + + +UCX: Data Fields + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- l -

+
+
+ + + + diff --git a/api/v1.17/html/functions_m.html b/api/v1.17/html/functions_m.html new file mode 100644 index 00000000000..847a0c786b0 --- /dev/null +++ b/api/v1.17/html/functions_m.html @@ -0,0 +1,137 @@ + + + + + + + +UCX: Data Fields + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- m -

+
+
+ + + + diff --git a/api/v1.17/html/functions_n.html b/api/v1.17/html/functions_n.html new file mode 100644 index 00000000000..ac05ff83e57 --- /dev/null +++ b/api/v1.17/html/functions_n.html @@ -0,0 +1,111 @@ + + + + + + + +UCX: Data Fields + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- n -

+
+
+ + + + diff --git a/api/v1.17/html/functions_o.html b/api/v1.17/html/functions_o.html new file mode 100644 index 00000000000..49b8dc6af98 --- /dev/null +++ b/api/v1.17/html/functions_o.html @@ -0,0 +1,114 @@ + + + + + + + +UCX: Data Fields + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- o -

+
+
+ + + + diff --git a/api/v1.17/html/functions_p.html b/api/v1.17/html/functions_p.html new file mode 100644 index 00000000000..e7393e8b4c6 --- /dev/null +++ b/api/v1.17/html/functions_p.html @@ -0,0 +1,118 @@ + + + + + + + +UCX: Data Fields + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- p -

+
+
+ + + + diff --git a/api/v1.17/html/functions_r.html b/api/v1.17/html/functions_r.html new file mode 100644 index 00000000000..84645c6ff0f --- /dev/null +++ b/api/v1.17/html/functions_r.html @@ -0,0 +1,131 @@ + + + + + + + +UCX: Data Fields + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- r -

+
+
+ + + + diff --git a/api/v1.17/html/functions_s.html b/api/v1.17/html/functions_s.html new file mode 100644 index 00000000000..6da7aa4b302 --- /dev/null +++ b/api/v1.17/html/functions_s.html @@ -0,0 +1,124 @@ + + + + + + + +UCX: Data Fields + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- s -

+
+
+ + + + diff --git a/api/v1.17/html/functions_t.html b/api/v1.17/html/functions_t.html new file mode 100644 index 00000000000..f763c8fe053 --- /dev/null +++ b/api/v1.17/html/functions_t.html @@ -0,0 +1,118 @@ + + + + + + + +UCX: Data Fields + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- t -

+
+
+ + + + diff --git a/api/v1.17/html/functions_u.html b/api/v1.17/html/functions_u.html new file mode 100644 index 00000000000..74d6a9c25b2 --- /dev/null +++ b/api/v1.17/html/functions_u.html @@ -0,0 +1,111 @@ + + + + + + + +UCX: Data Fields + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- u -

+
+
+ + + + diff --git a/api/v1.17/html/functions_vars.html b/api/v1.17/html/functions_vars.html new file mode 100644 index 00000000000..51519aa5ebe --- /dev/null +++ b/api/v1.17/html/functions_vars.html @@ -0,0 +1,129 @@ + + + + + + + +UCX: Data Fields - Variables + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the structures/unions they belong to:
+ +

- a -

+
+
+ + + + diff --git a/api/v1.17/html/functions_vars.js b/api/v1.17/html/functions_vars.js new file mode 100644 index 00000000000..d624f7ccd9d --- /dev/null +++ b/api/v1.17/html/functions_vars.js @@ -0,0 +1,23 @@ +var functions_vars = +[ + [ "a", "functions_vars.html", null ], + [ "b", "functions_vars_b.html", null ], + [ "c", "functions_vars_c.html", null ], + [ "d", "functions_vars_d.html", null ], + [ "e", "functions_vars_e.html", null ], + [ "f", "functions_vars_f.html", null ], + [ "g", "functions_vars_g.html", null ], + [ "h", "functions_vars_h.html", null ], + [ "i", "functions_vars_i.html", null ], + [ "k", "functions_vars_k.html", null ], + [ "l", "functions_vars_l.html", null ], + [ "m", "functions_vars_m.html", null ], + [ "n", "functions_vars_n.html", null ], + [ "o", "functions_vars_o.html", null ], + [ "p", "functions_vars_p.html", null ], + [ "r", "functions_vars_r.html", null ], + [ "s", "functions_vars_s.html", null ], + [ "t", "functions_vars_t.html", null ], + [ "u", "functions_vars_u.html", null ], + [ "w", "functions_vars_w.html", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/functions_vars_b.html b/api/v1.17/html/functions_vars_b.html new file mode 100644 index 00000000000..832b09ff465 --- /dev/null +++ b/api/v1.17/html/functions_vars_b.html @@ -0,0 +1,113 @@ + + + + + + + +UCX: Data Fields - Variables + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the structures/unions they belong to:
+ +

- b -

+
+
+ + + + diff --git a/api/v1.17/html/functions_vars_c.html b/api/v1.17/html/functions_vars_c.html new file mode 100644 index 00000000000..acadaa9fabb --- /dev/null +++ b/api/v1.17/html/functions_vars_c.html @@ -0,0 +1,126 @@ + + + + + + + +UCX: Data Fields - Variables + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the structures/unions they belong to:
+ +

- c -

+
+
+ + + + diff --git a/api/v1.17/html/functions_vars_d.html b/api/v1.17/html/functions_vars_d.html new file mode 100644 index 00000000000..226ebb7a935 --- /dev/null +++ b/api/v1.17/html/functions_vars_d.html @@ -0,0 +1,125 @@ + + + + + + + +UCX: Data Fields - Variables + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the structures/unions they belong to:
+ +

- d -

+
+
+ + + + diff --git a/api/v1.17/html/functions_vars_e.html b/api/v1.17/html/functions_vars_e.html new file mode 100644 index 00000000000..68d76f6cc1d --- /dev/null +++ b/api/v1.17/html/functions_vars_e.html @@ -0,0 +1,127 @@ + + + + + + + +UCX: Data Fields - Variables + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the structures/unions they belong to:
+ +

- e -

+
+
+ + + + diff --git a/api/v1.17/html/functions_vars_f.html b/api/v1.17/html/functions_vars_f.html new file mode 100644 index 00000000000..b9973c061df --- /dev/null +++ b/api/v1.17/html/functions_vars_f.html @@ -0,0 +1,117 @@ + + + + + + + +UCX: Data Fields - Variables + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the structures/unions they belong to:
+ +

- f -

+
+
+ + + + diff --git a/api/v1.17/html/functions_vars_g.html b/api/v1.17/html/functions_vars_g.html new file mode 100644 index 00000000000..258cea6e276 --- /dev/null +++ b/api/v1.17/html/functions_vars_g.html @@ -0,0 +1,110 @@ + + + + + + + +UCX: Data Fields - Variables + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the structures/unions they belong to:
+ +

- g -

+
+
+ + + + diff --git a/api/v1.17/html/functions_vars_h.html b/api/v1.17/html/functions_vars_h.html new file mode 100644 index 00000000000..65265355ff0 --- /dev/null +++ b/api/v1.17/html/functions_vars_h.html @@ -0,0 +1,110 @@ + + + + + + + +UCX: Data Fields - Variables + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the structures/unions they belong to:
+ +

- h -

+
+
+ + + + diff --git a/api/v1.17/html/functions_vars_i.html b/api/v1.17/html/functions_vars_i.html new file mode 100644 index 00000000000..00b18b6091d --- /dev/null +++ b/api/v1.17/html/functions_vars_i.html @@ -0,0 +1,113 @@ + + + + + + + +UCX: Data Fields - Variables + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the structures/unions they belong to:
+ +

- i -

+
+
+ + + + diff --git a/api/v1.17/html/functions_vars_k.html b/api/v1.17/html/functions_vars_k.html new file mode 100644 index 00000000000..7323d3f1661 --- /dev/null +++ b/api/v1.17/html/functions_vars_k.html @@ -0,0 +1,110 @@ + + + + + + + +UCX: Data Fields - Variables + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the structures/unions they belong to:
+ +

- k -

+
+
+ + + + diff --git a/api/v1.17/html/functions_vars_l.html b/api/v1.17/html/functions_vars_l.html new file mode 100644 index 00000000000..91e5e15d736 --- /dev/null +++ b/api/v1.17/html/functions_vars_l.html @@ -0,0 +1,115 @@ + + + + + + + +UCX: Data Fields - Variables + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the structures/unions they belong to:
+ +

- l -

+
+
+ + + + diff --git a/api/v1.17/html/functions_vars_m.html b/api/v1.17/html/functions_vars_m.html new file mode 100644 index 00000000000..d33d24b9233 --- /dev/null +++ b/api/v1.17/html/functions_vars_m.html @@ -0,0 +1,137 @@ + + + + + + + +UCX: Data Fields - Variables + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the structures/unions they belong to:
+ +

- m -

+
+
+ + + + diff --git a/api/v1.17/html/functions_vars_n.html b/api/v1.17/html/functions_vars_n.html new file mode 100644 index 00000000000..f23118098d1 --- /dev/null +++ b/api/v1.17/html/functions_vars_n.html @@ -0,0 +1,111 @@ + + + + + + + +UCX: Data Fields - Variables + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the structures/unions they belong to:
+ +

- n -

+
+
+ + + + diff --git a/api/v1.17/html/functions_vars_o.html b/api/v1.17/html/functions_vars_o.html new file mode 100644 index 00000000000..1c723318c58 --- /dev/null +++ b/api/v1.17/html/functions_vars_o.html @@ -0,0 +1,114 @@ + + + + + + + +UCX: Data Fields - Variables + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the structures/unions they belong to:
+ +

- o -

+
+
+ + + + diff --git a/api/v1.17/html/functions_vars_p.html b/api/v1.17/html/functions_vars_p.html new file mode 100644 index 00000000000..fd3183d5d05 --- /dev/null +++ b/api/v1.17/html/functions_vars_p.html @@ -0,0 +1,118 @@ + + + + + + + +UCX: Data Fields - Variables + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the structures/unions they belong to:
+ +

- p -

+
+
+ + + + diff --git a/api/v1.17/html/functions_vars_r.html b/api/v1.17/html/functions_vars_r.html new file mode 100644 index 00000000000..214f18317eb --- /dev/null +++ b/api/v1.17/html/functions_vars_r.html @@ -0,0 +1,131 @@ + + + + + + + +UCX: Data Fields - Variables + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the structures/unions they belong to:
+ +

- r -

+
+
+ + + + diff --git a/api/v1.17/html/functions_vars_s.html b/api/v1.17/html/functions_vars_s.html new file mode 100644 index 00000000000..49df9bc70c6 --- /dev/null +++ b/api/v1.17/html/functions_vars_s.html @@ -0,0 +1,124 @@ + + + + + + + +UCX: Data Fields - Variables + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the structures/unions they belong to:
+ +

- s -

+
+
+ + + + diff --git a/api/v1.17/html/functions_vars_t.html b/api/v1.17/html/functions_vars_t.html new file mode 100644 index 00000000000..3ec42b1a4bc --- /dev/null +++ b/api/v1.17/html/functions_vars_t.html @@ -0,0 +1,118 @@ + + + + + + + +UCX: Data Fields - Variables + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the structures/unions they belong to:
+ +

- t -

+
+
+ + + + diff --git a/api/v1.17/html/functions_vars_u.html b/api/v1.17/html/functions_vars_u.html new file mode 100644 index 00000000000..1883ae16162 --- /dev/null +++ b/api/v1.17/html/functions_vars_u.html @@ -0,0 +1,111 @@ + + + + + + + +UCX: Data Fields - Variables + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the structures/unions they belong to:
+ +

- u -

+
+
+ + + + diff --git a/api/v1.17/html/functions_vars_w.html b/api/v1.17/html/functions_vars_w.html new file mode 100644 index 00000000000..0b06fd0fbe0 --- /dev/null +++ b/api/v1.17/html/functions_vars_w.html @@ -0,0 +1,110 @@ + + + + + + + +UCX: Data Fields - Variables + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the structures/unions they belong to:
+ +

- w -

+
+
+ + + + diff --git a/api/v1.17/html/functions_w.html b/api/v1.17/html/functions_w.html new file mode 100644 index 00000000000..14b1e7b360c --- /dev/null +++ b/api/v1.17/html/functions_w.html @@ -0,0 +1,110 @@ + + + + + + + +UCX: Data Fields + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- w -

+
+
+ + + + diff --git a/api/v1.17/html/group___u_c_p___a_p_i.html b/api/v1.17/html/group___u_c_p___a_p_i.html new file mode 100644 index 00000000000..d8fc0708bf5 --- /dev/null +++ b/api/v1.17/html/group___u_c_p___a_p_i.html @@ -0,0 +1,132 @@ + + + + + + + +UCX: Unified Communication Protocol (UCP) API + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Unified Communication Protocol (UCP) API
+
+
+ + + + + + + + + + + + + + + + + + +

+Topics

 UCP Application Context
 
 UCP Worker
 
 UCP Memory routines
 
 UCP Wake-up routines
 
 UCP Endpoint
 
 UCP Communication routines
 
 UCP Configuration
 
 UCP Data type routines
 
+

Detailed Description

+

This section describes UCP API.

+
+
+ + + + diff --git a/api/v1.17/html/group___u_c_p___c_o_m_m.html b/api/v1.17/html/group___u_c_p___c_o_m_m.html new file mode 100644 index 00000000000..6afcf880edc --- /dev/null +++ b/api/v1.17/html/group___u_c_p___c_o_m_m.html @@ -0,0 +1,3484 @@ + + + + + + + +UCX: UCP Communication routines + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ + + + + + + + +

+Data Structures

struct  ucp_request_attr_t
 Attributes of a particular request. More...
 
struct  ucp_err_handler
 UCP endpoint error handling context. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef uint64_t ucp_tag_t
 UCP Tag Identifier.
 
typedef struct ucp_recv_desc * ucp_tag_message_h
 UCP Message descriptor.
 
typedef uint64_t ucp_datatype_t
 UCP Datatype Identifier.
 
typedef void(* ucp_send_callback_t) (void *request, ucs_status_t status)
 Completion callback for non-blocking sends.
 
typedef void(* ucp_send_nbx_callback_t) (void *request, ucs_status_t status, void *user_data)
 Completion callback for non-blocking sends.
 
typedef void(* ucp_err_handler_cb_t) (void *arg, ucp_ep_h ep, ucs_status_t status)
 Callback to process peer failure.
 
typedef struct ucp_err_handler ucp_err_handler_t
 UCP endpoint error handling context.
 
typedef void(* ucp_stream_recv_callback_t) (void *request, ucs_status_t status, size_t length)
 Completion callback for non-blocking stream oriented receives.
 
typedef void(* ucp_stream_recv_nbx_callback_t) (void *request, ucs_status_t status, size_t length, void *user_data)
 Completion callback for non-blocking stream receives ucp_stream_recv_nbx call.
 
typedef void(* ucp_tag_recv_callback_t) (void *request, ucs_status_t status, ucp_tag_recv_info_t *info)
 Completion callback for non-blocking tag receives.
 
typedef void(* ucp_tag_recv_nbx_callback_t) (void *request, ucs_status_t status, const ucp_tag_recv_info_t *tag_info, void *user_data)
 Completion callback for non-blocking tag receives ucp_tag_recv_nbx call.
 
typedef void(* ucp_am_recv_data_nbx_callback_t) (void *request, ucs_status_t status, size_t length, void *user_data)
 Completion callback for non-blocking Active Message receives.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Enumerations

enum  ucp_atomic_op_t {
+  UCP_ATOMIC_OP_ADD +, UCP_ATOMIC_OP_SWAP +, UCP_ATOMIC_OP_CSWAP +, UCP_ATOMIC_OP_AND +,
+  UCP_ATOMIC_OP_OR +, UCP_ATOMIC_OP_XOR +, UCP_ATOMIC_OP_LAST +
+ }
 Atomic operation requested for ucp_atomic_op_nbx. More...
 
enum  ucp_stream_recv_flags_t { UCP_STREAM_RECV_FLAG_WAITALL = UCS_BIT(0) + }
 Flags to define behavior of ucp_stream_recv_nb function. More...
 
enum  ucp_op_attr_t {
+  UCP_OP_ATTR_FIELD_REQUEST = UCS_BIT(0) +, UCP_OP_ATTR_FIELD_CALLBACK = UCS_BIT(1) +, UCP_OP_ATTR_FIELD_USER_DATA = UCS_BIT(2) +, UCP_OP_ATTR_FIELD_DATATYPE = UCS_BIT(3) +,
+  UCP_OP_ATTR_FIELD_FLAGS = UCS_BIT(4) +, UCP_OP_ATTR_FIELD_REPLY_BUFFER = UCS_BIT(5) +, UCP_OP_ATTR_FIELD_MEMORY_TYPE = UCS_BIT(6) +, UCP_OP_ATTR_FIELD_RECV_INFO = UCS_BIT(7) +,
+  UCP_OP_ATTR_FIELD_MEMH = UCS_BIT(8) +, UCP_OP_ATTR_FLAG_NO_IMM_CMPL = UCS_BIT(16) +, UCP_OP_ATTR_FLAG_FAST_CMPL = UCS_BIT(17) +, UCP_OP_ATTR_FLAG_FORCE_IMM_CMPL = UCS_BIT(18) +,
+  UCP_OP_ATTR_FLAG_MULTI_SEND = UCS_BIT(19) +
+ }
 UCP operation fields and flags. More...
 
enum  ucp_req_attr_field { UCP_REQUEST_ATTR_FIELD_INFO_STRING = UCS_BIT(0) +, UCP_REQUEST_ATTR_FIELD_INFO_STRING_SIZE = UCS_BIT(1) +, UCP_REQUEST_ATTR_FIELD_STATUS = UCS_BIT(2) +, UCP_REQUEST_ATTR_FIELD_MEM_TYPE = UCS_BIT(3) + }
 UCP request query attributes. More...
 
enum  ucp_am_recv_attr_t { UCP_AM_RECV_ATTR_FIELD_REPLY_EP = UCS_BIT(0) +, UCP_AM_RECV_ATTR_FLAG_DATA = UCS_BIT(16) +, UCP_AM_RECV_ATTR_FLAG_RNDV = UCS_BIT(17) + }
 UCP AM receive data parameter fields and flags. More...
 
enum  ucp_am_handler_param_field { UCP_AM_HANDLER_PARAM_FIELD_ID = UCS_BIT(0) +, UCP_AM_HANDLER_PARAM_FIELD_FLAGS = UCS_BIT(1) +, UCP_AM_HANDLER_PARAM_FIELD_CB = UCS_BIT(2) +, UCP_AM_HANDLER_PARAM_FIELD_ARG = UCS_BIT(3) + }
 UCP AM receive data parameters fields and flags. More...
 
enum  ucp_atomic_post_op_t {
+  UCP_ATOMIC_POST_OP_ADD +, UCP_ATOMIC_POST_OP_AND +, UCP_ATOMIC_POST_OP_OR +, UCP_ATOMIC_POST_OP_XOR +,
+  UCP_ATOMIC_POST_OP_LAST +
+ }
 Atomic operation requested for ucp_atomic_post. More...
 
enum  ucp_atomic_fetch_op_t {
+  UCP_ATOMIC_FETCH_OP_FADD +, UCP_ATOMIC_FETCH_OP_SWAP +, UCP_ATOMIC_FETCH_OP_CSWAP +, UCP_ATOMIC_FETCH_OP_FAND +,
+  UCP_ATOMIC_FETCH_OP_FOR +, UCP_ATOMIC_FETCH_OP_FXOR +, UCP_ATOMIC_FETCH_OP_LAST +
+ }
 Atomic operation requested for ucp_atomic_fetch. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

ucs_status_t ucp_request_query (void *request, ucp_request_attr_t *attr)
 Get information about ucp_request.
 
ucs_status_ptr_t ucp_am_send_nbx (ucp_ep_h ep, unsigned id, const void *header, size_t header_length, const void *buffer, size_t count, const ucp_request_param_t *param)
 Send Active Message.
 
ucs_status_ptr_t ucp_am_recv_data_nbx (ucp_worker_h worker, void *data_desc, void *buffer, size_t count, const ucp_request_param_t *param)
 Receive Active Message as defined by provided data descriptor.
 
void ucp_am_data_release (ucp_worker_h worker, void *data)
 Releases Active Message data.
 
ucs_status_ptr_t ucp_stream_send_nbx (ucp_ep_h ep, const void *buffer, size_t count, const ucp_request_param_t *param)
 Non-blocking stream send operation.
 
ucs_status_ptr_t ucp_tag_send_nbx (ucp_ep_h ep, const void *buffer, size_t count, ucp_tag_t tag, const ucp_request_param_t *param)
 Non-blocking tagged-send operation.
 
ucs_status_ptr_t ucp_tag_send_sync_nbx (ucp_ep_h ep, const void *buffer, size_t count, ucp_tag_t tag, const ucp_request_param_t *param)
 Non-blocking synchronous tagged-send operation.
 
ucs_status_ptr_t ucp_stream_recv_nbx (ucp_ep_h ep, void *buffer, size_t count, size_t *length, const ucp_request_param_t *param)
 Non-blocking stream receive operation of structured data into a user-supplied buffer.
 
ucs_status_ptr_t ucp_stream_recv_data_nb (ucp_ep_h ep, size_t *length)
 Non-blocking stream receive operation of unstructured data into a UCP-supplied buffer.
 
ucs_status_ptr_t ucp_tag_recv_nbx (ucp_worker_h worker, void *buffer, size_t count, ucp_tag_t tag, ucp_tag_t tag_mask, const ucp_request_param_t *param)
 Non-blocking tagged-receive operation.
 
ucp_tag_message_h ucp_tag_probe_nb (ucp_worker_h worker, ucp_tag_t tag, ucp_tag_t tag_mask, int remove, ucp_tag_recv_info_t *info)
 Non-blocking probe and return a message.
 
ucs_status_ptr_t ucp_tag_msg_recv_nbx (ucp_worker_h worker, void *buffer, size_t count, ucp_tag_message_h message, const ucp_request_param_t *param)
 Non-blocking receive operation for a probed message.
 
ucs_status_ptr_t ucp_put_nbx (ucp_ep_h ep, const void *buffer, size_t count, uint64_t remote_addr, ucp_rkey_h rkey, const ucp_request_param_t *param)
 Non-blocking remote memory put operation.
 
ucs_status_ptr_t ucp_get_nbx (ucp_ep_h ep, void *buffer, size_t count, uint64_t remote_addr, ucp_rkey_h rkey, const ucp_request_param_t *param)
 Non-blocking remote memory get operation.
 
ucs_status_ptr_t ucp_atomic_op_nbx (ucp_ep_h ep, ucp_atomic_op_t opcode, const void *buffer, size_t count, uint64_t remote_addr, ucp_rkey_h rkey, const ucp_request_param_t *param)
 Post an atomic memory operation.
 
ucs_status_t ucp_request_check_status (void *request)
 Check the status of non-blocking request.
 
ucs_status_t ucp_tag_recv_request_test (void *request, ucp_tag_recv_info_t *info)
 Check the status and currently available state of non-blocking request returned from ucp_tag_recv_nb routine.
 
ucs_status_t ucp_stream_recv_request_test (void *request, size_t *length_p)
 Check the status and currently available state of non-blocking request returned from ucp_stream_recv_nb routine.
 
void ucp_request_cancel (ucp_worker_h worker, void *request)
 Cancel an outstanding communications request.
 
void ucp_stream_data_release (ucp_ep_h ep, void *data)
 Release UCP data buffer returned by ucp_stream_recv_data_nb.
 
void ucp_request_free (void *request)
 Release a communications request.
 
void * ucp_request_alloc (ucp_worker_h worker)
 Create an empty communications request.
 
int ucp_request_is_completed (void *request)
 
ucs_status_t ucp_put (ucp_ep_h ep, const void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey)
 Blocking remote memory put operation.
 
ucs_status_t ucp_get (ucp_ep_h ep, void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey)
 Blocking remote memory get operation.
 
ucs_status_t ucp_atomic_add32 (ucp_ep_h ep, uint32_t add, uint64_t remote_addr, ucp_rkey_h rkey)
 Blocking atomic add operation for 32 bit integers.
 
ucs_status_t ucp_atomic_add64 (ucp_ep_h ep, uint64_t add, uint64_t remote_addr, ucp_rkey_h rkey)
 Blocking atomic add operation for 64 bit integers.
 
ucs_status_t ucp_atomic_fadd32 (ucp_ep_h ep, uint32_t add, uint64_t remote_addr, ucp_rkey_h rkey, uint32_t *result)
 Blocking atomic fetch and add operation for 32 bit integers.
 
ucs_status_t ucp_atomic_fadd64 (ucp_ep_h ep, uint64_t add, uint64_t remote_addr, ucp_rkey_h rkey, uint64_t *result)
 Blocking atomic fetch and add operation for 64 bit integers.
 
ucs_status_t ucp_atomic_swap32 (ucp_ep_h ep, uint32_t swap, uint64_t remote_addr, ucp_rkey_h rkey, uint32_t *result)
 Blocking atomic swap operation for 32 bit values.
 
ucs_status_t ucp_atomic_swap64 (ucp_ep_h ep, uint64_t swap, uint64_t remote_addr, ucp_rkey_h rkey, uint64_t *result)
 Blocking atomic swap operation for 64 bit values.
 
ucs_status_t ucp_atomic_cswap32 (ucp_ep_h ep, uint32_t compare, uint32_t swap, uint64_t remote_addr, ucp_rkey_h rkey, uint32_t *result)
 Blocking atomic conditional swap (cswap) operation for 32 bit values.
 
ucs_status_t ucp_atomic_cswap64 (ucp_ep_h ep, uint64_t compare, uint64_t swap, uint64_t remote_addr, ucp_rkey_h rkey, uint64_t *result)
 Blocking atomic conditional swap (cswap) operation for 64 bit values.
 
ucs_status_ptr_t ucp_am_send_nb (ucp_ep_h ep, uint16_t id, const void *buffer, size_t count, ucp_datatype_t datatype, ucp_send_callback_t cb, unsigned flags)
 Send Active Message.
 
ucs_status_ptr_t ucp_stream_send_nb (ucp_ep_h ep, const void *buffer, size_t count, ucp_datatype_t datatype, ucp_send_callback_t cb, unsigned flags)
 Non-blocking stream send operation.
 
ucs_status_ptr_t ucp_stream_recv_nb (ucp_ep_h ep, void *buffer, size_t count, ucp_datatype_t datatype, ucp_stream_recv_callback_t cb, size_t *length, unsigned flags)
 Non-blocking stream receive operation of structured data into a user-supplied buffer.
 
ucs_status_ptr_t ucp_tag_send_nb (ucp_ep_h ep, const void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_t tag, ucp_send_callback_t cb)
 Non-blocking tagged-send operations.
 
ucs_status_t ucp_tag_send_nbr (ucp_ep_h ep, const void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_t tag, void *req)
 Non-blocking tagged-send operations with user provided request.
 
ucs_status_ptr_t ucp_tag_send_sync_nb (ucp_ep_h ep, const void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_t tag, ucp_send_callback_t cb)
 Non-blocking synchronous tagged-send operation.
 
ucs_status_ptr_t ucp_tag_recv_nb (ucp_worker_h worker, void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_t tag, ucp_tag_t tag_mask, ucp_tag_recv_callback_t cb)
 Non-blocking tagged-receive operation.
 
ucs_status_t ucp_tag_recv_nbr (ucp_worker_h worker, void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_t tag, ucp_tag_t tag_mask, void *req)
 Non-blocking tagged-receive operation.
 
ucs_status_ptr_t ucp_tag_msg_recv_nb (ucp_worker_h worker, void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_message_h message, ucp_tag_recv_callback_t cb)
 Non-blocking receive operation for a probed message.
 
ucs_status_t ucp_put_nbi (ucp_ep_h ep, const void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey)
 Non-blocking implicit remote memory put operation.
 
ucs_status_ptr_t ucp_put_nb (ucp_ep_h ep, const void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey, ucp_send_callback_t cb)
 Non-blocking remote memory put operation.
 
ucs_status_t ucp_get_nbi (ucp_ep_h ep, void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey)
 Non-blocking implicit remote memory get operation.
 
ucs_status_ptr_t ucp_get_nb (ucp_ep_h ep, void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey, ucp_send_callback_t cb)
 Non-blocking remote memory get operation.
 
ucs_status_t ucp_atomic_post (ucp_ep_h ep, ucp_atomic_post_op_t opcode, uint64_t value, size_t op_size, uint64_t remote_addr, ucp_rkey_h rkey)
 Post an atomic memory operation.
 
ucs_status_ptr_t ucp_atomic_fetch_nb (ucp_ep_h ep, ucp_atomic_fetch_op_t opcode, uint64_t value, void *result, size_t op_size, uint64_t remote_addr, ucp_rkey_h rkey, ucp_send_callback_t cb)
 Post an atomic fetch operation.
 
+

Detailed Description

+

UCP Communication routines

+

Data Structure Documentation

+ +

◆ ucp_request_attr_t

+ +
+
+ + + + +
struct ucp_request_attr_t
+
+
+ + + + + + + + + + + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from ucp_req_attr_field. Fields not specified in this mask will be ignored. Provides ABI compatibility with respect to adding new fields.

+
+char * +debug_string +

Pointer to allocated string of size debug_string_size that will be filled with debug information about transports and protocols that were selected to complete the request.

+
+size_t +debug_string_size +

Size of the debug_string. String will be filled up to this size. Maximum possible size debug string can be obtained by querying the worker via ucp_worker_query.

+
+ucs_status_t +status +

Status of the request. The same as ucp_request_check_status.

+
+ucs_memory_type_t +mem_type +

Detected memory type of the buffer passed to the operation.

+
+ +
+
+ +

◆ ucp_err_handler

+ +
+
+ + + + +
struct ucp_err_handler
+
+

This structure should be initialized in ucp_ep_params_t to handle peer failure

+
+ + + + + + + +
Data Fields
+ucp_err_handler_cb_t +cb +

Error handler callback, if NULL, will not be called.

+
+void * +arg +

User defined argument associated with an endpoint, it will be overridden by ucp_ep_params_t::user_data if both are set.

+
+ +
+
+

Typedef Documentation

+ +

◆ ucp_tag_t

+ +
+
+ + + + +
typedef uint64_t ucp_tag_t
+
+

UCP tag identifier is a 64bit object used for message identification. UCP tag send and receive operations use the object for an implementation tag matching semantics (derivative of MPI tag matching semantics).

+ +
+
+ +

◆ ucp_tag_message_h

+ +
+
+ + + + +
typedef struct ucp_recv_desc* ucp_tag_message_h
+
+

UCP Message descriptor is an opaque handle for a message returned by ucp_tag_probe_nb. This handle can be passed to ucp_tag_msg_recv_nb in order to receive the message data to a specific buffer.

+ +
+
+ +

◆ ucp_datatype_t

+ +
+
+ + + + +
typedef uint64_t ucp_datatype_t
+
+

UCP datatype identifier is a 64bit object used for datatype identification. Predefined UCP identifiers are defined by ucp_dt_type.

+ +
+
+ +

◆ ucp_send_callback_t

+ +
+
+ + + + +
typedef void(* ucp_send_callback_t) (void *request, ucs_status_t status)
+
+

This callback routine is invoked whenever the send operation is completed. It is important to note that the call-back is only invoked in a case when the operation cannot be completed in place.

+
Parameters
+ + + +
[in]requestThe completed send request.
[in]statusCompletion status. If the send operation was completed successfully UCS_OK is returned. If send operation was canceled UCS_ERR_CANCELED is returned. Otherwise, an error status is returned.
+
+
+ +
+
+ +

◆ ucp_send_nbx_callback_t

+ +
+
+ + + + +
typedef void(* ucp_send_nbx_callback_t) (void *request, ucs_status_t status, void *user_data)
+
+

This callback routine is invoked whenever the ucp_tag_send_nbx, ucp_am_send_nbx, ucp_stream_send_nbx, ucp_put_nbx, ucp_get_nbx, ucp_atomic_op_nbx or any other "send operation" is completed.

+
Parameters
+ + + + +
[in]requestThe completed send request.
[in]statusCompletion status. If the send operation was completed successfully UCS_OK is returned. If send operation was canceled UCS_ERR_CANCELED is returned. Otherwise, an error status is returned.
[in]user_dataUser data passed to "user_data" value, see ucp_request_param_t
+
+
+
Examples
ucp_client_server.c.
+
+ +
+
+ +

◆ ucp_err_handler_cb_t

+ +
+
+ + + + +
typedef void(* ucp_err_handler_cb_t) (void *arg, ucp_ep_h ep, ucs_status_t status)
+
+

This callback routine is invoked when transport level error detected.

+
Parameters
+ + + + +
[in]argUser argument to be passed to the callback.
[in]epEndpoint to handle transport level error. Upon return from the callback, this ep is no longer usable and all subsequent operations on this ep will fail with the error code passed in status.
[in]statuserror status.
+
+
+ +
+
+ +

◆ ucp_err_handler_t

+ +
+
+ + + + +
typedef struct ucp_err_handler ucp_err_handler_t
+
+

This structure should be initialized in ucp_ep_params_t to handle peer failure

+ +
+
+ +

◆ ucp_stream_recv_callback_t

+ +
+
+ + + + +
typedef void(* ucp_stream_recv_callback_t) (void *request, ucs_status_t status, size_t length)
+
+

This callback routine is invoked whenever the receive operation is completed and the data is ready in the receive buffer.

+
Parameters
+ + + + +
[in]requestThe completed receive request.
[in]statusCompletion status. If the send operation was completed successfully UCS_OK is returned. Otherwise, an error status is returned.
[in]lengthThe size of the received data in bytes, always boundary of base datatype size. The value is valid only if the status is UCS_OK.
+
+
+ +
+
+ +

◆ ucp_stream_recv_nbx_callback_t

+ +
+
+ + + + +
typedef void(* ucp_stream_recv_nbx_callback_t) (void *request, ucs_status_t status, size_t length, void *user_data)
+
+

This callback routine is invoked whenever the receive operation is completed and the data is ready in the receive buffer.

+
Parameters
+ + + + + +
[in]requestThe completed receive request.
[in]statusCompletion status. If the send operation was completed successfully UCS_OK is returned. Otherwise, an error status is returned.
[in]lengthThe size of the received data in bytes, always on the boundary of base datatype size. The value is valid only if the status is UCS_OK.
[in]user_dataUser data passed to "user_data" value, see ucp_request_param_t.
+
+
+ +
+
+ +

◆ ucp_tag_recv_callback_t

+ +
+
+ + + + +
typedef void(* ucp_tag_recv_callback_t) (void *request, ucs_status_t status, ucp_tag_recv_info_t *info)
+
+

This callback routine is invoked whenever the receive operation is completed and the data is ready in the receive buffer.

+
Parameters
+ + + + +
[in]requestThe completed receive request.
[in]statusCompletion status. If the send operation was completed successfully UCS_OK is returned. If send operation was canceled UCS_ERR_CANCELED is returned. If the data can not fit into the receive buffer the UCS_ERR_MESSAGE_TRUNCATED error code is returned. Otherwise, an error status is returned.
[in]infoCompletion information The info descriptor is Valid only if the status is UCS_OK.
+
+
+ +
+
+ +

◆ ucp_tag_recv_nbx_callback_t

+ +
+
+ + + + +
typedef void(* ucp_tag_recv_nbx_callback_t) (void *request, ucs_status_t status, const ucp_tag_recv_info_t *tag_info, void *user_data)
+
+

This callback routine is invoked whenever the receive operation is completed and the data is ready in the receive buffer.

+
Parameters
+ + + + + +
[in]requestThe completed receive request.
[in]statusCompletion status. If the receive operation was completed successfully UCS_OK is returned. If send operation was canceled, UCS_ERR_CANCELED is returned. If the data can not fit into the receive buffer the UCS_ERR_MESSAGE_TRUNCATED error code is returned. Otherwise, an error status is returned.
[in]tag_infoCompletion information The info descriptor is Valid only if the status is UCS_OK.
[in]user_dataUser data passed to "user_data" value, see ucp_request_param_t
+
+
+ +
+
+ +

◆ ucp_am_recv_data_nbx_callback_t

+ +
+
+ + + + +
typedef void(* ucp_am_recv_data_nbx_callback_t) (void *request, ucs_status_t status, size_t length, void *user_data)
+
+

This callback routine is invoked whenever the receive operation is completed and the data is ready in the receive buffer.

+
Parameters
+ + + + + +
[in]requestThe completed receive request.
[in]statusCompletion status. If the receive operation was completed successfully UCS_OK is returned. Otherwise, an error status is returned.
[in]lengthThe size of the received data in bytes, always boundary of base datatype size. The value is valid only if the status is UCS_OK.
[in]user_dataUser data passed to "user_data" value, see ucp_request_param_t
+
+
+ +
+
+

Enumeration Type Documentation

+ +

◆ ucp_atomic_op_t

+ +
+
+ + + + +
enum ucp_atomic_op_t
+
+

This enumeration defines which atomic memory operation should be performed by the ucp_atomic_op_nbx routine.

+ + + + + + + + +
Enumerator
UCP_ATOMIC_OP_ADD 

Atomic add
+

+
UCP_ATOMIC_OP_SWAP 

Atomic swap

+
UCP_ATOMIC_OP_CSWAP 

Atomic conditional swap

+
UCP_ATOMIC_OP_AND 

Atomic and
+

+
UCP_ATOMIC_OP_OR 

Atomic or
+

+
UCP_ATOMIC_OP_XOR 

Atomic xor
+

+
UCP_ATOMIC_OP_LAST 
+ +
+
+ +

◆ ucp_stream_recv_flags_t

+ +
+
+ + + + +
enum ucp_stream_recv_flags_t
+
+

This enumeration defines behavior of ucp_stream_recv_nb function.

+ + +
Enumerator
UCP_STREAM_RECV_FLAG_WAITALL 

This flag requests that the operation will not be completed until all requested data is received and placed in the user buffer.

+
+ +
+
+ +

◆ ucp_op_attr_t

+ +
+
+ + + + +
enum ucp_op_attr_t
+
+

The enumeration allows specifying which fields in ucp_request_param_t are present and operation flags are used. It is used to enable backward compatibility support.

+ + + + + + + + + + + + + + +
Enumerator
UCP_OP_ATTR_FIELD_REQUEST 

request field

+
UCP_OP_ATTR_FIELD_CALLBACK 

cb field

+
UCP_OP_ATTR_FIELD_USER_DATA 

user_data field

+
UCP_OP_ATTR_FIELD_DATATYPE 

datatype field

+
UCP_OP_ATTR_FIELD_FLAGS 

operation-specific flags

+
UCP_OP_ATTR_FIELD_REPLY_BUFFER 

reply_buffer field

+
UCP_OP_ATTR_FIELD_MEMORY_TYPE 

memory type field

+
UCP_OP_ATTR_FIELD_RECV_INFO 

recv_info field

+
UCP_OP_ATTR_FIELD_MEMH 

memory handle field

+
UCP_OP_ATTR_FLAG_NO_IMM_CMPL 

Deny immediate completion, i.e NULL cannot be returned. If a completion callback is provided, it can be called before the function returns.

+
UCP_OP_ATTR_FLAG_FAST_CMPL 

expedite local completion, even if it delays remote data delivery. Note for implementer: this option can disable zero copy and/or rendezvous protocols which require synchronization with the remote peer before releasing the local send buffer

+
UCP_OP_ATTR_FLAG_FORCE_IMM_CMPL 

force immediate complete operation, fail if the operation cannot be completed immediately

+
UCP_OP_ATTR_FLAG_MULTI_SEND 

optimize for bandwidth of multiple in-flight operations, rather than for the latency of a single operation. This flag and UCP_OP_ATTR_FLAG_FAST_CMPL are mutually exclusive.

+
+ +
+
+ +

◆ ucp_req_attr_field

+ +
+
+ + + + +
enum ucp_req_attr_field
+
+

The enumeration allows specifying which fields in ucp_request_attr_t are present. It is used to enable backward compatibility support.

+ + + + + +
Enumerator
UCP_REQUEST_ATTR_FIELD_INFO_STRING 
UCP_REQUEST_ATTR_FIELD_INFO_STRING_SIZE 
UCP_REQUEST_ATTR_FIELD_STATUS 
UCP_REQUEST_ATTR_FIELD_MEM_TYPE 
+ +
+
+ +

◆ ucp_am_recv_attr_t

+ +
+
+ + + + +
enum ucp_am_recv_attr_t
+
+

The enumeration allows specifying which fields in ucp_am_recv_param_t are present and receive operation flags are used. It is used to enable backward compatibility support.

+ + + + +
Enumerator
UCP_AM_RECV_ATTR_FIELD_REPLY_EP 

reply_ep field

+
UCP_AM_RECV_ATTR_FLAG_DATA 

Indicates that the data provided in ucp_am_recv_callback_t callback can be held by the user. If UCS_INPROGRESS is returned from the callback, the data parameter will persist and the user has to call ucp_am_data_release when data is no longer needed. This flag is mutually exclusive with UCP_AM_RECV_ATTR_FLAG_RNDV.

+
UCP_AM_RECV_ATTR_FLAG_RNDV 

Indicates that the arriving data was sent using rendezvous protocol. In this case data parameter of the ucp_am_recv_callback_t points to the internal UCP descriptor, which can be used for obtaining the actual data by calling ucp_am_recv_data_nbx routine. This flag is mutually exclusive with UCP_AM_RECV_ATTR_FLAG_DATA.

+
+ +
+
+ +

◆ ucp_am_handler_param_field

+ +
+
+ + + + +
enum ucp_am_handler_param_field
+
+

The enumeration allows specifying which fields in ucp_am_handler_param_t are present. It is used to enable backward compatibility support.

+ + + + + +
Enumerator
UCP_AM_HANDLER_PARAM_FIELD_ID 

Indicates that ucp_am_handler_param_t::id field is valid.

+
UCP_AM_HANDLER_PARAM_FIELD_FLAGS 

Indicates that ucp_am_handler_param_t::flags field is valid.

+
UCP_AM_HANDLER_PARAM_FIELD_CB 

Indicates that ucp_am_handler_param_t::cb field is valid.

+
UCP_AM_HANDLER_PARAM_FIELD_ARG 

Indicates that ucp_am_handler_param_t::arg field is valid.

+
+ +
+
+ +

◆ ucp_atomic_post_op_t

+ +
+
+ + + + +
enum ucp_atomic_post_op_t
+
+
Deprecated
Use ucp_atomic_op_nbx and ucp_atomic_op_t instead.
+

This enumeration defines which atomic memory operation should be performed by the ucp_atomic_post family of functions. All of these are non-fetching atomics and will not result in a request handle.

+ + + + + + +
Enumerator
UCP_ATOMIC_POST_OP_ADD 

Atomic add

+
UCP_ATOMIC_POST_OP_AND 

Atomic and

+
UCP_ATOMIC_POST_OP_OR 

Atomic or
+

+
UCP_ATOMIC_POST_OP_XOR 

Atomic xor

+
UCP_ATOMIC_POST_OP_LAST 
+ +
+
+ +

◆ ucp_atomic_fetch_op_t

+ +
+
+ + + + +
enum ucp_atomic_fetch_op_t
+
+
Deprecated
Use ucp_atomic_op_nbx and ucp_atomic_op_t instead.
+

This enumeration defines which atomic memory operation should be performed by the ucp_atomic_fetch family of functions. All of these functions will fetch data from the remote node.

+ + + + + + + + +
Enumerator
UCP_ATOMIC_FETCH_OP_FADD 

Atomic Fetch and add
+

+
UCP_ATOMIC_FETCH_OP_SWAP 

Atomic swap
+

+
UCP_ATOMIC_FETCH_OP_CSWAP 

Atomic conditional swap

+
UCP_ATOMIC_FETCH_OP_FAND 

Atomic Fetch and and
+

+
UCP_ATOMIC_FETCH_OP_FOR 

Atomic Fetch and or
+

+
UCP_ATOMIC_FETCH_OP_FXOR 

Atomic Fetch and xor
+

+
UCP_ATOMIC_FETCH_OP_LAST 
+ +
+
+

Function Documentation

+ +

◆ ucp_request_query()

+ +
+
+ + + + + + + + + + + +
ucs_status_t ucp_request_query (void * request,
ucp_request_attr_t * attr )
+
+
Parameters
+ + + +
[in]requestNon-blocking request to query.
[out]attrFilled with attributes of the request.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_am_send_nbx()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_ptr_t ucp_am_send_nbx (ucp_ep_h ep,
unsigned id,
const void * header,
size_t header_length,
const void * buffer,
size_t count,
const ucp_request_param_t * param )
+
+

This routine sends an Active Message to an ep. If the operation completes immediately, then the routine returns NULL and the callback function is ignored, even if specified. Otherwise, if no error is reported and a callback is requested (i.e. the UCP_OP_ATTR_FIELD_CALLBACK flag is set in the op_attr_mask field of param), then the UCP library will schedule invocation of the callback routine param->cb.send upon completion of the operation.

+
Note
If UCP_OP_ATTR_FLAG_NO_IMM_CMPL flag is set in the op_attr_mask field of param, then the operation will return a request handle, even if it completes immediately.
+
+This operation supports specific flags, which can be passed in param by ucp_request_param_t::flags. The exact set of flags is defined by ucp_send_am_flags.
+
Parameters
+ + + + + + + + +
[in]epUCP endpoint where the Active Message will be run.
[in]idActive Message id. Specifies which registered callback to run.
[in]headerUser defined Active Message header. NULL value is allowed if no header needed. In this case header_length must be set to 0. By default the header must be valid until the active message send operation completes. If the flag UCP_AM_SEND_FLAG_COPY_HEADER is specified, the header is only required to be valid until this function call returns.
[in]header_lengthActive message header length in bytes.
[in]bufferPointer to the data to be sent to the target node of the Active Message.
[in]countNumber of elements to send.
[in]paramOperation parameters, see ucp_request_param_t.
+
+
+
Note
Sending only header without actual data is allowed and is recommended for transferring a latency-critical amount of data.
+
+The maximum allowed header size can be obtained by querying worker attributes by the ucp_worker_query routine.
+
Returns
NULL - Active Message was sent immediately.
+
+UCS_PTR_IS_ERR(_ptr) - Error sending Active Message.
+
+otherwise - Operation was scheduled for send and can be completed at any point in time. The request handle is returned to the application in order to track progress of the message. If user request was not provided in param->request, the application is responsible for releasing the handle using ucp_request_free routine.
+
Examples
ucp_client_server.c.
+
+ +
+
+ +

◆ ucp_am_recv_data_nbx()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_ptr_t ucp_am_recv_data_nbx (ucp_worker_h worker,
void * data_desc,
void * buffer,
size_t count,
const ucp_request_param_t * param )
+
+

This routine receives a message that is described by the data descriptor data_desc, local address buffer, size count and param parameters on the worker. The routine is non-blocking and therefore returns immediately. The receive operation is considered completed when the message is delivered to the buffer. If the receive operation cannot be started the routine returns an error.

+
Note
This routine can be performed on any valid data descriptor delivered in ucp_am_recv_callback_t. Data descriptor is considered to be valid if:
    +
  • It is a rendezvous request (UCP_AM_RECV_ATTR_FLAG_RNDV is set in ucp_am_recv_param_t::recv_attr) or
  • +
  • It is a persistent data pointer (UCP_AM_RECV_ATTR_FLAG_DATA is set in ucp_am_recv_param_t::recv_attr). In this case receive operation may be needed to unpack data to device memory (for example GPU device) or some specific datatype.
  • +
+
+
+After this call UCP takes ownership of data_desc descriptor, so there is no need to release it even if the operation fails. The routine returns a request handle instead, which can be used for tracking operation progress.
+
Parameters
+ + + + + + +
[in]workerWorker that is used for the receive operation.
[in]data_descData descriptor, provided in ucp_am_recv_callback_t routine.
[in]bufferPointer to the buffer to receive the data.
[in]countNumber of elements to receive into buffer.
[in]paramOperation parameters, see ucp_request_param_t.
+
+
+
Returns
NULL - The receive operation was completed immediately. In this case, if param->recv_info.length is specified in the param, the value to which it points is updated with the size of the received message.
+
+UCS_PTR_IS_ERR(_ptr) - The receive operation failed.
+
+otherwise - Receive operation was scheduled and can be completed at any point in time. The request handle is returned to the application in order to track operation progress. If user request was not provided in param->request, the application is responsible for releasing the handle using ucp_request_free routine.
+
Examples
ucp_client_server.c.
+
+ +
+
+ +

◆ ucp_am_data_release()

+ +
+
+ + + + + + + + + + + +
void ucp_am_data_release (ucp_worker_h worker,
void * data )
+
+

This routine releases data that persisted through an Active Message callback because that callback returned UCS_INPROGRESS.

+
Parameters
+ + + +
[in]workerWorker which received the Active Message.
[in]dataPointer to data that was passed into the Active Message callback as the data parameter.
+
+
+ +
+
+ +

◆ ucp_stream_send_nbx()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
ucs_status_ptr_t ucp_stream_send_nbx (ucp_ep_h ep,
const void * buffer,
size_t count,
const ucp_request_param_t * param )
+
+

This routine sends data that is described by the local address buffer, size count object to the destination endpoint ep. The routine is non-blocking and therefore returns immediately, however the actual send operation may be delayed. The send operation is considered completed when it is safe to reuse the source buffer. If the send operation is completed immediately the routine returns UCS_OK.

+
Note
The user should not modify any part of the buffer after this operation is called, until the operation completes.
+
Parameters
+ + + + + +
[in]epDestination endpoint handle.
[in]bufferPointer to the message buffer (payload).
[in]countNumber of elements to send.
[in]paramOperation parameters, see ucp_request_param_t.
+
+
+
Returns
NULL - The send operation was completed immediately.
+
+UCS_PTR_IS_ERR(_ptr) - The send operation failed.
+
+otherwise - Operation was scheduled for send and can be completed at any point in time. The request handle is returned to the application in order to track progress of the message.
+
Examples
ucp_client_server.c.
+
+ +
+
+ +

◆ ucp_tag_send_nbx()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_ptr_t ucp_tag_send_nbx (ucp_ep_h ep,
const void * buffer,
size_t count,
ucp_tag_t tag,
const ucp_request_param_t * param )
+
+

This routine sends a messages that is described by the local address buffer, size count object to the destination endpoint ep. Each message is associated with a tag value that is used for message matching on the ucp_tag_recv_nb or receiver. The routine is non-blocking and therefore returns immediately, however the actual send operation may be delayed. The send operation is considered completed when it is safe to reuse the source buffer. If the send operation is completed immediately the routine returns UCS_OK and the call-back function is not invoked. If the operation is not completed immediately and no error reported then the UCP library will schedule to invoke the call-back whenever the send operation is completed. In other words, the completion of a message can be signaled by the return code or the call-back. Immediate completion signals can be fine-tuned via the ucp_request_param_t::op_attr_mask field in the ucp_request_param_t structure. The values of this field are a bit-wise OR of the ucp_op_attr_t enumeration.

+
Note
The user should not modify any part of the buffer after this operation is called, until the operation completes.
+
Parameters
+ + + + + + +
[in]epDestination endpoint handle.
[in]bufferPointer to the message buffer (payload).
[in]countNumber of elements to send
[in]tagMessage tag.
[in]paramOperation parameters, see ucp_request_param_t
+
+
+
Returns
UCS_OK - The send operation was completed immediately.
+
+UCS_PTR_IS_ERR(_ptr) - The send operation failed.
+
+otherwise - Operation was scheduled for send and can be completed in any point in time. The request handle is returned to the application in order to track progress of the message.
+
Examples
ucp_client_server.c, and ucp_hello_world.c.
+
+ +
+
+ +

◆ ucp_tag_send_sync_nbx()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_ptr_t ucp_tag_send_sync_nbx (ucp_ep_h ep,
const void * buffer,
size_t count,
ucp_tag_t tag,
const ucp_request_param_t * param )
+
+

Same as ucp_tag_send_nbx, except the request completes only after there is a remote tag match on the message (which does not always mean the remote receive has been completed). This function never completes "in-place", and always returns a request handle.

+
Note
The user should not modify any part of the buffer after this operation is called, until the operation completes.
+
+Returns UCS_ERR_UNSUPPORTED if UCP_ERR_HANDLING_MODE_PEER is enabled. This is a temporary implementation-related constraint that will be addressed in future releases.
+
Parameters
+ + + + + + +
[in]epDestination endpoint handle.
[in]bufferPointer to the message buffer (payload).
[in]countNumber of elements to send
[in]tagMessage tag.
[in]paramOperation parameters, see ucp_request_param_t
+
+
+
Returns
UCS_OK - The send operation was completed immediately.
+
+UCS_PTR_IS_ERR(_ptr) - The send operation failed.
+
+otherwise - Operation was scheduled for send and can be completed in any point in time. The request handle is returned to the application in order to track progress of the message.
+ +
+
+ +

◆ ucp_stream_recv_nbx()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_ptr_t ucp_stream_recv_nbx (ucp_ep_h ep,
void * buffer,
size_t count,
size_t * length,
const ucp_request_param_t * param )
+
+

This routine receives data that is described by the local address buffer, size count object on the endpoint ep. The routine is non-blocking and therefore returns immediately. The receive operation is considered complete when the message is delivered to the buffer. If the receive operation cannot be started, then the routine returns an error.

+
Parameters
+ + + + + + +
[in]epUCP endpoint that is used for the receive operation.
[in]bufferPointer to the buffer that will receive the data.
[in]countNumber of elements to receive into buffer.
[out]lengthSize of the received data in bytes. The value is valid only if return code is NULL.
[in]paramOperation parameters, see ucp_request_param_t. This operation supports specific flags, which can be passed in param by ucp_request_param_t::flags. The exact set of flags is defined by ucp_stream_recv_flags_t.
+
+
+
Returns
NULL - The receive operation was completed immediately. In this case the value pointed by length is updated by the size of received data. Note param->recv_info is not relevant for this function.
+
+UCS_PTR_IS_ERR(_ptr) - The receive operation failed.
+
+otherwise - Operation was scheduled for receive. A request handle is returned to the application in order to track progress of the operation.
+
Note
The amount of data received, in bytes, is always an integral multiple of the datatype size.
+
Examples
ucp_client_server.c.
+
+ +
+
+ +

◆ ucp_stream_recv_data_nb()

+ +
+
+ + + + + + + + + + + +
ucs_status_ptr_t ucp_stream_recv_data_nb (ucp_ep_h ep,
size_t * length )
+
+

This routine receives any available data from endpoint ep. Unlike ucp_stream_recv_nb, the returned data is unstructured and is treated as an array of bytes. If data is immediately available, UCS_STATUS_PTR(_ptr) is returned as a pointer to the data, and length is set to the size of the returned data buffer. The routine is non-blocking and therefore returns immediately.

+
Parameters
+ + + +
[in]epUCP endpoint that is used for the receive operation.
[out]lengthLength of received data.
+
+
+
Returns
NULL - No received data available on the ep.
+
+UCS_PTR_IS_ERR(_ptr) - the receive operation failed and UCS_PTR_STATUS(_ptr) indicates an error.
+
+otherwise - The pointer to the data UCS_STATUS_PTR(_ptr) is returned to the application. After the data is processed, the application is responsible for releasing the data buffer by calling the ucp_stream_data_release routine.
+
Note
This function returns packed data (equivalent to ucp_dt_make_contig(1)).
+
+This function returns a pointer to a UCP-supplied buffer, whereas ucp_stream_recv_nb places the data into a user-provided buffer. In some cases, receiving data directly into a UCP-supplied buffer can be more optimal, for example by processing the incoming data in-place and thus avoiding extra memory copy operations.
+ +
+
+ +

◆ ucp_tag_recv_nbx()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_ptr_t ucp_tag_recv_nbx (ucp_worker_h worker,
void * buffer,
size_t count,
ucp_tag_t tag,
ucp_tag_t tag_mask,
const ucp_request_param_t * param )
+
+

This routine receives a message that is described by the local address buffer, size count, and info object on the worker. The tag value of the receive message has to match the tag and tag_mask values, where the tag_mask indicates what bits of the tag have to be matched. The routine is a non-blocking and therefore returns immediately. The receive operation is considered completed when the message is delivered to the buffer. In order to notify the application about completion of the receive operation the UCP library will invoke the call-back cb when the received message is in the receive buffer and ready for application access. If the receive operation cannot be started, then the routine returns an error.

+
Parameters
+ + + + + + + +
[in]workerUCP worker that is used for the receive operation.
[in]bufferPointer to the buffer to receive the data.
[in]countNumber of elements to receive
[in]tagMessage tag to expect.
[in]tag_maskBit mask that indicates the bits that are used for the matching of the incoming tag against the expected tag.
[in]paramOperation parameters, see ucp_request_param_t
+
+
+
Returns
NULL - The receive operation was completed immediately. In this case, if param->recv_info.tag_info is specified in the param, the value to which it points is updated with the information about the received message.
+
+UCS_PTR_IS_ERR(_ptr) - The receive operation failed.
+
+otherwise - Operation was scheduled for receive. The request handle is returned to the application in order to track progress of the operation. The application is responsible for releasing the handle using ucp_request_free() routine.
+
Examples
ucp_client_server.c.
+
+ +
+
+ +

◆ ucp_tag_probe_nb()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucp_tag_message_h ucp_tag_probe_nb (ucp_worker_h worker,
ucp_tag_t tag,
ucp_tag_t tag_mask,
int remove,
ucp_tag_recv_info_t * info )
+
+

This routine probes (checks) if a messages described by the tag and tag_mask was received (fully or partially) on the worker. The tag value of the received message has to match the tag and tag_mask values, where the tag_mask indicates what bits of the tag have to be matched. The function returns immediately and if the message is matched it returns a handle for the message.

+
Parameters
+ + + + + + +
[in]workerUCP worker that is used for the probe operation.
[in]tagMessage tag to probe for.
[in]tag_maskBit mask that indicates the bits that are used for the matching of the incoming tag against the expected tag.
[in]removeThe flag indicates if the matched message has to be removed from UCP library. If true (1), the message handle is removed from the UCP library and the application is responsible to call ucp_tag_msg_recv_nb() in order to receive the data and release the resources associated with the message handle. If false (0), the return value is merely an indication to whether a matching message is present, and it cannot be used in any other way, and in particular it cannot be passed to ucp_tag_msg_recv_nb().
[out]infoIf the matching message is found the descriptor is filled with the details about the message.
+
+
+
Returns
NULL - No match found.
+
+Message handle (not NULL) - If message is matched the message handle is returned.
+
Note
This function does not advance the communication state of the network. If this routine is used in busy-poll mode, need to make sure ucp_worker_progress() is called periodically to extract messages from the transport.
+
Examples
ucp_hello_world.c.
+
+ +
+
+ +

◆ ucp_tag_msg_recv_nbx()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_ptr_t ucp_tag_msg_recv_nbx (ucp_worker_h worker,
void * buffer,
size_t count,
ucp_tag_message_h message,
const ucp_request_param_t * param )
+
+

This routine receives a message that is described by the local address buffer, size count, and message handle on the worker. The message handle can be obtained by calling the ucp_tag_probe_nb() routine. The ucp_tag_msg_recv_nbx() routine is non-blocking and therefore returns immediately. The receive operation is considered completed when the message is delivered to the buffer. In order to notify the application about completion of the receive operation the UCP library will invoke the call-back cb when the received message is in the receive buffer and ready for application access. If the receive operation cannot be started, then the routine returns an error.

+
Parameters
+ + + + + + +
[in]workerUCP worker that is used for the receive operation.
[in]bufferPointer to the buffer that will receive the data.
[in]countNumber of elements to receive
[in]messageMessage handle.
[in]paramOperation parameters, see ucp_request_param_t
+
+
+
Returns
UCS_PTR_IS_ERR(_ptr) - The receive operation failed.
+
+otherwise - Operation was scheduled for receive. The request handle is returned to the application in order to track progress of the operation. The application is responsible for releasing the handle using ucp_request_free() routine.
+
Examples
ucp_hello_world.c.
+
+ +
+
+ +

◆ ucp_put_nbx()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_ptr_t ucp_put_nbx (ucp_ep_h ep,
const void * buffer,
size_t count,
uint64_t remote_addr,
ucp_rkey_h rkey,
const ucp_request_param_t * param )
+
+

This routine initiates a storage of contiguous block of data that is described by the local address buffer in the remote contiguous memory region described by remote_addr address and the memory handle rkey. The routine returns immediately and does not guarantee re-usability of the source address buffer. If the operation is completed immediately the routine return UCS_OK, otherwise UCS_INPROGRESS or an error is returned to user. If the put operation completes immediately, the routine returns UCS_OK and the call-back routine param.cb.send is not invoked. If the operation is not completed immediately and no error is reported, then the UCP library will schedule invocation of the call-back routine param.cb.send upon completion of the put operation. In other words, the completion of a put operation can be signaled by the return code or execution of the call-back. Immediate completion signals can be fine-tuned via the ucp_request_param_t::op_attr_mask field in the ucp_request_param_t structure. The values of this field are a bit-wise OR of the ucp_op_attr_t enumeration.

+
Note
The completion of a put operation signals the local buffer can be reused. The completion of the operation on the remote address requires use of ucp_worker_flush_nbx() or ucp_ep_flush_nbx(), after completion of which the data in remote_addr is guaranteed to be available.
+
Parameters
+ + + + + + + +
[in]epRemote endpoint handle.
[in]bufferPointer to the local source address.
[in]countNumber of elements of type ucp_request_param_t::datatype to put. If ucp_request_param_t::datatype is not specified, the type defaults to ucp_dt_make_contig(1), which corresponds to byte elements.
[in]remote_addrPointer to the destination remote memory address to write to.
[in]rkeyRemote memory key associated with the remote memory address.
[in]paramOperation parameters, see ucp_request_param_t
+
+
+
Returns
UCS_OK - The operation was completed immediately.
+
+UCS_PTR_IS_ERR(_ptr) - The operation failed.
+
+otherwise - Operation was scheduled and can be completed at any point in time. The request handle is returned to the application in order to track progress of the operation. The application is responsible for releasing the handle using ucp_request_free() routine.
+
Note
Only the datatype ucp_dt_make_contig(1) is supported for param->datatype, see ucp_dt_make_contig.
+ +
+
+ +

◆ ucp_get_nbx()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_ptr_t ucp_get_nbx (ucp_ep_h ep,
void * buffer,
size_t count,
uint64_t remote_addr,
ucp_rkey_h rkey,
const ucp_request_param_t * param )
+
+

This routine initiates a load of a contiguous block of data that is described by the remote memory address remote_addr and the memory handle rkey in the local contiguous memory region described by buffer address. The routine returns immediately and does not guarantee that remote data is loaded and stored under the local address buffer. If the operation is completed immediately the routine return UCS_OK, otherwise UCS_INPROGRESS or an error is returned to user. If the get operation completes immediately, the routine returns UCS_OK and the call-back routine param.cb.send is not invoked. If the operation is not completed immediately and no error is reported, then the UCP library will schedule invocation of the call-back routine param.cb.send upon completion of the get operation. In other words, the completion of a get operation can be signaled by the return code or execution of the call-back.

+
Note
A user can use ucp_worker_flush_nb() in order to guarantee re-usability of the source address buffer.
+
+The completion of a get operation signals the local buffer holds the the expected data and that both local buffer and remote remote_addr are safe to be reused, unlike with ucp_put_nbx where the use of ucp_worker_flush_nbx() or ucp_ep_flush_nbx() is required before the remote data is available.
+
Parameters
+ + + + + + + +
[in]epRemote endpoint handle.
[in]bufferPointer to the local destination address.
[in]countNumber of elements of type ucp_request_param_t::datatype to put. If ucp_request_param_t::datatype is not specified, the type defaults to ucp_dt_make_contig(1), which corresponds to byte elements.
[in]remote_addrPointer to the source remote memory address to read from.
[in]rkeyRemote memory key associated with the remote memory address.
[in]paramOperation parameters, see ucp_request_param_t.
+
+
+
Returns
UCS_OK - The operation was completed immediately.
+
+UCS_PTR_IS_ERR(_ptr) - The operation failed.
+
+otherwise - Operation was scheduled and can be completed at any point in time. The request handle is returned to the application in order to track progress of the operation. The application is responsible for releasing the handle using ucp_request_free() routine.
+
Note
Only the datatype ucp_dt_make_contig(1) is supported for param->datatype, see ucp_dt_make_contig.
+ +
+
+ +

◆ ucp_atomic_op_nbx()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_ptr_t ucp_atomic_op_nbx (ucp_ep_h ep,
ucp_atomic_op_t opcode,
const void * buffer,
size_t count,
uint64_t remote_addr,
ucp_rkey_h rkey,
const ucp_request_param_t * param )
+
+

This routine will post an atomic operation to remote memory. The remote value is described by the combination of the remote memory address remote_addr and the remote memory handle rkey. The routine is non-blocking and therefore returns immediately. However, the actual atomic operation may be delayed. In order to enable fetching semantics for atomic operations user has to specify param.reply_buffer. Please see table below for more details.

+
Note
The user should not modify any part of the buffer (or also param->reply_buffer for fetch operations), until the operation completes.
+
+Only ucp_dt_make_config(4) and ucp_dt_make_contig(8) are supported in param->datatype, see ucp_dt_make_contig. Also, currently atomic operations can handle one element only. Thus, count argument must be set to 1.
+ + + + + + + + + + + + + + + + + +
Atomic Operations Semantic
Atomic Operation Pseudo code X Y Z Result
UCP_ATOMIC_OP_ADD Result=Y; Y+=X bufferremote_addr- param.reply_buffer(optional)
UCP_ATOMIC_OP_SWAP Result=Y; Y=X bufferremote_addr - param.reply_buffer
UCP_ATOMIC_OP_CSWAP Result=Y; if (X==Y) then Y=Zbuffer remote_addr param.reply_buffer param.reply_buffer
UCP_ATOMIC_OP_AND Result=Y; Y&=X bufferremote_addr - param.reply_buffer(optional)
UCP_ATOMIC_OP_OR Result=Y; Y|=X bufferremote_addr - param.reply_buffer(optional)
UCP_ATOMIC_OP_XOR Result=Y; Y^=X bufferremote_addr - param.reply_buffer(optional)
+
Parameters
+ + + + + + + + +
[in]epUCP endpoint.
[in]opcodeOne of ucp_atomic_op_t.
[in]bufferAddress of operand for the atomic operation. See Atomic Operations Semantic table for exact usage by different atomic operations.
[in]countNumber of elements in buffer and result. The size of each element is specified by ucp_request_param_t::datatype
[in]remote_addrRemote address to operate on.
[in]rkeyRemote key handle for the remote memory address.
[in]paramOperation parameters, see ucp_request_param_t.
+
+
+
Returns
NULL - The operation completed immediately.
+
+UCS_PTR_IS_ERR(_ptr) - The operation failed.
+
+otherwise - Operation was scheduled and can be completed at some time in the future. The request handle is returned to the application in order to track progress of the operation.
+ +
+
+ +

◆ ucp_request_check_status()

+ +
+
+ + + + + + + +
ucs_status_t ucp_request_check_status (void * request)
+
+

This routine checks the state of the request and returns its current status. Any value different from UCS_INPROGRESS means that request is in a completed state.

+
Parameters
+ + +
[in]requestNon-blocking request to check.
+
+
+
Returns
Error code as defined by ucs_status_t
+
Examples
ucp_client_server.c, and ucp_hello_world.c.
+
+ +
+
+ +

◆ ucp_tag_recv_request_test()

+ +
+
+ + + + + + + + + + + +
ucs_status_t ucp_tag_recv_request_test (void * request,
ucp_tag_recv_info_t * info )
+
+

This routine checks the state and returns current status of the request returned from ucp_tag_recv_nb routine or the user allocated request for ucp_tag_recv_nbr. Any value different from UCS_INPROGRESS means that the request is in a completed state.

+
Parameters
+ + + +
[in]requestNon-blocking request to check.
[out]infoIt is filled with the details about the message available at the moment of calling.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_stream_recv_request_test()

+ +
+
+ + + + + + + + + + + +
ucs_status_t ucp_stream_recv_request_test (void * request,
size_t * length_p )
+
+

This routine checks the state and returns current status of the request returned from ucp_stream_recv_nb routine. Any value different from UCS_INPROGRESS means that the request is in a completed state.

+
Parameters
+ + + +
[in]requestNon-blocking request to check.
[out]length_pThe size of the received data in bytes. This value is only valid if the status is UCS_OK. If valid, it is always an integral multiple of the datatype size associated with the request.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_request_cancel()

+ +
+
+ + + + + + + + + + + +
void ucp_request_cancel (ucp_worker_h worker,
void * request )
+
+
Parameters
+ + + +
[in]workerUCP worker.
[in]requestNon-blocking request to cancel.
+
+
+

This routine tries to cancels an outstanding communication request. After calling this routine, the request will be in completed or canceled (but not both) state regardless of the status of the target endpoint associated with the communication request. If the request is completed successfully, the send or receive completion callbacks (based on the type of the request) will be called with the status argument of the callback set to UCS_OK, and in a case it is canceled the status argument is set to UCS_ERR_CANCELED. It is important to note that in order to release the request back to the library the application is responsible for calling ucp_request_free().

+ +
+
+ +

◆ ucp_stream_data_release()

+ +
+
+ + + + + + + + + + + +
void ucp_stream_data_release (ucp_ep_h ep,
void * data )
+
+
Parameters
+ + + +
[in]epEndpoint data received from.
[in]dataData pointer to release, which was returned from ucp_stream_recv_data_nb.
+
+
+

This routine releases internal UCP data buffer returned by ucp_stream_recv_data_nb when data is processed, the application can't use this buffer after calling this function.

+ +
+
+ +

◆ ucp_request_free()

+ +
+
+ + + + + + + +
void ucp_request_free (void * request)
+
+
Parameters
+ + +
[in]requestNon-blocking request to release.
+
+
+

This routine releases the non-blocking request back to the library, regardless of its current state. Communications operations associated with this request will make progress internally, however no further notifications or callbacks will be invoked for this request.

+
Examples
ucp_client_server.c, and ucp_hello_world.c.
+
+ +
+
+ +

◆ ucp_request_alloc()

+ +
+
+ + + + + + + +
void * ucp_request_alloc (ucp_worker_h worker)
+
+
Parameters
+ + +
[in]workerUCP worker.
+
+
+
Returns
Error code as defined by ucs_status_t
+

This routine creates request which may be used in functions ucp_tag_send_nbx, ucp_tag_recv_nbx, etc. The application is responsible for releasing the handle using the ucp_request_free routine

+ +
+
+ +

◆ ucp_request_is_completed()

+ +
+
+ + + + + + + +
int ucp_request_is_completed (void * request)
+
+
Deprecated
Replaced by ucp_request_test.
+ +
+
+ +

◆ ucp_put()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t ucp_put (ucp_ep_h ep,
const void * buffer,
size_t length,
uint64_t remote_addr,
ucp_rkey_h rkey )
+
+
Deprecated
Replaced by ucp_put_nb. The following example implements the same functionality using ucp_put_nb :
+
void empty_callback(void *request, ucs_status_t status)
+
{
+
}
+
+
ucs_status_t put(ucp_ep_h ep, const void *buffer, size_t length,
+
uint64_t remote_addr, ucp_rkey_h rkey)
+
{
+
void *request = ucp_put_nb(ep, buffer, length, remote_addr, rkey,
+
empty_callback),
+
if (request == NULL) {
+
return UCS_OK;
+
} else if (UCS_PTR_IS_ERR(request)) {
+
return UCS_PTR_STATUS(request);
+
} else {
+
ucs_status_t status;
+
do {
+ +
status = ucp_request_check_status(request);
+
} while (status == UCS_INPROGRESS);
+ +
return status;
+
}
+
}
+
ucs_status_ptr_t ucp_put_nb(ucp_ep_h ep, const void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey, ucp_send_callback_t cb)
Non-blocking remote memory put operation.
+
ucs_status_t ucp_request_check_status(void *request)
Check the status of non-blocking request.
+
struct ucp_ep * ucp_ep_h
UCP Endpoint.
Definition ucp_def.h:92
+
void ucp_request_release(void *request)
+
struct ucp_rkey * ucp_rkey_h
UCP Remote memory handle.
Definition ucp_def.h:152
+
unsigned ucp_worker_progress(ucp_worker_h worker)
Progress all communications on a specific worker.
+
ucs_status_t
Status codes.
Definition status.h:45
+
@ UCS_OK
Definition status.h:47
+
@ UCS_INPROGRESS
Definition status.h:50
+

This routine stores contiguous block of data that is described by the local address buffer in the remote contiguous memory region described by remote_addr address and the memory handle rkey. The routine returns when it is safe to reuse the source address buffer.

+
Parameters
+ + + + + + +
[in]epRemote endpoint handle.
[in]bufferPointer to the local source address.
[in]lengthLength of the data (in bytes) stored under the source address.
[in]remote_addrPointer to the destination remote address to write to.
[in]rkeyRemote memory key associated with the remote address.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_get()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t ucp_get (ucp_ep_h ep,
void * buffer,
size_t length,
uint64_t remote_addr,
ucp_rkey_h rkey )
+
+
Deprecated
Replaced by ucp_get_nb.
+
See also
ucp_put.
+

This routine loads contiguous block of data that is described by the remote address remote_addr and the memory handle rkey in the local contiguous memory region described by buffer address. The routine returns when remote data is loaded and stored under the local address buffer.

+
Parameters
+ + + + + + +
[in]epRemote endpoint handle.
[in]bufferPointer to the local source address.
[in]lengthLength of the data (in bytes) stored under the source address.
[in]remote_addrPointer to the destination remote address to write to.
[in]rkeyRemote memory key associated with the remote address.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_atomic_add32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
ucs_status_t ucp_atomic_add32 (ucp_ep_h ep,
uint32_t add,
uint64_t remote_addr,
ucp_rkey_h rkey )
+
+
Deprecated
Replaced by ucp_atomic_post with opcode UCP_ATOMIC_POST_OP_ADD.
+
See also
ucp_put.
+

This routine performs an add operation on a 32 bit integer value atomically. The remote integer value is described by the combination of the remote memory address remote_addr and the remote memory handle rkey. The add value is the value that is used for the add operation. When the operation completes the sum of the original remote value and the operand value (add) is stored in remote memory. The call to the routine returns immediately, independent of operation completion.

+
Note
The remote address must be aligned to 32 bit.
+
Parameters
+ + + + + +
[in]epRemote endpoint handle.
[in]addValue to add.
[in]remote_addrPointer to the destination remote address of the atomic variable.
[in]rkeyRemote memory key associated with the remote address.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_atomic_add64()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
ucs_status_t ucp_atomic_add64 (ucp_ep_h ep,
uint64_t add,
uint64_t remote_addr,
ucp_rkey_h rkey )
+
+
Deprecated
Replaced by ucp_atomic_post with opcode UCP_ATOMIC_POST_OP_ADD.
+
See also
ucp_put.
+

This routine performs an add operation on a 64 bit integer value atomically. The remote integer value is described by the combination of the remote memory address remote_addr and the remote memory handle rkey. The add value is the value that is used for the add operation. When the operation completes the sum of the original remote value and the operand value (add) is stored in remote memory. The call to the routine returns immediately, independent of operation completion.

+
Note
The remote address must be aligned to 64 bit.
+
Parameters
+ + + + + +
[in]epRemote endpoint handle.
[in]addValue to add.
[in]remote_addrPointer to the destination remote address of the atomic variable.
[in]rkeyRemote memory key associated with the remote address.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_atomic_fadd32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t ucp_atomic_fadd32 (ucp_ep_h ep,
uint32_t add,
uint64_t remote_addr,
ucp_rkey_h rkey,
uint32_t * result )
+
+
Deprecated
Replaced by ucp_atomic_fetch_nb with opcode UCP_ATOMIC_FETCH_OP_FADD.
+
See also
ucp_put.
+

This routine performs an add operation on a 32 bit integer value atomically. The remote integer value is described by the combination of the remote memory address remote_addr and the remote memory handle rkey. The add value is the value that is used for the add operation. When the operation completes, the original remote value is stored in the local memory result, and the sum of the original remote value and the operand value is stored in remote memory. The call to the routine returns when the operation is completed and the result value is updated.

+
Note
The remote address must be aligned to 32 bit.
+
Parameters
+ + + + + + +
[in]epRemote endpoint handle.
[in]addValue to add.
[in]remote_addrPointer to the destination remote address of the atomic variable.
[in]rkeyRemote memory key associated with the remote address.
[out]resultPointer to the address that is used to store the previous value of the atomic variable described by the remote_addr
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_atomic_fadd64()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t ucp_atomic_fadd64 (ucp_ep_h ep,
uint64_t add,
uint64_t remote_addr,
ucp_rkey_h rkey,
uint64_t * result )
+
+
Deprecated
Replaced by ucp_atomic_fetch_nb with opcode UCP_ATOMIC_FETCH_OP_FADD.
+
See also
ucp_put.
+

This routine performs an add operation on a 64 bit integer value atomically. The remote integer value is described by the combination of the remote memory address remote_addr and the remote memory handle rkey. The add value is the value that is used for the add operation. When the operation completes, the original remote value is stored in the local memory result, and the sum of the original remote value and the operand value is stored in remote memory. The call to the routine returns when the operation is completed and the result value is updated.

+
Note
The remote address must be aligned to 64 bit.
+
Parameters
+ + + + + + +
[in]epRemote endpoint handle.
[in]addValue to add.
[in]remote_addrPointer to the destination remote address of the atomic variable.
[in]rkeyRemote memory key associated with the remote address.
[out]resultPointer to the address that is used to store the previous value of the atomic variable described by the remote_addr
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_atomic_swap32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t ucp_atomic_swap32 (ucp_ep_h ep,
uint32_t swap,
uint64_t remote_addr,
ucp_rkey_h rkey,
uint32_t * result )
+
+
Deprecated
Replaced by ucp_atomic_fetch_nb with opcode UCP_ATOMIC_FETCH_OP_SWAP.
+
See also
ucp_put.
+

This routine swaps a 32 bit value between local and remote memory. The remote value is described by the combination of the remote memory address remote_addr and the remote memory handle rkey. The swap value is the value that is used for the swap operation. When the operation completes, the remote value is stored in the local memory result, and the operand value (swap) is stored in remote memory. The call to the routine returns when the operation is completed and the result value is updated.

+
Note
The remote address must be aligned to 32 bit.
+
Parameters
+ + + + + + +
[in]epRemote endpoint handle.
[in]swapValue to swap.
[in]remote_addrPointer to the destination remote address of the atomic variable.
[in]rkeyRemote memory key associated with the remote address.
[out]resultPointer to the address that is used to store the previous value of the atomic variable described by the remote_addr
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_atomic_swap64()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t ucp_atomic_swap64 (ucp_ep_h ep,
uint64_t swap,
uint64_t remote_addr,
ucp_rkey_h rkey,
uint64_t * result )
+
+
Deprecated
Replaced by ucp_atomic_fetch_nb with opcode UCP_ATOMIC_FETCH_OP_SWAP.
+
See also
ucp_put.
+

This routine swaps a 64 bit value between local and remote memory. The remote value is described by the combination of the remote memory address remote_addr and the remote memory handle rkey. The swap value is the value that is used for the swap operation. When the operation completes, the remote value is stored in the local memory result, and the operand value (swap) is stored in remote memory. The call to the routine returns when the operation is completed and the result value is updated.

+
Note
The remote address must be aligned to 64 bit.
+
Parameters
+ + + + + + +
[in]epRemote endpoint handle.
[in]swapValue to swap.
[in]remote_addrPointer to the destination remote address of the atomic variable.
[in]rkeyRemote memory key associated with the remote address.
[out]resultPointer to the address that is used to store the previous value of the atomic variable described by the remote_addr
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_atomic_cswap32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t ucp_atomic_cswap32 (ucp_ep_h ep,
uint32_t compare,
uint32_t swap,
uint64_t remote_addr,
ucp_rkey_h rkey,
uint32_t * result )
+
+
Deprecated
Replaced by ucp_atomic_fetch_nb with opcode UCP_ATOMIC_FETCH_OP_CSWAP.
+
See also
ucp_put.
+

This routine conditionally swaps a 32 bit value between local and remote memory. The swap occurs only if the condition value (continue) is equal to the remote value, otherwise the remote memory is not modified. The remote value is described by the combination of the remote memory address remote_addr and the remote memory handle rkey. The swap value is the value that is used to update the remote memory if the condition is true. The call to the routine returns when the operation is completed and the result value is updated.

+
Note
The remote address must be aligned to 32 bit.
+
Parameters
+ + + + + + + +
[in]epRemote endpoint handle.
[in]compareValue to compare to.
[in]swapValue to swap.
[in]remote_addrPointer to the destination remote address of the atomic variable.
[in]rkeyRemote memory key associated with the remote address.
[out]resultPointer to the address that is used to store the previous value of the atomic variable described by the remote_addr
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_atomic_cswap64()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t ucp_atomic_cswap64 (ucp_ep_h ep,
uint64_t compare,
uint64_t swap,
uint64_t remote_addr,
ucp_rkey_h rkey,
uint64_t * result )
+
+
Deprecated
Replaced by ucp_atomic_fetch_nb with opcode UCP_ATOMIC_FETCH_OP_CSWAP.
+
See also
ucp_put.
+

This routine conditionally swaps a 64 bit value between local and remote memory. The swap occurs only if the condition value (continue) is equal to the remote value, otherwise the remote memory is not modified. The remote value is described by the combination of the remote memory address remote_addr and the remote memory handle rkey. The swap value is the value that is used to update the remote memory if the condition is true. The call to the routine returns when the operation is completed and the result value is updated.

+
Note
The remote address must be aligned to 64 bit.
+
Parameters
+ + + + + + + +
[in]epRemote endpoint handle.
[in]compareValue to compare to.
[in]swapValue to swap.
[in]remote_addrPointer to the destination remote address of the atomic variable.
[in]rkeyRemote memory key associated with the remote address.
[out]resultPointer to the address that is used to store the previous value of the atomic variable described by the remote_addr
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_am_send_nb()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_ptr_t ucp_am_send_nb (ucp_ep_h ep,
uint16_t id,
const void * buffer,
size_t count,
ucp_datatype_t datatype,
ucp_send_callback_t cb,
unsigned flags )
+
+
Deprecated
Use ucp_am_send_nbx instead.
+

This routine sends an Active Message to an ep. It does not support CUDA memory.

+
Parameters
+ + + + + + + + +
[in]epUCP endpoint where the Active Message will be run.
[in]idActive Message id. Specifies which registered callback to run.
[in]bufferPointer to the data to be sent to the target node of the Active Message.
[in]countNumber of elements to send.
[in]datatypeDatatype descriptor for the elements in the buffer.
[in]cbCallback that is invoked upon completion of the data transfer if it is not completed immediately.
[in]flagsOperation flags as defined by ucp_send_am_flags.
+
+
+
Returns
NULL Active Message was sent immediately.
+
+UCS_PTR_IS_ERR(_ptr) Error sending Active Message.
+
+otherwise Pointer to request, and Active Message is known to be completed after cb is run.
+ +
+
+ +

◆ ucp_stream_send_nb()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_ptr_t ucp_stream_send_nb (ucp_ep_h ep,
const void * buffer,
size_t count,
ucp_datatype_t datatype,
ucp_send_callback_t cb,
unsigned flags )
+
+
Deprecated
Use ucp_stream_send_nbx instead.
+

This routine sends data that is described by the local address buffer, size count, and datatype object to the destination endpoint ep. The routine is non-blocking and therefore returns immediately, however the actual send operation may be delayed. The send operation is considered completed when it is safe to reuse the source buffer. If the send operation is completed immediately the routine returns UCS_OK and the callback function cb is not invoked. If the operation is not completed immediately and no error reported, then the UCP library will schedule invocation of the callback cb upon completion of the send operation. In other words, the completion of the operation will be signaled either by the return code or by the callback.

+
Note
The user should not modify any part of the buffer after this operation is called, until the operation completes.
+
Parameters
+ + + + + + + +
[in]epDestination endpoint handle.
[in]bufferPointer to the message buffer (payload).
[in]countNumber of elements to send.
[in]datatypeDatatype descriptor for the elements in the buffer.
[in]cbCallback function that is invoked whenever the send operation is completed. It is important to note that the callback is only invoked in the event that the operation cannot be completed in place.
[in]flagsReserved for future use.
+
+
+
Returns
NULL - The send operation was completed immediately.
+
+UCS_PTR_IS_ERR(_ptr) - The send operation failed.
+
+otherwise - Operation was scheduled for send and can be completed in any point in time. The request handle is returned to the application in order to track progress of the message. The application is responsible for releasing the handle using ucp_request_free routine.
+ +
+
+ +

◆ ucp_stream_recv_nb()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_ptr_t ucp_stream_recv_nb (ucp_ep_h ep,
void * buffer,
size_t count,
ucp_datatype_t datatype,
ucp_stream_recv_callback_t cb,
size_t * length,
unsigned flags )
+
+
Deprecated
Use ucp_stream_recv_nbx instead.
+

This routine receives data that is described by the local address buffer, size count, and datatype object on the endpoint ep. The routine is non-blocking and therefore returns immediately. The receive operation is considered complete when the message is delivered to the buffer. If data is not immediately available, the operation will be scheduled for receive and a request handle will be returned. In order to notify the application about completion of a scheduled receive operation, the UCP library will invoke the call-back cb when data is in the receive buffer and ready for application access. If the receive operation cannot be started, the routine returns an error.

+
Parameters
+ + + + + + + +
[in]epUCP endpoint that is used for the receive operation.
[in]bufferPointer to the buffer to receive the data.
[in]countNumber of elements to receive into buffer.
[in]datatypeDatatype descriptor for the elements in the buffer.
[in]cbCallback function that is invoked whenever the receive operation is completed and the data is ready in the receive buffer. It is important to note that the call-back is only invoked in a case when the operation cannot be completed immediately.
[out]lengthSize of the received data in bytes. The value is valid only if return code is UCS_OK.
+
+
+
Note
The amount of data received, in bytes, is always an integral multiple of the datatype size.
+
Parameters
+ + +
[in]flagsFlags defined in ucp_stream_recv_flags_t.
+
+
+
Returns
NULL - The receive operation was completed immediately.
+
+UCS_PTR_IS_ERR(_ptr) - The receive operation failed.
+
+otherwise - Operation was scheduled for receive. A request handle is returned to the application in order to track progress of the operation. The application is responsible for releasing the handle by calling the ucp_request_free routine.
+ +
+
+ +

◆ ucp_tag_send_nb()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_ptr_t ucp_tag_send_nb (ucp_ep_h ep,
const void * buffer,
size_t count,
ucp_datatype_t datatype,
ucp_tag_t tag,
ucp_send_callback_t cb )
+
+
Deprecated
Use ucp_tag_send_nbx instead.
+

This routine sends a messages that is described by the local address buffer, size count, and datatype object to the destination endpoint ep. Each message is associated with a tag value that is used for message matching on the receiver. The routine is non-blocking and therefore returns immediately, however the actual send operation may be delayed. The send operation is considered completed when it is safe to reuse the source buffer. If the send operation is completed immediately the routine return UCS_OK and the call-back function cb is not invoked. If the operation is not completed immediately and no error reported then the UCP library will schedule to invoke the call-back cb whenever the send operation will be completed. In other words, the completion of a message can be signaled by the return code or the call-back.

+
Note
The user should not modify any part of the buffer after this operation is called, until the operation completes.
+
Parameters
+ + + + + + + +
[in]epDestination endpoint handle.
[in]bufferPointer to the message buffer (payload).
[in]countNumber of elements to send
[in]datatypeDatatype descriptor for the elements in the buffer.
[in]tagMessage tag.
[in]cbCallback function that is invoked whenever the send operation is completed. It is important to note that the call-back is only invoked in a case when the operation cannot be completed in place.
+
+
+
Returns
NULL - The send operation was completed immediately.
+
+UCS_PTR_IS_ERR(_ptr) - The send operation failed.
+
+otherwise - Operation was scheduled for send and can be completed in any point in time. The request handle is returned to the application in order to track progress of the message. The application is responsible for releasing the handle using ucp_request_free() routine.
+ +
+
+ +

◆ ucp_tag_send_nbr()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t ucp_tag_send_nbr (ucp_ep_h ep,
const void * buffer,
size_t count,
ucp_datatype_t datatype,
ucp_tag_t tag,
void * req )
+
+
Deprecated
Use ucp_tag_send_nbx with the flag UCP_OP_ATTR_FIELD_REQUEST instead.
+

This routine provides a convenient and efficient way to implement a blocking send pattern. It also completes requests faster than ucp_tag_send_nb() because:

    +
  • it always uses eager protocol to send data up to the rendezvous threshold.
  • +
  • its rendezvous threshold is higher than the one used by the ucp_tag_send_nb(). The threshold is controlled by the UCX_SEND_NBR_RNDV_THRESH environment variable.
  • +
  • its request handling is simpler. There is no callback and no need to allocate and free requests. In fact request can be allocated by caller on the stack.
  • +
+

This routine sends a messages that is described by the local address buffer, size count, and datatype object to the destination endpoint ep. Each message is associated with a tag value that is used for message matching on the receiver.

+

The routine is non-blocking and therefore returns immediately, however the actual send operation may be delayed. The send operation is considered completed when it is safe to reuse the source buffer. If the send operation is completed immediately the routine returns UCS_OK.

+

If the operation is not completed immediately and no error reported then the UCP library will fill a user provided req and return UCS_INPROGRESS status. In order to monitor completion of the operation ucp_request_check_status() should be used.

+

Following pseudo code implements a blocking send function:

MPI_send(...)
+
{
+
char *request;
+
ucs_status_t status;
+
+
// allocate request on the stack
+
// ucp_context_query() was used to get ucp_request_size
+
request = alloca(ucp_request_size);
+
+
// note: make sure that there is enough memory before the
+
// request handle
+
status = ucp_tag_send_nbr(ep, ..., request + ucp_request_size);
+
if (status != UCS_INPROGRESS) {
+
return status;
+
}
+
+
do {
+ +
status = ucp_request_check_status(request + ucp_request_size);
+
} while (status == UCS_INPROGRESS);
+
+
return status;
+
}
+
ucs_status_t ucp_tag_send_nbr(ucp_ep_h ep, const void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_t tag, void *req)
Non-blocking tagged-send operations with user provided request.
+
Note
The user should not modify any part of the buffer after this operation is called, until the operation completes.
+
Parameters
+ + + + + + + +
[in]epDestination endpoint handle.
[in]bufferPointer to the message buffer (payload).
[in]countNumber of elements to send
[in]datatypeDatatype descriptor for the elements in the buffer.
[in]tagMessage tag.
[in]reqRequest handle allocated by the user. There should be at least UCP request size bytes of available space before the req. The size of UCP request can be obtained by ucp_context_query function.
+
+
+
Returns
UCS_OK - The send operation was completed immediately.
+
+UCS_INPROGRESS - The send was not completed and is in progress. ucp_request_check_status() should be used to monitor req status.
+
+Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_tag_send_sync_nb()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_ptr_t ucp_tag_send_sync_nb (ucp_ep_h ep,
const void * buffer,
size_t count,
ucp_datatype_t datatype,
ucp_tag_t tag,
ucp_send_callback_t cb )
+
+
Deprecated
Use ucp_tag_send_sync_nbx instead.
+

Same as ucp_tag_send_nb, except the request completes only after there is a remote tag match on the message (which does not always mean the remote receive has been completed). This function never completes "in-place", and always returns a request handle.

+
Note
The user should not modify any part of the buffer after this operation is called, until the operation completes.
+
+Returns UCS_ERR_UNSUPPORTED if UCP_ERR_HANDLING_MODE_PEER is enabled. This is a temporary implementation-related constraint that will be addressed in future releases.
+
Parameters
+ + + + + + + +
[in]epDestination endpoint handle.
[in]bufferPointer to the message buffer (payload).
[in]countNumber of elements to send
[in]datatypeDatatype descriptor for the elements in the buffer.
[in]tagMessage tag.
[in]cbCallback function that is invoked whenever the send operation is completed.
+
+
+
Returns
UCS_PTR_IS_ERR(_ptr) - The send operation failed.
+
+otherwise - Operation was scheduled for send and can be completed in any point in time. The request handle is returned to the application in order to track progress of the message. The application is responsible for releasing the handle using ucp_request_free() routine.
+ +
+
+ +

◆ ucp_tag_recv_nb()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_ptr_t ucp_tag_recv_nb (ucp_worker_h worker,
void * buffer,
size_t count,
ucp_datatype_t datatype,
ucp_tag_t tag,
ucp_tag_t tag_mask,
ucp_tag_recv_callback_t cb )
+
+
Deprecated
Use ucp_tag_recv_nbx instead.
+

This routine receives a message that is described by the local address buffer, size count, and datatype object on the worker. The tag value of the receive message has to match the tag and tag_mask values, where the tag_mask indicates which bits of the tag have to be matched. The routine is non-blocking and therefore returns immediately. The receive operation is considered completed when the message is delivered to the buffer. In order to notify the application about completion of the receive operation the UCP library will invoke the call-back cb when the received message is in the receive buffer and ready for application access. If the receive operation cannot be stated the routine returns an error.

+
Note
This routine cannot return UCS_OK. It always returns a request handle or an error.
+
Parameters
+ + + + + + + + +
[in]workerUCP worker that is used for the receive operation.
[in]bufferPointer to the buffer to receive the data.
[in]countNumber of elements to receive
[in]datatypeDatatype descriptor for the elements in the buffer.
[in]tagMessage tag to expect.
[in]tag_maskBit mask that indicates the bits that are used for the matching of the incoming tag against the expected tag.
[in]cbCallback function that is invoked whenever the receive operation is completed and the data is ready in the receive buffer.
+
+
+
Returns
UCS_PTR_IS_ERR(_ptr) - The receive operation failed.
+
+otherwise - Operation was scheduled for receive. The request handle is returned to the application in order to track progress of the operation. The application is responsible for releasing the handle using ucp_request_free() routine.
+ +
+
+ +

◆ ucp_tag_recv_nbr()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t ucp_tag_recv_nbr (ucp_worker_h worker,
void * buffer,
size_t count,
ucp_datatype_t datatype,
ucp_tag_t tag,
ucp_tag_t tag_mask,
void * req )
+
+
Deprecated
Use ucp_tag_recv_nbx with the flag UCP_OP_ATTR_FIELD_REQUEST instead.
+

This routine receives a message that is described by the local address buffer, size count, and datatype object on the worker. The tag value of the receive message has to match the tag and tag_mask values, where the tag_mask indicates which bits of the tag have to be matched. The routine is non-blocking and therefore returns immediately. The receive operation is considered completed when the message is delivered to the buffer. In order to monitor completion of the operation ucp_request_check_status or ucp_tag_recv_request_test should be used.

+
Parameters
+ + + + + + + + +
[in]workerUCP worker that is used for the receive operation.
[in]bufferPointer to the buffer to receive the data.
[in]countNumber of elements to receive
[in]datatypeDatatype descriptor for the elements in the buffer.
[in]tagMessage tag to expect.
[in]tag_maskBit mask that indicates the bits that are used for the matching of the incoming tag against the expected tag.
[in]reqRequest handle allocated by the user. There should be at least UCP request size bytes of available space before the req. The size of UCP request can be obtained by ucp_context_query function.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_tag_msg_recv_nb()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_ptr_t ucp_tag_msg_recv_nb (ucp_worker_h worker,
void * buffer,
size_t count,
ucp_datatype_t datatype,
ucp_tag_message_h message,
ucp_tag_recv_callback_t cb )
+
+
Deprecated
Use ucp_tag_recv_nbx instead.
+

This routine receives a message that is described by the local address buffer, size count, message handle, and datatype object on the worker. The message handle can be obtained by calling the ucp_tag_probe_nb() routine. The ucp_tag_msg_recv_nb() routine is non-blocking and therefore returns immediately. The receive operation is considered completed when the message is delivered to the buffer. In order to notify the application about completion of the receive operation the UCP library will invoke the call-back cb when the received message is in the receive buffer and ready for application access. If the receive operation cannot be started the routine returns an error.

+
Parameters
+ + + + + + + +
[in]workerUCP worker that is used for the receive operation.
[in]bufferPointer to the buffer that will receive the data.
[in]countNumber of elements to receive
[in]datatypeDatatype descriptor for the elements in the buffer.
[in]messageMessage handle.
[in]cbCallback function that is invoked whenever the receive operation is completed and the data is ready in the receive buffer.
+
+
+
Returns
UCS_PTR_IS_ERR(_ptr) - The receive operation failed.
+
+otherwise - Operation was scheduled for receive. The request handle is returned to the application in order to track progress of the operation. The application is responsible for releasing the handle using ucp_request_free() routine.
+ +
+
+ +

◆ ucp_put_nbi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t ucp_put_nbi (ucp_ep_h ep,
const void * buffer,
size_t length,
uint64_t remote_addr,
ucp_rkey_h rkey )
+
+
Deprecated
Use ucp_put_nbx without passing the flag UCP_OP_ATTR_FIELD_CALLBACK instead. If a request pointer is returned, release it immediately by ucp_request_free.
+

This routine initiates a storage of contiguous block of data that is described by the local address buffer in the remote contiguous memory region described by remote_addr address and the memoryhandle" @a rkey. The routine returns immediately and @b does @b not +guarantee re-usability of the source address @e buffer. If the operation is +completed immediately the routine return UCS_OK, otherwise UCS_INPROGRESS +or an error is returned to user. + +@note A user can use @ref ucp_worker_flush_nb "ucp_worker_flush_nb()" in order to guarantee re-usability of the source address buffer.

+
Parameters
+ + + + + + +
[in]epRemote endpoint handle.
[in]bufferPointer to the local source address.
[in]lengthLength of the data (in bytes) stored under the source address.
[in]remote_addrPointer to the destination remote memory address to write to.
[in]rkeyRemote memory key associated with the remote memory address.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_put_nb()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_ptr_t ucp_put_nb (ucp_ep_h ep,
const void * buffer,
size_t length,
uint64_t remote_addr,
ucp_rkey_h rkey,
ucp_send_callback_t cb )
+
+
Deprecated
Use ucp_put_nbx instead.
+

This routine initiates a storage of contiguous block of data that is described by the local address buffer in the remote contiguous memory region described by remote_addr address and the memoryhandle" @a rkey. The routine returns immediately and @b does @b not +guarantee re-usability of the source address @e buffer. If the operation is +completed immediately the routine return UCS_OK, otherwise UCS_INPROGRESS +or an error is returned to user. If the put operation completes immediately, +the routine returns UCS_OK and the call-back routine @a cb is @b not +invoked. If the operation is @b not completed immediately and no error is +reported, then the UCP library will schedule invocation of the call-back +routine @a cb upon completion of the put operation. In other words, the +completion of a put operation can be signaled by the return code or +execution of the call-back. + +@note A user can use @ref ucp_worker_flush_nb "ucp_worker_flush_nb()" +in order to guarantee re-usability of the source address @e buffer. + +@param [in] ep Remote endpoint handle. +@param [in] buffer Pointer to the local source address. +@param [in] length Length of the data (in bytes) stored under the + source address. +@param [in] remote_addr Pointer to the destination remote memory address + to write to. +@param [in] rkey Remote memory key associated with the + remote memory address. +@param [in] cb Call-back function that is invoked whenever the + put operation is completed and the local buffer + can be modified. Does not guarantee remote + completion. + +@return NULL - The operation was completed immediately. +@return UCS_PTR_IS_ERR(_ptr) - The operation failed. +@return otherwise - Operation was scheduled and can be + completed at any point in time. The request handle + is returned to the application in order to track + progress of the operation. The application is + responsible for releasing the handle using + @ref ucp_request_free "ucp_request_free()" routine.

+ +
+
+ +

◆ ucp_get_nbi()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t ucp_get_nbi (ucp_ep_h ep,
void * buffer,
size_t length,
uint64_t remote_addr,
ucp_rkey_h rkey )
+
+
Deprecated
Use ucp_get_nbx without passing the flag UCP_OP_ATTR_FIELD_CALLBACK instead. If a request pointer is returned, release it immediately by ucp_request_free.
+

This routine initiate a load of contiguous block of data that is described by the remote memory address remote_addr and the memory handle rkey in the local contiguous memory region described by buffer address. The routine returns immediately and does not guarantee that remote data is loaded and stored under the local address buffer.

+
Note
A user can use ucp_worker_flush_nb() in order guarantee that remote data is loaded and stored under the local address buffer.
+
Parameters
+ + + + + + +
[in]epRemote endpoint handle.
[in]bufferPointer to the local destination address.
[in]lengthLength of the data (in bytes) stored under the destination address.
[in]remote_addrPointer to the source remote memory address to read from.
[in]rkeyRemote memory key associated with the remote memory address.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_get_nb()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_ptr_t ucp_get_nb (ucp_ep_h ep,
void * buffer,
size_t length,
uint64_t remote_addr,
ucp_rkey_h rkey,
ucp_send_callback_t cb )
+
+
Deprecated
Use ucp_get_nbx instead.
+

This routine initiates a load of a contiguous block of data that is described by the remote memory address remote_addr and the memory handle rkey in the local contiguous memory region described by buffer address. The routine returns immediately and does not guarantee that remote data is loaded and stored under the local address buffer. If the operation is completed immediately the routine return UCS_OK, otherwise UCS_INPROGRESS or an error is returned to user. If the get operation completes immediately, the routine returns UCS_OK and the call-back routine cb is not invoked. If the operation is not completed immediately and no error is reported, then the UCP library will schedule invocation of the call-back routine cb upon completion of the get operation. In other words, the completion of a get operation can be signaled by the return code or execution of the call-back.

+
Note
A user can use ucp_worker_flush_nb() in order to guarantee re-usability of the source address buffer.
+
Parameters
+ + + + + + + +
[in]epRemote endpoint handle.
[in]bufferPointer to the local destination address.
[in]lengthLength of the data (in bytes) stored under the destination address.
[in]remote_addrPointer to the source remote memory address to read from.
[in]rkeyRemote memory key associated with the remote memory address.
[in]cbCall-back function that is invoked whenever the get operation is completed and the data is visible to the local process.
+
+
+
Returns
NULL - The operation was completed immediately.
+
+UCS_PTR_IS_ERR(_ptr) - The operation failed.
+
+otherwise - Operation was scheduled and can be completed at any point in time. The request handle is returned to the application in order to track progress of the operation. The application is responsible for releasing the handle using ucp_request_free() routine.
+ +
+
+ +

◆ ucp_atomic_post()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t ucp_atomic_post (ucp_ep_h ep,
ucp_atomic_post_op_t opcode,
uint64_t value,
size_t op_size,
uint64_t remote_addr,
ucp_rkey_h rkey )
+
+
Deprecated
Use ucp_atomic_op_nbx without the flag UCP_OP_ATTR_FIELD_REPLY_BUFFER instead.
+

This routine posts an atomic memory operation to a remote value. The remote value is described by the combination of the remote memory address remote_addr and the remote memory handle rkey. Return from the function does not guarantee completion. A user must call ucp_ep_flush_nb or ucp_worker_flush_nb to guarantee that the remote value has been updated.

+
Parameters
+ + + + + + + +
[in]epUCP endpoint.
[in]opcodeOne of ucp_atomic_post_op_t.
[in]valueSource operand for the atomic operation.
[in]op_sizeSize of value in bytes
[in]remote_addrRemote address to operate on.
[in]rkeyRemote key handle for the remote memory address.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_atomic_fetch_nb()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_ptr_t ucp_atomic_fetch_nb (ucp_ep_h ep,
ucp_atomic_fetch_op_t opcode,
uint64_t value,
void * result,
size_t op_size,
uint64_t remote_addr,
ucp_rkey_h rkey,
ucp_send_callback_t cb )
+
+
Deprecated
Use ucp_atomic_op_nbx with the flag UCP_OP_ATTR_FIELD_REPLY_BUFFER instead.
+

This routine will post an atomic fetch operation to remote memory. The remote value is described by the combination of the remote memory address remote_addr and the remote memory handle rkey. The routine is non-blocking and therefore returns immediately. However the actual atomic operation may be delayed. The atomic operation is not considered complete until the values in remote and local memory are completed. If the atomic operation completes immediately, the routine returns UCS_OK and the call-back routine cb is not invoked. If the operation is not completed immediately and no error is reported, then the UCP library will schedule invocation of the call-back routine cb upon completion of the atomic operation. In other words, the completion of an atomic operation can be signaled by the return code or execution of the call-back.

+
Note
The user should not modify any part of the result after this operation is called, until the operation completes.
+
Parameters
+ + + + + + + + + +
[in]epUCP endpoint.
[in]opcodeOne of ucp_atomic_fetch_op_t.
[in]valueSource operand for atomic operation. In the case of CSWAP this is the conditional for the swap. For SWAP this is the value to be placed in remote memory.
[in,out]resultLocal memory address to store resulting fetch to. In the case of CSWAP the value in result will be swapped into the remote_addr if the condition is true.
[in]op_sizeSize of value in bytes and pointer type for result
[in]remote_addrRemote address to operate on.
[in]rkeyRemote key handle for the remote memory address.
[in]cbCall-back function that is invoked whenever the send operation is completed. It is important to note that the call-back function is only invoked in a case when the operation cannot be completed in place.
+
+
+
Returns
NULL - The operation was completed immediately.
+
+UCS_PTR_IS_ERR(_ptr) - The operation failed.
+
+otherwise - Operation was scheduled and can be completed at any point in time. The request handle is returned to the application in order to track progress of the operation. The application is responsible for releasing the handle using ucp_request_free() routine.
+ +
+
+
+
+ + + + diff --git a/api/v1.17/html/group___u_c_p___c_o_m_m_structucp__err__handler.js b/api/v1.17/html/group___u_c_p___c_o_m_m_structucp__err__handler.js new file mode 100644 index 00000000000..c34d4c85a70 --- /dev/null +++ b/api/v1.17/html/group___u_c_p___c_o_m_m_structucp__err__handler.js @@ -0,0 +1,5 @@ +var group___u_c_p___c_o_m_m_structucp__err__handler = +[ + [ "cb", "group___u_c_p___c_o_m_m.html#a0bf3f446a1821a62dd3a300584792e33", null ], + [ "arg", "group___u_c_p___c_o_m_m.html#a7e49e1843e1adab5561e5fc2b2e1afb1", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___c_o_m_m_structucp__request__attr__t.js b/api/v1.17/html/group___u_c_p___c_o_m_m_structucp__request__attr__t.js new file mode 100644 index 00000000000..99bafd4b40f --- /dev/null +++ b/api/v1.17/html/group___u_c_p___c_o_m_m_structucp__request__attr__t.js @@ -0,0 +1,8 @@ +var group___u_c_p___c_o_m_m_structucp__request__attr__t = +[ + [ "field_mask", "group___u_c_p___c_o_m_m.html#a311396d670dcb5ca9941dc17a8ad23d7", null ], + [ "debug_string", "group___u_c_p___c_o_m_m.html#aa284657c27e1a8d6d2653f12cfb61bc5", null ], + [ "debug_string_size", "group___u_c_p___c_o_m_m.html#a871b3929bfe0b97d249016e57fd2fdd7", null ], + [ "status", "group___u_c_p___c_o_m_m.html#a3df010dde5b9a67b62bd354f0af3fc93", null ], + [ "mem_type", "group___u_c_p___c_o_m_m.html#a86e23d8d22c973be0f86ea56adfd5678", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___c_o_n_f_i_g.html b/api/v1.17/html/group___u_c_p___c_o_n_f_i_g.html new file mode 100644 index 00000000000..8fc5d8d4588 --- /dev/null +++ b/api/v1.17/html/group___u_c_p___c_o_n_f_i_g.html @@ -0,0 +1,415 @@ + + + + + + + +UCX: UCP Configuration + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ + + + + +

+Data Structures

struct  ucp_params
 Tuning parameters for UCP library. More...
 
+ + + + + + + +

+Typedefs

typedef struct ucp_params ucp_params_t
 Tuning parameters for UCP library.
 
typedef struct ucp_config ucp_config_t
 UCP configuration descriptor.
 
+ + + + + + + + + + + + + +

+Functions

ucs_status_t ucp_config_read (const char *env_prefix, const char *filename, ucp_config_t **config_p)
 Read UCP configuration descriptor.
 
void ucp_config_release (ucp_config_t *config)
 Release configuration descriptor.
 
ucs_status_t ucp_config_modify (ucp_config_t *config, const char *name, const char *value)
 Modify context configuration.
 
void ucp_config_print (const ucp_config_t *config, FILE *stream, const char *title, ucs_config_print_flags_t print_flags)
 Print configuration information.
 
+

Detailed Description

+

This section describes routines for configuration of the UCP network layer

+

Data Structure Documentation

+ +

◆ ucp_params

+ +
+
+ + + + +
struct ucp_params
+
+

The structure defines the parameters that are used for UCP library tuning during UCP library initialization.

+
Note
UCP library implementation uses the features parameter to optimize the library functionality that minimize memory footprint. For example, if the application does not require send/receive semantics UCP library may avoid allocation of expensive resources associated with send/receive queues.
+
Examples
ucp_client_server.c, and ucp_hello_world.c.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from ucp_params_field. Fields not specified in this mask will be ignored. Provides ABI compatibility with respect to adding new fields.

+
+uint64_t +features +

UCP features that are used for library initialization. It is recommended for applications only to request the features that are required for an optimal functionality This field must be specified.

+
+size_t +request_size +

The size of a reserved space in a non-blocking requests. Typically applications use this space for caching own structures in order to avoid costly memory allocations, pointer dereferences, and cache misses. For example, MPI implementation can use this memory for caching MPI descriptors This field defaults to 0 if not specified.

+
+ucp_request_init_callback_t +request_init +

Pointer to a routine that is used for the request initialization. This function will be called only on the very first time a request memory is initialized, and may not be called again if a request is reused. If a request should be reset before the next reuse, it can be done before calling ucp_request_free.

+

NULL can be used if no such is function required, which is also the default if this field is not specified by field_mask.

+
+ucp_request_cleanup_callback_t +request_cleanup +

Pointer to a routine that is responsible for final cleanup of the memory associated with the request. This routine may not be called every time a request is released. For some implementations, the cleanup call may be delayed and only invoked at ucp_worker_destroy.

+

NULL can be used if no such function is required, which is also the default if this field is not specified by field_mask.

+
+uint64_t +tag_sender_mask +

Mask which specifies particular bits of the tag which can uniquely identify the sender (UCP endpoint) in tagged operations. This field defaults to 0 if not specified.

+
+int +mt_workers_shared +

This flag indicates if this context is shared by multiple workers from different threads. If so, this context needs thread safety support; otherwise, the context does not need to provide thread safety. For example, if the context is used by single worker, and that worker is shared by multiple threads, this context does not need thread safety; if the context is used by worker 1 and worker 2, and worker 1 is used by thread 1 and worker 2 is used by thread 2, then this context needs thread safety. Note that actual thread mode may be different from mode passed to ucp_init. To get actual thread mode use ucp_context_query.

+
+size_t +estimated_num_eps +

An optimization hint of how many endpoints will be created on this context. For example, when used from MPI or SHMEM libraries, this number will specify the number of ranks (or processing elements) in the job. Does not affect semantics, but only transport selection criteria and the resulting performance. The value can be also set by UCX_NUM_EPS environment variable. In such case it will override the number of endpoints set by estimated_num_eps

+
+size_t +estimated_num_ppn +

An optimization hint for a single node. For example, when used from MPI or OpenSHMEM libraries, this number will specify the number of Processes Per Node (PPN) in the job. Does not affect semantics, only transport selection criteria and the resulting performance. The value can be also set by the UCX_NUM_PPN environment variable, which will override the number of endpoints set by estimated_num_ppn

+
+const char * +name +

Tracing and analysis tools can identify the context using this name. To retrieve the context's name, use ucp_context_query, as the name you supply may be changed by UCX under some circumstances, e.g. a name conflict. This field is only assigned if you set UCP_PARAM_FIELD_NAME in the field mask. If not, then a default unique name will be created for you.

+
+ +
+
+

Typedef Documentation

+ +

◆ ucp_params_t

+ +
+
+ + + + +
typedef struct ucp_params ucp_params_t
+
+

The structure defines the parameters that are used for UCP library tuning during UCP library initialization.

+
Note
UCP library implementation uses the features parameter to optimize the library functionality that minimize memory footprint. For example, if the application does not require send/receive semantics UCP library may avoid allocation of expensive resources associated with send/receive queues.
+ +
+
+ +

◆ ucp_config_t

+ +
+
+ + + + +
typedef struct ucp_config ucp_config_t
+
+

This descriptor defines the configuration for UCP application context. The configuration is loaded from the run-time environment (using configuration files of environment variables) using ucp_config_read routine and can be printed using ucp_config_print routine. In addition, application is responsible to release the descriptor using ucp_config_release routine.

+ +
+
+

Function Documentation

+ +

◆ ucp_config_read()

+ +
+
+ + + + + + + + + + + + + + + + +
ucs_status_t ucp_config_read (const char * env_prefix,
const char * filename,
ucp_config_t ** config_p )
+
+

The routine fetches the information about UCP library configuration from the run-time environment. Then, the fetched descriptor is used for UCP library initialization. The Application can print out the descriptor using print routine. In addition the application is responsible for releasing the descriptor back to the UCP library.

+
Parameters
+ + + + +
[in]env_prefixIf non-NULL, the routine searches for the environment variables that start with <env_prefix>UCX prefix. Otherwise, the routine searches for the environment variables that start with UCX_ prefix.
[in]filenameIf non-NULL, read configuration from the file defined by filename. If the file does not exist, it will be ignored and no error reported to the application.
[out]config_pPointer to configuration descriptor as defined by ucp_config_t.
+
+
+
Returns
Error code as defined by ucs_status_t
+
Examples
ucp_hello_world.c.
+
+ +
+
+ +

◆ ucp_config_release()

+ +
+
+ + + + + + + +
void ucp_config_release (ucp_config_t * config)
+
+

The routine releases the configuration descriptor that was allocated through ucp_config_read() routine.

+
Parameters
+ + +
[out]configConfiguration descriptor as defined by ucp_config_t.
+
+
+
Examples
ucp_hello_world.c.
+
+ +
+
+ +

◆ ucp_config_modify()

+ +
+
+ + + + + + + + + + + + + + + + +
ucs_status_t ucp_config_modify (ucp_config_t * config,
const char * name,
const char * value )
+
+

The routine changes one configuration setting stored in configuration descriptor.

+
Parameters
+ + + + +
[in]configConfiguration to modify.
[in]nameConfiguration variable name.
[in]valueValue to set.
+
+
+
Returns
Error code.
+ +
+
+ +

◆ ucp_config_print()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
void ucp_config_print (const ucp_config_t * config,
FILE * stream,
const char * title,
ucs_config_print_flags_t print_flags )
+
+

The routine prints the configuration information that is stored in configuration descriptor.

+
Parameters
+ + + + + +
[in]configConfiguration descriptor to print.
[in]streamOutput stream to print the configuration to.
[in]titleConfiguration title to print.
[in]print_flagsFlags that control various printing options.
+
+
+
Examples
ucp_hello_world.c.
+
+ +
+
+
+
+ + + + diff --git a/api/v1.17/html/group___u_c_p___c_o_n_f_i_g_structucp__params.js b/api/v1.17/html/group___u_c_p___c_o_n_f_i_g_structucp__params.js new file mode 100644 index 00000000000..f0db7ccd211 --- /dev/null +++ b/api/v1.17/html/group___u_c_p___c_o_n_f_i_g_structucp__params.js @@ -0,0 +1,13 @@ +var group___u_c_p___c_o_n_f_i_g_structucp__params = +[ + [ "field_mask", "group___u_c_p___c_o_n_f_i_g.html#a62d432cd22de13ccc9bb12edeb9c566b", null ], + [ "features", "group___u_c_p___c_o_n_f_i_g.html#afe7ed2a6c6ceb48e18a04f524d844e67", null ], + [ "request_size", "group___u_c_p___c_o_n_f_i_g.html#a3125e61440123f639c024d75b5edc0d6", null ], + [ "request_init", "group___u_c_p___c_o_n_f_i_g.html#ac1f0a25d794111217af5e0e6b9865458", null ], + [ "request_cleanup", "group___u_c_p___c_o_n_f_i_g.html#ad2aadf27367f4cc64e91e1dd2b52b8b8", null ], + [ "tag_sender_mask", "group___u_c_p___c_o_n_f_i_g.html#a82241de012d49800d2b75bd982f9b6b6", null ], + [ "mt_workers_shared", "group___u_c_p___c_o_n_f_i_g.html#ac81f2d8a179df5fd39786a4b08b26faf", null ], + [ "estimated_num_eps", "group___u_c_p___c_o_n_f_i_g.html#a5881757ea71d8c3ff7c15632a6cbd699", null ], + [ "estimated_num_ppn", "group___u_c_p___c_o_n_f_i_g.html#ab5966a27f9f4cf476560f9c87ac839cc", null ], + [ "name", "group___u_c_p___c_o_n_f_i_g.html#ac1aa15f430f0f273ff4f6055f9cfdea2", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___c_o_n_t_e_x_t.html b/api/v1.17/html/group___u_c_p___c_o_n_t_e_x_t.html new file mode 100644 index 00000000000..f647939d1bb --- /dev/null +++ b/api/v1.17/html/group___u_c_p___c_o_n_t_e_x_t.html @@ -0,0 +1,996 @@ + + + + + + + +UCX: UCP Application Context + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + +

+Data Structures

struct  ucp_lib_attr
 Lib attributes. More...
 
struct  ucp_context_attr
 Context attributes. More...
 
struct  ucp_tag_recv_info
 UCP receive information descriptor. More...
 
struct  ucp_request_param_t
 Operation parameters passed to ucp_tag_send_nbx, ucp_tag_send_sync_nbx, ucp_tag_recv_nbx, ucp_put_nbx, ucp_get_nbx, ucp_am_send_nbx and ucp_am_recv_data_nbx. More...
 
union  ucp_request_param_t.cb
 
union  ucp_request_param_t.recv_info
 
+ + + + +

+Macros

#define UCP_ENTITY_NAME_MAX   32
 Maximum size of the UCP entity name in structure of entity attributes provided by a query method.
 
+ + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef struct ucp_lib_attr ucp_lib_attr_t
 Lib attributes.
 
typedef struct ucp_context_attr ucp_context_attr_t
 Context attributes.
 
typedef struct ucp_tag_recv_info ucp_tag_recv_info_t
 UCP receive information descriptor.
 
typedef struct ucp_context * ucp_context_h
 UCP Application Context.
 
typedef void(* ucp_request_init_callback_t) (void *request)
 Request initialization callback.
 
typedef void(* ucp_request_cleanup_callback_t) (void *request)
 Request cleanup callback.
 
+ + + + + + + + + + + + + +

+Enumerations

enum  ucp_params_field {
+  UCP_PARAM_FIELD_FEATURES = UCS_BIT(0) +, UCP_PARAM_FIELD_REQUEST_SIZE = UCS_BIT(1) +, UCP_PARAM_FIELD_REQUEST_INIT = UCS_BIT(2) +, UCP_PARAM_FIELD_REQUEST_CLEANUP = UCS_BIT(3) +,
+  UCP_PARAM_FIELD_TAG_SENDER_MASK = UCS_BIT(4) +, UCP_PARAM_FIELD_MT_WORKERS_SHARED = UCS_BIT(5) +, UCP_PARAM_FIELD_ESTIMATED_NUM_EPS = UCS_BIT(6) +, UCP_PARAM_FIELD_ESTIMATED_NUM_PPN = UCS_BIT(7) +,
+  UCP_PARAM_FIELD_NAME = UCS_BIT(8) +
+ }
 UCP context parameters field mask. More...
 
enum  ucp_feature {
+  UCP_FEATURE_TAG = UCS_BIT(0) +, UCP_FEATURE_RMA = UCS_BIT(1) +, UCP_FEATURE_AMO32 = UCS_BIT(2) +, UCP_FEATURE_AMO64 = UCS_BIT(3) +,
+  UCP_FEATURE_WAKEUP = UCS_BIT(4) +, UCP_FEATURE_STREAM = UCS_BIT(5) +, UCP_FEATURE_AM = UCS_BIT(6) +, UCP_FEATURE_EXPORTED_MEMH = UCS_BIT(7) +
+ }
 UCP configuration features. More...
 
enum  ucp_lib_attr_field { UCP_LIB_ATTR_FIELD_MAX_THREAD_LEVEL = UCS_BIT(0) + }
 UCP library attributes field mask. More...
 
enum  ucp_context_attr_field { UCP_ATTR_FIELD_REQUEST_SIZE = UCS_BIT(0) +, UCP_ATTR_FIELD_THREAD_MODE = UCS_BIT(1) +, UCP_ATTR_FIELD_MEMORY_TYPES = UCS_BIT(2) +, UCP_ATTR_FIELD_NAME = UCS_BIT(3) + }
 UCP context attributes field mask. More...
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Functions

ucs_status_t ucp_lib_query (ucp_lib_attr_t *attr)
 Get attributes of the UCP library.
 
void ucp_get_version (unsigned *major_version, unsigned *minor_version, unsigned *release_number)
 Get UCP library version.
 
const char * ucp_get_version_string (void)
 Get UCP library version as a string.
 
static ucs_status_t ucp_init (const ucp_params_t *params, const ucp_config_t *config, ucp_context_h *context_p)
 UCP context initialization.
 
void ucp_cleanup (ucp_context_h context_p)
 Release UCP application context.
 
ucs_status_t ucp_context_query (ucp_context_h context_p, ucp_context_attr_t *attr)
 Get attributes specific to a particular context.
 
void ucp_context_print_info (const ucp_context_h context, FILE *stream)
 Print context information.
 
+

Detailed Description

+

Application context is a primary concept of UCP design which provides an isolation mechanism, allowing resources associated with the context to separate or share network communication context across multiple instances of applications.

+

This section provides a detailed description of this concept and routines associated with it.

+

Data Structure Documentation

+ +

◆ ucp_lib_attr

+ +
+
+ + + + +
struct ucp_lib_attr
+
+

The structure defines the attributes that characterize the Library.

+
+ + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from ucp_lib_attr_field. Fields not specified in this mask will be ignored. Provides ABI compatibility with respect to adding new fields.

+
+ucs_thread_mode_t +max_thread_level +

Maximum level of thread support of the library, which is permanent throughout the lifetime of the library. Accordingly, the user can call ucp_worker_create with appropriate ucp_worker_params_t::thread_mode. For supported thread levels please see ucs_thread_mode_t.

+
+ +
+
+ +

◆ ucp_context_attr

+ +
+
+ + + + +
struct ucp_context_attr
+
+

The structure defines the attributes that characterize the particular context.

+
+ + + + + + + + + + + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from ucp_context_attr_field. Fields not specified in this mask will be ignored. Provides ABI compatibility with respect to adding new fields.

+
+size_t +request_size +

Size of UCP non-blocking request. When pre-allocated request is used (e.g. in ucp_tag_recv_nbr) it should have enough space to fit UCP request data, which is defined by this value.

+
+ucs_thread_mode_t +thread_mode +

Thread safe level of the context. For supported thread levels please see ucs_thread_mode_t.

+
+uint64_t +memory_types +

Mask of which memory types are supported, for supported memory types please see ucs_memory_type_t.

+
+char +name[UCP_ENTITY_NAME_MAX] +

Tracing and analysis tools can use name to identify this UCX context.

+
+ +
+
+ +

◆ ucp_tag_recv_info

+ +
+
+ + + + +
struct ucp_tag_recv_info
+
+

The UCP receive information descriptor is allocated by application and filled in with the information about the received message by ucp_tag_probe_nb or ucp_tag_recv_request_test routines or ucp_tag_recv_callback_t callback argument.

+
Examples
ucp_client_server.c, and ucp_hello_world.c.
+
+
+ + + + + + + +
Data Fields
+ucp_tag_t +sender_tag +

Sender tag

+
+size_t +length +

The size of the received data

+
+ +
+
+ +

◆ ucp_request_param_t

+ +
+
+ + + + +
struct ucp_request_param_t
+
+

The structure ucp_request_param_t is used to specify datatype of operation, provide user request in case the external request is used, set completion callback and custom user data passed to this callback.

+

Example: implementation of function to send contiguous buffer to ep and invoke callback function at operation completion. If the operation completed immediately (status == UCS_OK) then callback is not called.

+
ucs_status_ptr_t send_data(ucp_ep_h ep, void *buffer, size_t length,
+
ucp_tag_t tag, void *request)
+
{
+ + + +
.request = request,
+
.cb.send = custom_send_callback_f,
+
.user_data = pointer_to_user_context_passed_to_cb
+
};
+
+ +
+
status = ucp_tag_send_nbx(ep, buffer, length, tag, &param);
+
if (UCS_PTR_IS_ERR(status)) {
+
handle_error(status);
+
} else if (status == UCS_OK) {
+
// operation is completed
+
}
+
+
return status;
+
}
+
uint64_t ucp_tag_t
UCP Tag Identifier.
Definition ucp_def.h:257
+
ucs_status_ptr_t ucp_tag_send_nbx(ucp_ep_h ep, const void *buffer, size_t count, ucp_tag_t tag, const ucp_request_param_t *param)
Non-blocking tagged-send operation.
+
@ UCP_OP_ATTR_FIELD_CALLBACK
Definition ucp.h:708
+
@ UCP_OP_ATTR_FIELD_REQUEST
Definition ucp.h:707
+
void * request
Definition ucp.h:1758
+
uint32_t op_attr_mask
Definition ucp.h:1747
+
Operation parameters passed to ucp_tag_send_nbx, ucp_tag_send_sync_nbx, ucp_tag_recv_nbx,...
Definition ucp.h:1741
+
struct ucp_ep * ucp_ep_h
UCP Endpoint.
Definition ucp_def.h:92
+
void * ucs_status_ptr_t
Status pointer.
Definition status.h:106
+
@ UCS_OK
Definition status.h:47
+
Examples
ucp_client_server.c, and ucp_hello_world.c.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Data Fields
+uint32_t +op_attr_mask +

Mask of valid fields in this structure and operation flags, using bits from ucp_op_attr_t. Fields not specified in this mask will be ignored. Provides ABI compatibility with respect to adding new fields.

+
+uint32_t +flags +
+void * +request +

Request handle allocated by the user. There should be at least UCP request size bytes of available space before the request. The size of the UCP request can be obtained by ucp_context_query function.

+
+union ucp_request_param_t.cb +cb +

Callback function that is invoked whenever the send or receive operation is completed.

+
+ucp_datatype_t +datatype +

Datatype descriptor for the elements in the buffer. In case the op_attr_mask & UCP_OP_ATTR_FIELD_DATATYPE bit is not set, then use default datatype ucp_dt_make_contig(1)

+
+void * +user_data +

Pointer to user data passed to callback function.

+
+void * +reply_buffer +

Reply buffer. Can be used for storing operation result, for example by ucp_atomic_op_nbx.

+
+ucs_memory_type_t +memory_type +

Memory type of the buffer. see ucs_memory_type_t for possible memory types. An optimization hint to avoid memory type detection for request buffer. If this value is not set (along with its corresponding bit in the op_attr_mask - UCP_OP_ATTR_FIELD_MEMORY_TYPE), then use default UCS_MEMORY_TYPE_UNKNOWN which means the memory type will be detected internally.

+
+union ucp_request_param_t.recv_info +recv_info +

Pointer to the information where received data details are stored in case of an immediate completion of receive operation. The user has to provide a pointer to valid memory/variable which will be updated on function return.

+
+ucp_mem_h +memh +

Memory handle for pre-registered buffer. If the handle is provided, protocols that require registered memory can skip the registration step. As a result, the communication request overhead can be reduced and the request can be completed faster. The memory handle should be obtained by calling ucp_mem_map.

+
+ +
+
+ +

◆ ucp_request_param_t.cb

+ +
+
+ + + + +
union ucp_request_param_t.cb
+
+

Callback function that is invoked whenever the send or receive operation is completed.

+
+ + + + + + + + + + + + + +
Data Fields
+ucp_send_nbx_callback_t +send +
+ucp_tag_recv_nbx_callback_t +recv +
+ucp_stream_recv_nbx_callback_t +recv_stream +
+ucp_am_recv_data_nbx_callback_t +recv_am +
+ +
+
+ +

◆ ucp_request_param_t.recv_info

+ +
+
+ + + + +
union ucp_request_param_t.recv_info
+
+

Pointer to the information where received data details are stored in case of an immediate completion of receive operation. The user has to provide a pointer to valid memory/variable which will be updated on function return.

+
+ + + + + + + +
Data Fields
+size_t * +length +
+ucp_tag_recv_info_t * +tag_info +
+ +
+
+

Macro Definition Documentation

+ +

◆ UCP_ENTITY_NAME_MAX

+ +
+
+ + + + +
#define UCP_ENTITY_NAME_MAX   32
+
+ +
+
+

Typedef Documentation

+ +

◆ ucp_lib_attr_t

+ +
+
+ + + + +
typedef struct ucp_lib_attr ucp_lib_attr_t
+
+

The structure defines the attributes that characterize the Library.

+ +
+
+ +

◆ ucp_context_attr_t

+ +
+
+ + + + +
typedef struct ucp_context_attr ucp_context_attr_t
+
+

The structure defines the attributes that characterize the particular context.

+ +
+
+ +

◆ ucp_tag_recv_info_t

+ +
+
+ + + + +
typedef struct ucp_tag_recv_info ucp_tag_recv_info_t
+
+

The UCP receive information descriptor is allocated by application and filled in with the information about the received message by ucp_tag_probe_nb or ucp_tag_recv_request_test routines or ucp_tag_recv_callback_t callback argument.

+ +
+
+ +

◆ ucp_context_h

+ +
+
+ + + + +
typedef struct ucp_context* ucp_context_h
+
+

UCP application context (or just a context) is an opaque handle that holds a UCP communication instance's global information. It represents a single UCP communication instance. The communication instance could be an OS process (an application) that uses UCP library. This global information includes communication resources, endpoints, memory, temporary file storage, and other communication information directly associated with a specific UCP instance. The context also acts as an isolation mechanism, allowing resources associated with the context to manage multiple concurrent communication instances. For example, users using both MPI and OpenSHMEM sessions simultaneously can isolate their communication by allocating and using separate contexts for each of them. Alternatively, users can share the communication resources (memory, network resource context, etc.) between them by using the same application context. A message sent or a RMA operation performed in one application context cannot be received in any other application context.

+ +
+
+ +

◆ ucp_request_init_callback_t

+ +
+
+ + + + +
typedef void(* ucp_request_init_callback_t) (void *request)
+
+

This callback routine is responsible for the request initialization.

+
Parameters
+ + +
[in]requestRequest handle to initialize.
+
+
+ +
+
+ +

◆ ucp_request_cleanup_callback_t

+ +
+
+ + + + +
typedef void(* ucp_request_cleanup_callback_t) (void *request)
+
+

This callback routine is responsible for cleanup of the memory associated with the request.

+
Parameters
+ + +
[in]requestRequest handle to cleanup.
+
+
+ +
+
+

Enumeration Type Documentation

+ +

◆ ucp_params_field

+ +
+
+ + + + +
enum ucp_params_field
+
+

The enumeration allows specifying which fields in ucp_params_t are present. It is used to enable backward compatibility support.

+ + + + + + + + + + +
Enumerator
UCP_PARAM_FIELD_FEATURES 

features

+
UCP_PARAM_FIELD_REQUEST_SIZE 

request_size

+
UCP_PARAM_FIELD_REQUEST_INIT 

request_init

+
UCP_PARAM_FIELD_REQUEST_CLEANUP 

request_cleanup

+
UCP_PARAM_FIELD_TAG_SENDER_MASK 

tag_sender_mask

+
UCP_PARAM_FIELD_MT_WORKERS_SHARED 

mt_workers_shared

+
UCP_PARAM_FIELD_ESTIMATED_NUM_EPS 

estimated_num_eps

+
UCP_PARAM_FIELD_ESTIMATED_NUM_PPN 

estimated_num_ppn

+
UCP_PARAM_FIELD_NAME 

name

+
+ +
+
+ +

◆ ucp_feature

+ +
+
+ + + + +
enum ucp_feature
+
+

The enumeration list describes the features supported by UCP. An application can request the features using UCP parameters during UCP initialization process.

+ + + + + + + + + +
Enumerator
UCP_FEATURE_TAG 

Request tag matching support

+
UCP_FEATURE_RMA 

Request remote memory access support

+
UCP_FEATURE_AMO32 

Request 32-bit atomic operations support

+
UCP_FEATURE_AMO64 

Request 64-bit atomic operations support

+
UCP_FEATURE_WAKEUP 

Request interrupt notification support

+
UCP_FEATURE_STREAM 

Request stream support

+
UCP_FEATURE_AM 

Request Active Message support

+
UCP_FEATURE_EXPORTED_MEMH 

Request support mapping a peer's memory handle that was created by ucp_mem_map and packed by ucp_memh_pack with the flag UCP_MEMH_PACK_FLAG_EXPORT and use it for local operations

+
+ +
+
+ +

◆ ucp_lib_attr_field

+ +
+
+ + + + +
enum ucp_lib_attr_field
+
+

The enumeration allows specifying which fields in ucp_lib_attr_t are present. It is used to enable backward compatibility support.

+ + +
Enumerator
UCP_LIB_ATTR_FIELD_MAX_THREAD_LEVEL 

UCP library maximum supported thread level flag

+
+ +
+
+ +

◆ ucp_context_attr_field

+ +
+
+ + + + +
enum ucp_context_attr_field
+
+

The enumeration allows specifying which fields in ucp_context_attr_t are present. It is used to enable backward compatibility support.

+ + + + + +
Enumerator
UCP_ATTR_FIELD_REQUEST_SIZE 

UCP request size

+
UCP_ATTR_FIELD_THREAD_MODE 

UCP context thread flag

+
UCP_ATTR_FIELD_MEMORY_TYPES 

UCP supported memory types

+
UCP_ATTR_FIELD_NAME 

UCP context name

+
+ +
+
+

Function Documentation

+ +

◆ ucp_lib_query()

+ +
+
+ + + + + + + +
ucs_status_t ucp_lib_query (ucp_lib_attr_t * attr)
+
+

This routine fetches information about the UCP library attributes.

+
Parameters
+ + +
[out]attrFilled with attributes of the UCP library.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_get_version()

+ +
+
+ + + + + + + + + + + + + + + + +
void ucp_get_version (unsigned * major_version,
unsigned * minor_version,
unsigned * release_number )
+
+

This routine returns the UCP library version.

+
Parameters
+ + + + +
[out]major_versionFilled with library major version.
[out]minor_versionFilled with library minor version.
[out]release_numberFilled with library release number.
+
+
+ +
+
+ +

◆ ucp_get_version_string()

+ +
+
+ + + + + + + +
const char * ucp_get_version_string (void )
+
+

This routine returns the UCP library version as a string which consists of: "major.minor.release".

+ +
+
+ +

◆ ucp_init()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + +
static ucs_status_t ucp_init (const ucp_params_t * params,
const ucp_config_t * config,
ucp_context_h * context_p )
+
+inlinestatic
+
+

This routine creates and initializes a UCP application context.

+
Warning
This routine must be called before any other UCP function call in the application.
+

This routine checks API version compatibility, then discovers the available network interfaces, and initializes the network resources required for discovering of the network and memory related devices. This routine is responsible for initialization all information required for a particular application scope, for example, MPI application, OpenSHMEM application, etc.

+
Note
    +
  • Higher level protocols can add additional communication isolation, as MPI does with its communicator object. A single communication context may be used to support multiple MPI communicators.
  • +
  • The context can be used to isolate the communication that corresponds to different protocols. For example, if MPI and OpenSHMEM are using UCP to isolate the MPI communication from the OpenSHMEM communication, users should use different application context for each of the communication libraries.
  • +
+
+
Parameters
+ + + + +
[in]configUCP configuration descriptor allocated through ucp_config_read() routine.
[in]paramsUser defined ucp_params_t configurations for the UCP application context.
[out]context_pInitialized UCP application context.
+
+
+
Returns
Error code as defined by ucs_status_t
+
Examples
ucp_client_server.c, and ucp_hello_world.c.
+
+ +
+
+ +

◆ ucp_cleanup()

+ +
+
+ + + + + + + +
void ucp_cleanup (ucp_context_h context_p)
+
+

This routine finalizes and releases the resources associated with a UCP application context.

+
Warning
An application cannot call any UCP routine once the UCP application context released.
+

The cleanup process releases and shuts down all resources associated with the application context. After calling this routine, calling any UCP routine without calling UCP initialization routine is invalid.

+
Parameters
+ + +
[in]context_pHandle to UCP application context.
+
+
+
Examples
ucp_client_server.c, and ucp_hello_world.c.
+
+ +
+
+ +

◆ ucp_context_query()

+ +
+
+ + + + + + + + + + + +
ucs_status_t ucp_context_query (ucp_context_h context_p,
ucp_context_attr_t * attr )
+
+

This routine fetches information about the context.

+
Parameters
+ + + +
[in]context_pHandle to UCP application context.
[out]attrFilled with attributes of context_p context.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_context_print_info()

+ +
+
+ + + + + + + + + + + +
void ucp_context_print_info (const ucp_context_h context,
FILE * stream )
+
+

This routine prints information about the context configuration: including memory domains, transport resources, and other useful information associated with the context.

+
Parameters
+ + + +
[in]contextPrint this context object's configuration.
[in]streamOutput stream on which to print the information.
+
+
+ +
+
+
+
+ + + + diff --git a/api/v1.17/html/group___u_c_p___c_o_n_t_e_x_t_structucp__context__attr.js b/api/v1.17/html/group___u_c_p___c_o_n_t_e_x_t_structucp__context__attr.js new file mode 100644 index 00000000000..c58071ad303 --- /dev/null +++ b/api/v1.17/html/group___u_c_p___c_o_n_t_e_x_t_structucp__context__attr.js @@ -0,0 +1,8 @@ +var group___u_c_p___c_o_n_t_e_x_t_structucp__context__attr = +[ + [ "field_mask", "group___u_c_p___c_o_n_t_e_x_t.html#ae4603d33274d3dd0bf41e1d759513601", null ], + [ "request_size", "group___u_c_p___c_o_n_t_e_x_t.html#a9b2ad3af27e1e94d4189ecc6fb1512ef", null ], + [ "thread_mode", "group___u_c_p___c_o_n_t_e_x_t.html#a4bc884428c16540d5d1b1f56881eb80b", null ], + [ "memory_types", "group___u_c_p___c_o_n_t_e_x_t.html#a59917e3a7e709c62e77d0acabbb0a24d", null ], + [ "name", "group___u_c_p___c_o_n_t_e_x_t.html#a958c850cc721fdadeae598928bbc8270", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___c_o_n_t_e_x_t_structucp__lib__attr.js b/api/v1.17/html/group___u_c_p___c_o_n_t_e_x_t_structucp__lib__attr.js new file mode 100644 index 00000000000..a1f2d6fbec8 --- /dev/null +++ b/api/v1.17/html/group___u_c_p___c_o_n_t_e_x_t_structucp__lib__attr.js @@ -0,0 +1,5 @@ +var group___u_c_p___c_o_n_t_e_x_t_structucp__lib__attr = +[ + [ "field_mask", "group___u_c_p___c_o_n_t_e_x_t.html#a529751be1cb45aff76dde0e5bf22b6d9", null ], + [ "max_thread_level", "group___u_c_p___c_o_n_t_e_x_t.html#a3cfd1d293ca29602ae799f7c52607c86", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___c_o_n_t_e_x_t_structucp__request__param__t.js b/api/v1.17/html/group___u_c_p___c_o_n_t_e_x_t_structucp__request__param__t.js new file mode 100644 index 00000000000..a68fde5ee1e --- /dev/null +++ b/api/v1.17/html/group___u_c_p___c_o_n_t_e_x_t_structucp__request__param__t.js @@ -0,0 +1,13 @@ +var group___u_c_p___c_o_n_t_e_x_t_structucp__request__param__t = +[ + [ "op_attr_mask", "group___u_c_p___c_o_n_t_e_x_t.html#a97e9444548efb351db6a07130fb69c28", null ], + [ "flags", "group___u_c_p___c_o_n_t_e_x_t.html#a55a8ff2559470c5def6077a86ee9d898", null ], + [ "request", "group___u_c_p___c_o_n_t_e_x_t.html#a746646123a460ed9a115c3fe21f194b0", null ], + [ "cb", "group___u_c_p___c_o_n_t_e_x_t.html#a1859c77f14dee64f623bd9f9111200c7", null ], + [ "datatype", "group___u_c_p___c_o_n_t_e_x_t.html#a3988d603154f90eb5405785cac62b65f", null ], + [ "user_data", "group___u_c_p___c_o_n_t_e_x_t.html#aa9092d65a2e4e55368ca4f88775c190b", null ], + [ "reply_buffer", "group___u_c_p___c_o_n_t_e_x_t.html#ad41bfb73053537d40830d52b3f380f02", null ], + [ "memory_type", "group___u_c_p___c_o_n_t_e_x_t.html#a52b53447384778b16b3b91d6abeb0f86", null ], + [ "recv_info", "group___u_c_p___c_o_n_t_e_x_t.html#a508d273e351bac14d3906243de353fb7", null ], + [ "memh", "group___u_c_p___c_o_n_t_e_x_t.html#a815bd876629909195b15c6b246de2900", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___c_o_n_t_e_x_t_structucp__tag__recv__info.js b/api/v1.17/html/group___u_c_p___c_o_n_t_e_x_t_structucp__tag__recv__info.js new file mode 100644 index 00000000000..60360c16c89 --- /dev/null +++ b/api/v1.17/html/group___u_c_p___c_o_n_t_e_x_t_structucp__tag__recv__info.js @@ -0,0 +1,5 @@ +var group___u_c_p___c_o_n_t_e_x_t_structucp__tag__recv__info = +[ + [ "sender_tag", "group___u_c_p___c_o_n_t_e_x_t.html#a19ac36808d83d348b23cd34fe997a7c9", null ], + [ "length", "group___u_c_p___c_o_n_t_e_x_t.html#a6fd83122b93c677e702dc37b39e8351b", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___c_o_n_t_e_x_t_unionucp__request__param__t_8cb.js b/api/v1.17/html/group___u_c_p___c_o_n_t_e_x_t_unionucp__request__param__t_8cb.js new file mode 100644 index 00000000000..d8d78af6e66 --- /dev/null +++ b/api/v1.17/html/group___u_c_p___c_o_n_t_e_x_t_unionucp__request__param__t_8cb.js @@ -0,0 +1,7 @@ +var group___u_c_p___c_o_n_t_e_x_t_unionucp__request__param__t_8cb = +[ + [ "send", "group___u_c_p___c_o_n_t_e_x_t.html#a2541d938b0a58946090d7abdde0d3890", null ], + [ "recv", "group___u_c_p___c_o_n_t_e_x_t.html#af701fee85540b78d08cb276d14953d58", null ], + [ "recv_stream", "group___u_c_p___c_o_n_t_e_x_t.html#aedcd1a9fffc78ccbba676b725aedd2e7", null ], + [ "recv_am", "group___u_c_p___c_o_n_t_e_x_t.html#a0b3ecefca237481439444fca3748275b", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___c_o_n_t_e_x_t_unionucp__request__param__t_8recv__info.js b/api/v1.17/html/group___u_c_p___c_o_n_t_e_x_t_unionucp__request__param__t_8recv__info.js new file mode 100644 index 00000000000..c841f762eac --- /dev/null +++ b/api/v1.17/html/group___u_c_p___c_o_n_t_e_x_t_unionucp__request__param__t_8recv__info.js @@ -0,0 +1,5 @@ +var group___u_c_p___c_o_n_t_e_x_t_unionucp__request__param__t_8recv__info = +[ + [ "length", "group___u_c_p___c_o_n_t_e_x_t.html#a2fa47f7c65fec19cc163b195725e3844", null ], + [ "tag_info", "group___u_c_p___c_o_n_t_e_x_t.html#afd2efab53a12a2742d277a8bcab056a6", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___d_a_t_a_t_y_p_e.html b/api/v1.17/html/group___u_c_p___d_a_t_a_t_y_p_e.html new file mode 100644 index 00000000000..149f7b4a27d --- /dev/null +++ b/api/v1.17/html/group___u_c_p___d_a_t_a_t_y_p_e.html @@ -0,0 +1,675 @@ + + + + + + + +UCX: UCP Data type routines + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ + + + + + + + + + + +

+Data Structures

struct  ucp_dt_iov
 Structure for scatter-gather I/O. More...
 
struct  ucp_generic_dt_ops
 UCP generic data type descriptor. More...
 
struct  ucp_datatype_attr
 UCP datatype attributes. More...
 
+ + + + + + + +

+Macros

#define ucp_dt_make_contig(_elem_size)    (((ucp_datatype_t)(_elem_size) << UCP_DATATYPE_SHIFT) | UCP_DATATYPE_CONTIG)
 Generate an identifier for contiguous data type.
 
#define ucp_dt_make_iov()   ((ucp_datatype_t)UCP_DATATYPE_IOV)
 Generate an identifier for Scatter-gather IOV data type.
 
+ + + + + + + + + + +

+Typedefs

typedef struct ucp_dt_iov ucp_dt_iov_t
 Structure for scatter-gather I/O.
 
typedef struct ucp_generic_dt_ops ucp_generic_dt_ops_t
 UCP generic data type descriptor.
 
typedef struct ucp_datatype_attr ucp_datatype_attr_t
 UCP datatype attributes.
 
+ + + + + + + +

+Enumerations

enum  ucp_dt_type {
+  UCP_DATATYPE_CONTIG = 0 +, UCP_DATATYPE_STRIDED = 1 +, UCP_DATATYPE_IOV = 2 +, UCP_DATATYPE_GENERIC = 7 +,
+  UCP_DATATYPE_SHIFT = 3 +, UCP_DATATYPE_CLASS_MASK = UCS_MASK(UCP_DATATYPE_SHIFT) +
+ }
 UCP data type classification. More...
 
enum  ucp_datatype_attr_field { UCP_DATATYPE_ATTR_FIELD_PACKED_SIZE = UCS_BIT(0) +, UCP_DATATYPE_ATTR_FIELD_BUFFER = UCS_BIT(1) +, UCP_DATATYPE_ATTR_FIELD_COUNT = UCS_BIT(2) + }
 UCP datatype attributes field mask. More...
 
+ + + + + + + + + + +

+Functions

ucs_status_t ucp_dt_create_generic (const ucp_generic_dt_ops_t *ops, void *context, ucp_datatype_t *datatype_p)
 Create a generic datatype.
 
void ucp_dt_destroy (ucp_datatype_t datatype)
 Destroy a datatype and release its resources.
 
ucs_status_t ucp_dt_query (ucp_datatype_t datatype, ucp_datatype_attr_t *attr)
 Query attributes of a datatype.
 
+ + + + + + + + + + + + + + + + + + + +

+Variables

void *(* ucp_generic_dt_ops::start_pack )(void *context, const void *buffer, size_t count)
 Start a packing request.
 
void *(* ucp_generic_dt_ops::start_unpack )(void *context, void *buffer, size_t count)
 Start an unpacking request.
 
size_t(* ucp_generic_dt_ops::packed_size )(void *state)
 Get the total size of packed data.
 
size_t(* ucp_generic_dt_ops::pack )(void *state, size_t offset, void *dest, size_t max_length)
 Pack data.
 
ucs_status_t(* ucp_generic_dt_ops::unpack )(void *state, size_t offset, const void *src, size_t length)
 Unpack data.
 
void(* ucp_generic_dt_ops::finish )(void *state)
 Finish packing/unpacking.
 
+

Detailed Description

+

UCP Data type routines

+

Data Structure Documentation

+ +

◆ ucp_dt_iov

+ +
+
+ + + + +
struct ucp_dt_iov
+
+

This structure is used to specify a list of buffers which can be used within a single data transfer function call. This list should remain valid until the data transfer request is completed.

+
Note
If length is zero, the memory pointed to by buffer will not be accessed. Otherwise, buffer must point to valid memory.
+
Examples
ucp_client_server.c.
+
+
+ + + + + + + +
Data Fields
+void * +buffer +

Pointer to a data buffer

+
+size_t +length +

Length of the buffer in bytes

+
+ +
+
+ +

◆ ucp_datatype_attr

+ +
+
+ + + + +
struct ucp_datatype_attr
+
+

This structure provides attributes of a UCP datatype.

+
+ + + + + + + + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from ucp_datatype_attr_field. Fields not specified in this mask will be ignored. Provides ABI compatibility with respect to adding new fields.

+
+size_t +packed_size +

Packed size of the given datatype. (output parameter)

+
+const void * +buffer +

Pointer to a data buffer of the associated data type. This field is optional. If UCP_DATATYPE_ATTR_FIELD_BUFFER is not set in field_mask, this field defaults to NULL.

+
+size_t +count +

Number of elements in buffer. This value is optional. If UCP_DATATYPE_ATTR_FIELD_COUNT is not set in field_mask, the value of this field defaults to 1.

+
+ +
+
+

Macro Definition Documentation

+ +

◆ ucp_dt_make_contig

+ +
+
+ + + + + + + +
#define ucp_dt_make_contig( _elem_size)    (((ucp_datatype_t)(_elem_size) << UCP_DATATYPE_SHIFT) | UCP_DATATYPE_CONTIG)
+
+

This macro creates an identifier for contiguous datatype that is defined by the size of the basic element.

+
Parameters
+ + +
[in]_elem_sizeSize of the basic element of the type.
+
+
+
Returns
Data-type identifier.
+
Note
In case of partial receive, the buffer will be filled with integral count of elements.
+
Examples
ucp_client_server.c, and ucp_hello_world.c.
+
+ +
+
+ +

◆ ucp_dt_make_iov

+ +
+
+ + + + + + + +
#define ucp_dt_make_iov()   ((ucp_datatype_t)UCP_DATATYPE_IOV)
+
+

This macro creates an identifier for datatype of scatter-gather list with multiple pointers

+
Returns
Data-type identifier.
+
Note
In the event of partial receive, ucp_dt_iov_t::buffer can be filled with any number of bytes according to its ucp_dt_iov_t::length.
+ +
+
+

Typedef Documentation

+ +

◆ ucp_dt_iov_t

+ +
+
+ + + + +
typedef struct ucp_dt_iov ucp_dt_iov_t
+
+

This structure is used to specify a list of buffers which can be used within a single data transfer function call. This list should remain valid until the data transfer request is completed.

+
Note
If length is zero, the memory pointed to by buffer will not be accessed. Otherwise, buffer must point to valid memory.
+ +
+
+ +

◆ ucp_generic_dt_ops_t

+ +
+
+ + + + +
typedef struct ucp_generic_dt_ops ucp_generic_dt_ops_t
+
+

This structure provides a generic datatype descriptor that is used for definition of application defined datatypes.

+

Typically, the descriptor is used for an integration with datatype engines implemented within MPI and SHMEM implementations.

+
Note
In case of partial receive, any amount of received data is acceptable which matches buffer size.
+ +
+
+ +

◆ ucp_datatype_attr_t

+ +
+
+ + + + +
typedef struct ucp_datatype_attr ucp_datatype_attr_t
+
+

This structure provides attributes of a UCP datatype.

+ +
+
+

Enumeration Type Documentation

+ +

◆ ucp_dt_type

+ +
+
+ + + + +
enum ucp_dt_type
+
+

The enumeration list describes the datatypes supported by UCP.

+ + + + + + + +
Enumerator
UCP_DATATYPE_CONTIG 

Contiguous datatype

+
UCP_DATATYPE_STRIDED 

Strided datatype

+
UCP_DATATYPE_IOV 

Scatter-gather list with multiple pointers

+
UCP_DATATYPE_GENERIC 

Generic datatype with user-defined pack/unpack routines

+
UCP_DATATYPE_SHIFT 

Number of bits defining the datatype classification

+
UCP_DATATYPE_CLASS_MASK 

Data-type class mask

+
+ +
+
+ +

◆ ucp_datatype_attr_field

+ +
+
+ + + + +
enum ucp_datatype_attr_field
+
+

The enumeration allows specifying which fields in ucp_datatype_attr_t are present and which datatype attributes are queried.

+ + + + +
Enumerator
UCP_DATATYPE_ATTR_FIELD_PACKED_SIZE 

ucp_datatype_attr_t::packed_size field is queried.

+
UCP_DATATYPE_ATTR_FIELD_BUFFER 

ucp_datatype_attr_t::buffer field is set.

+
UCP_DATATYPE_ATTR_FIELD_COUNT 

ucp_datatype_attr_t::count field is set.

+
+ +
+
+

Function Documentation

+ +

◆ ucp_dt_create_generic()

+ +
+
+ + + + + + + + + + + + + + + + +
ucs_status_t ucp_dt_create_generic (const ucp_generic_dt_ops_t * ops,
void * context,
ucp_datatype_t * datatype_p )
+
+

This routine create a generic datatype object. The generic datatype is described by the ops object which provides a table of routines defining the operations for generic datatype manipulation. Typically, generic datatypes are used for integration with datatype engines provided with MPI implementations (MPICH, Open MPI, etc). The application is responsible for releasing the datatype_p object using ucp_dt_destroy() routine.

+
Parameters
+ + + + +
[in]opsGeneric datatype function table as defined by ucp_generic_dt_ops_t .
[in]contextApplication defined context passed to this routine. The context is passed as a parameter to the routines in the ops table.
[out]datatype_pA pointer to datatype object.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_dt_destroy()

+ +
+
+ + + + + + + +
void ucp_dt_destroy (ucp_datatype_t datatype)
+
+

This routine destroys the datatype object and releases any resources that are associated with the object. The datatype object must be allocated using ucp_dt_create_generic() routine.

+
Warning
    +
  • Once the datatype object is released an access to this object may cause an undefined failure.
  • +
+
+
Parameters
+ + +
[in]datatypeDatatype object to destroy.
+
+
+ +
+
+ +

◆ ucp_dt_query()

+ +
+
+ + + + + + + + + + + +
ucs_status_t ucp_dt_query (ucp_datatype_t datatype,
ucp_datatype_attr_t * attr )
+
+

This routine fetches information about the attributes of a datatype. When UCP_DATATYPE_ATTR_FIELD_PACKED_SIZE is set in field_mask of attr, the field packed_size is set to the packed size (bytes) of the datatype.

+
Parameters
+ + + +
[in]datatypeDatatype object to query.
[in,out]attrFilled with attributes of the datatype.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+

Variable Documentation

+ +

◆ start_pack

+ +
+
+ + + + +
void *(* ucp_generic_dt_ops::start_pack) (void *context, const void *buffer, size_t count)
+
+

The pointer refers to application defined start-to-pack routine. It will be called from the ucp_tag_send_nb routine.

+
Parameters
+ + + + +
[in]contextUser-defined context.
[in]bufferBuffer to pack.
[in]countNumber of elements to pack into the buffer.
+
+
+
Returns
A custom state that is passed to the following pack() routine.
+ +
+
+ +

◆ start_unpack

+ +
+
+ + + + +
void *(* ucp_generic_dt_ops::start_unpack) (void *context, void *buffer, size_t count)
+
+

The pointer refers to application defined start-to-unpack routine. It will be called from the ucp_tag_recv_nb routine.

+
Parameters
+ + + + +
[in]contextUser-defined context.
[in]bufferBuffer to unpack to.
[in]countNumber of elements to unpack in the buffer.
+
+
+
Returns
A custom state that is passed later to the following unpack() routine.
+ +
+
+ +

◆ packed_size

+ +
+
+ + + + +
size_t(* ucp_generic_dt_ops::packed_size) (void *state)
+
+

The pointer refers to user defined routine that returns the size of data in a packed format.

+
Parameters
+ + +
[in]stateState as returned by start_pack() routine.
+
+
+
Returns
The size of the data in a packed form.
+ +
+
+ +

◆ pack

+ +
+
+ + + + +
size_t(* ucp_generic_dt_ops::pack) (void *state, size_t offset, void *dest, size_t max_length)
+
+

The pointer refers to application defined pack routine.

+
Parameters
+ + + + + +
[in]stateState as returned by start_pack() routine.
[in]offsetVirtual offset in the output stream.
[in]destDestination buffer to pack the data.
[in]max_lengthMaximum length to pack.
+
+
+
Returns
The size of the data that was written to the destination buffer. Must be less than or equal to max_length.
+ +
+
+ +

◆ unpack

+ +
+
+ + + + +
ucs_status_t(* ucp_generic_dt_ops::unpack) (void *state, size_t offset, const void *src, size_t length)
+
+

The pointer refers to application defined unpack routine.

+
Parameters
+ + + + + +
[in]stateState as returned by start_unpack() routine.
[in]offsetVirtual offset in the input stream.
[in]srcSource to unpack the data from.
[in]lengthLength to unpack.
+
+
+
Returns
UCS_OK or an error if unpacking failed.
+ +
+
+ +

◆ finish

+ +
+
+ + + + +
void(* ucp_generic_dt_ops::finish) (void *state)
+
+

The pointer refers to application defined finish routine.

+
Parameters
+ + +
[in]stateState as returned by start_pack() and start_unpack() routines.
+
+
+ +
+
+
+
+ + + + diff --git a/api/v1.17/html/group___u_c_p___d_a_t_a_t_y_p_e_structucp__datatype__attr.js b/api/v1.17/html/group___u_c_p___d_a_t_a_t_y_p_e_structucp__datatype__attr.js new file mode 100644 index 00000000000..30485f75bfa --- /dev/null +++ b/api/v1.17/html/group___u_c_p___d_a_t_a_t_y_p_e_structucp__datatype__attr.js @@ -0,0 +1,7 @@ +var group___u_c_p___d_a_t_a_t_y_p_e_structucp__datatype__attr = +[ + [ "field_mask", "group___u_c_p___d_a_t_a_t_y_p_e.html#a416b16fac9ac4cc99a06833eb6dbdfa9", null ], + [ "packed_size", "group___u_c_p___d_a_t_a_t_y_p_e.html#a2e3822b2beb1cd2df7b0423a5a9c3a9c", null ], + [ "buffer", "group___u_c_p___d_a_t_a_t_y_p_e.html#a20f316c0e0e6c5de2e0e1851b9e22c32", null ], + [ "count", "group___u_c_p___d_a_t_a_t_y_p_e.html#a03dd4423d8570e5b33af6a2f2a4c164e", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___d_a_t_a_t_y_p_e_structucp__dt__iov.js b/api/v1.17/html/group___u_c_p___d_a_t_a_t_y_p_e_structucp__dt__iov.js new file mode 100644 index 00000000000..0192494bc06 --- /dev/null +++ b/api/v1.17/html/group___u_c_p___d_a_t_a_t_y_p_e_structucp__dt__iov.js @@ -0,0 +1,5 @@ +var group___u_c_p___d_a_t_a_t_y_p_e_structucp__dt__iov = +[ + [ "buffer", "group___u_c_p___d_a_t_a_t_y_p_e.html#a6cf4c47c33d61c097226b570a470f10c", null ], + [ "length", "group___u_c_p___d_a_t_a_t_y_p_e.html#a776d38e0b127efb673685644b6816663", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___e_n_d_p_o_i_n_t.html b/api/v1.17/html/group___u_c_p___e_n_d_p_o_i_n_t.html new file mode 100644 index 00000000000..7c24fda9710 --- /dev/null +++ b/api/v1.17/html/group___u_c_p___e_n_d_p_o_i_n_t.html @@ -0,0 +1,1444 @@ + + + + + + + +UCX: UCP Endpoint + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + +

+Data Structures

struct  ucp_ep_evaluate_perf_param_t
 UCP endpoint performance evaluation request attributes. More...
 
struct  ucp_ep_evaluate_perf_attr_t
 UCP endpoint performance evaluation result attributes. More...
 
struct  ucp_stream_poll_ep
 Output parameter of ucp_stream_worker_poll function. More...
 
struct  ucp_ep_attr
 UCP endpoint attributes. More...
 
struct  ucp_ep_params
 Tuning parameters for the UCP endpoint. More...
 
struct  ucp_transport_entry_t
 The ucp_transports_t and ucp_transport_entry_t structures are used when ucp_ep_query is called to return an array of transport name and device name pairs that are used by an active endpoint. More...
 
struct  ucp_transports_t
 Structure containing an array of transport layers and device names used by an endpoint. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef enum ucp_ep_perf_param_field ucp_ep_perf_param_field_t
 UCP performance fields and flags.
 
typedef enum ucp_ep_perf_attr_field ucp_ep_perf_attr_field_t
 UCP performance fields and flags.
 
typedef struct ucp_stream_poll_ep ucp_stream_poll_ep_t
 Output parameter of ucp_stream_worker_poll function.
 
typedef struct ucp_ep_attr ucp_ep_attr_t
 UCP endpoint attributes.
 
typedef struct ucp_ep * ucp_ep_h
 UCP Endpoint.
 
typedef struct ucp_conn_request * ucp_conn_request_h
 UCP connection request.
 
typedef ucs_status_t(* ucp_am_callback_t) (void *arg, void *data, size_t length, ucp_ep_h reply_ep, unsigned flags)
 Callback to process incoming Active Message.
 
typedef ucs_status_t(* ucp_am_recv_callback_t) (void *arg, const void *header, size_t header_length, void *data, size_t length, const ucp_am_recv_param_t *param)
 Callback to process incoming Active Message sent by ucp_am_send_nbx routine.
 
typedef struct ucp_ep_params ucp_ep_params_t
 Tuning parameters for the UCP endpoint.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Enumerations

enum  ucp_ep_params_field {
+  UCP_EP_PARAM_FIELD_REMOTE_ADDRESS = UCS_BIT(0) +, UCP_EP_PARAM_FIELD_ERR_HANDLING_MODE = UCS_BIT(1) +, UCP_EP_PARAM_FIELD_ERR_HANDLER = UCS_BIT(2) +, UCP_EP_PARAM_FIELD_USER_DATA = UCS_BIT(3) +,
+  UCP_EP_PARAM_FIELD_SOCK_ADDR = UCS_BIT(4) +, UCP_EP_PARAM_FIELD_FLAGS = UCS_BIT(5) +, UCP_EP_PARAM_FIELD_CONN_REQUEST = UCS_BIT(6) +, UCP_EP_PARAM_FIELD_NAME = UCS_BIT(7) +,
+  UCP_EP_PARAM_FIELD_LOCAL_SOCK_ADDR = UCS_BIT(8) +
+ }
 UCP endpoint parameters field mask. More...
 
enum  ucp_ep_params_flags_field { UCP_EP_PARAMS_FLAGS_CLIENT_SERVER = UCS_BIT(0) +, UCP_EP_PARAMS_FLAGS_NO_LOOPBACK = UCS_BIT(1) +, UCP_EP_PARAMS_FLAGS_SEND_CLIENT_ID = UCS_BIT(2) + }
 UCP endpoint parameters flags. More...
 
enum  ucp_ep_close_flags_t { UCP_EP_CLOSE_FLAG_FORCE = UCS_BIT(0) + }
 Close UCP endpoint modes. More...
 
enum  ucp_ep_perf_param_field { UCP_EP_PERF_PARAM_FIELD_MESSAGE_SIZE = UCS_BIT(0) + }
 UCP performance fields and flags. More...
 
enum  ucp_ep_perf_attr_field { UCP_EP_PERF_ATTR_FIELD_ESTIMATED_TIME = UCS_BIT(0) + }
 UCP performance fields and flags. More...
 
enum  ucp_cb_param_flags { UCP_CB_PARAM_FLAG_DATA = UCS_BIT(0) + }
 Descriptor flags for Active Message callback. More...
 
enum  ucp_ep_attr_field { UCP_EP_ATTR_FIELD_NAME = UCS_BIT(0) +, UCP_EP_ATTR_FIELD_LOCAL_SOCKADDR = UCS_BIT(1) +, UCP_EP_ATTR_FIELD_REMOTE_SOCKADDR = UCS_BIT(2) +, UCP_EP_ATTR_FIELD_TRANSPORTS = UCS_BIT(3) + }
 UCP endpoint attributes field mask. More...
 
enum  ucp_ep_close_mode { UCP_EP_CLOSE_MODE_FORCE = 0 +, UCP_EP_CLOSE_MODE_FLUSH = 1 + }
 Close UCP endpoint modes. More...
 
enum  ucp_err_handling_mode_t { UCP_ERR_HANDLING_MODE_NONE +, UCP_ERR_HANDLING_MODE_PEER + }
 Error handling mode for the UCP endpoint. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

ucs_status_t ucp_ep_create (ucp_worker_h worker, const ucp_ep_params_t *params, ucp_ep_h *ep_p)
 Create and connect an endpoint.
 
ucs_status_ptr_t ucp_ep_close_nbx (ucp_ep_h ep, const ucp_request_param_t *param)
 Non-blocking endpoint closure.
 
void ucp_ep_print_info (ucp_ep_h ep, FILE *stream)
 Print endpoint information.
 
ucs_status_ptr_t ucp_ep_flush_nbx (ucp_ep_h ep, const ucp_request_param_t *param)
 Non-blocking flush of outstanding AMO and RMA operations on the endpoint.
 
ucs_status_t ucp_ep_evaluate_perf (ucp_ep_h ep, const ucp_ep_evaluate_perf_param_t *param, ucp_ep_evaluate_perf_attr_t *attr)
 Estimate performance characteristics of a specific endpoint.
 
ucs_status_t ucp_ep_query (ucp_ep_h ep, ucp_ep_attr_t *attr)
 Get attributes of a given endpoint.
 
void ucp_request_release (void *request)
 
void ucp_ep_destroy (ucp_ep_h ep)
 
ucs_status_ptr_t ucp_disconnect_nb (ucp_ep_h ep)
 
ucs_status_t ucp_request_test (void *request, ucp_tag_recv_info_t *info)
 
ucs_status_t ucp_ep_flush (ucp_ep_h ep)
 
ucs_status_ptr_t ucp_ep_modify_nb (ucp_ep_h ep, const ucp_ep_params_t *params)
 Modify endpoint parameters.
 
ucs_status_ptr_t ucp_ep_close_nb (ucp_ep_h ep, unsigned mode)
 Non-blocking endpoint closure.
 
ucs_status_ptr_t ucp_ep_flush_nb (ucp_ep_h ep, unsigned flags, ucp_send_callback_t cb)
 Non-blocking flush of outstanding AMO and RMA operations on the endpoint.
 
+

Detailed Description

+

UCP Endpoint routines

+

Data Structure Documentation

+ +

◆ ucp_ep_evaluate_perf_param_t

+ +
+
+ + + + +
struct ucp_ep_evaluate_perf_param_t
+
+

The structure defines the attributes which characterize the request for performance estimation of a particular endpoint.

+
+ + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from ucp_ep_perf_param_field_t. Fields not specified in this mask will be ignored. Provides ABI compatibility with respect to adding new fields.

+
+size_t +message_size +

Message size to use for determining performance. This field must be initialized by the caller.

+
+ +
+
+ +

◆ ucp_ep_evaluate_perf_attr_t

+ +
+
+ + + + +
struct ucp_ep_evaluate_perf_attr_t
+
+

The structure defines the attributes which characterize the result of performance estimation of a particular endpoint.

+
+ + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from ucp_ep_perf_attr_field_t. Fields not specified in this mask will be ignored. Provides ABI compatibility with respect to adding new fields.

+
+double +estimated_time +

Estimated time (in seconds) required to send a message of a given size on this endpoint. This field is set by the ucp_ep_evaluate_perf function.

+
+ +
+
+ +

◆ ucp_stream_poll_ep

+ +
+
+ + + + +
struct ucp_stream_poll_ep
+
+

The structure defines the endpoint and its user data.

+
+ + + + + + + + + + + + + +
Data Fields
+ucp_ep_h +ep +

Endpoint handle.

+
+void * +user_data +

User data associated with an endpoint passed in ucp_ep_params_t::user_data.

+
+unsigned +flags +

Reserved for future use.

+
+uint8_t +reserved[16] +

Reserved for future use.

+
+ +
+
+ +

◆ ucp_ep_attr

+ +
+
+ + + + +
struct ucp_ep_attr
+
+

The structure defines the attributes that characterize the particular endpoint.

+
+ + + + + + + + + + + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from ucp_ep_attr_field. Fields not specified in this mask will be ignored. Provides ABI compatibility with respect to adding new fields.

+
+char +name[UCP_ENTITY_NAME_MAX] +

Endpoint name. Tracing and analysis tools can identify the endpoint using this name.

+
+struct sockaddr_storage +local_sockaddr +

Local socket address for this endpoint. Valid only for endpoints created by connecting to a socket address. If this field is specified for an endpoint not connected to a socket address, UCS_ERR_NOT_CONNECTED will be returned.

+
+struct sockaddr_storage +remote_sockaddr +

Remote socket address this endpoint is connected to. Valid only for endpoints created by connecting to a socket address. If this field is specified for an endpoint not connected to a socket address, UCS_ERR_NOT_CONNECTED will be returned.

+
+ucp_transports_t +transports +

Structure defining an array containing transport and device names used by this endpoint. The caller is responsible for allocation and deallocation of this array.

+
+ +
+
+ +

◆ ucp_ep_params

+ +
+
+ + + + +
struct ucp_ep_params
+
+

The structure defines the parameters that are used for the UCP endpoint tuning during the UCP ep creation.

+
Examples
ucp_client_server.c, and ucp_hello_world.c.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from ucp_ep_params_field. Fields not specified in this mask will be ignored. Provides ABI compatibility with respect to adding new fields.

+
+const ucp_address_t * +address +

Destination address; this field should be set along with its corresponding bit in the field_mask - UCP_EP_PARAM_FIELD_REMOTE_ADDRESS and must be obtained using ucp_worker_get_address.

+
+ucp_err_handling_mode_t +err_mode +

Desired error handling mode, optional parameter. Default value is UCP_ERR_HANDLING_MODE_NONE.

+
+ucp_err_handler_t +err_handler +

Handler to process transport level failure.

+
+void * +user_data +

User data associated with an endpoint. See ucp_stream_poll_ep_t and ucp_err_handler_t

+
+unsigned +flags +

Endpoint flags from ucp_ep_params_flags_field. This value is optional. If it's not set (along with its corresponding bit in the field_mask - UCP_EP_PARAM_FIELD_FLAGS), the ucp_ep_create() routine will consider the flags as set to zero.

+
+ucs_sock_addr_t +sockaddr +

Destination address in the form of a sockaddr; this field should be set along with its corresponding bit in the field_mask - UCP_EP_PARAM_FIELD_SOCK_ADDR and must be obtained from the user, it means that this type of the endpoint creation is possible only on client side in client-server connection establishment flow.

+
+ucp_conn_request_h +conn_request +

Connection request from client; this field should be set along with its corresponding bit in the field_mask - UCP_EP_PARAM_FIELD_CONN_REQUEST and must be obtained from ucp_listener_conn_callback_t, it means that this type of the endpoint creation is possible only on server side in client-server connection establishment flow.

+
+const char * +name +

Endpoint name. Tracing and analysis tools can identify the endpoint using this name. To retrieve the endpoint's name, use ucp_ep_query, as the name you supply may be changed by UCX under some circumstances, e.g. a name conflict. This field is only assigned if you set UCP_EP_PARAM_FIELD_NAME in the field mask. If not, then a default unique name will be created for you.

+
+ucs_sock_addr_t +local_sockaddr +

The sockaddr to bind locally. Specifies the associated network device to bind locally to establish new connections. To retrieve the endpoint's local_sockaddr, use ucp_ep_query. This setting is optional. To enable it, the corresponding - UCP_EP_PARAM_FIELD_LOCAL_SOCK_ADDR bit in the field mask must be set.

+
+ +
+
+ +

◆ ucp_transport_entry_t

+ +
+
+ + + + +
struct ucp_transport_entry_t
+
+

The ucp_transport_t structure specifies the characteristics of the ucp_transport_entry_t array.

+

The caller is responsible for the allocation and de-allocation of the ucp_transport_entry_t array.

+

Example: Implementation of a function to query the set of transport and device name pairs used by the specified endpoint.

+
int query_transports(ucp_ep_h ep)
+
{
+
ucs_status_t status;
+
ucp_transport_entry_t *transport_entries;
+
ucp_ep_attr_t ep_attrs;
+
+ + +
malloc(10 * sizeof(ucp_transport_entry_t));
+
ep_attrs.transports.num_entries = 10;
+ +
status = ucp_ep_query(ep, &ep_attrs);
+
if (status == UCS_OK) {
+
// ep_attrs.transports.num_entries = number of returned entries
+
// ... process transport info ...
+
}
+
}
+
size_t entry_size
Definition ucp_def.h:868
+
ucp_transports_t transports
Definition ucp.h:4115
+
unsigned num_entries
Definition ucp_def.h:860
+
uint64_t field_mask
Definition ucp.h:4086
+
ucp_transport_entry_t * entries
Definition ucp_def.h:852
+
ucs_status_t ucp_ep_query(ucp_ep_h ep, ucp_ep_attr_t *attr)
Get attributes of a given endpoint.
+
struct ucp_ep * ucp_ep_h
UCP Endpoint.
Definition ucp_def.h:92
+
@ UCP_EP_ATTR_FIELD_TRANSPORTS
Definition ucp.h:4068
+
UCP endpoint attributes.
Definition ucp.h:4079
+
The ucp_transports_t and ucp_transport_entry_t structures are used when ucp_ep_query is called to ret...
Definition ucp_def.h:820
+
ucs_status_t
Status codes.
Definition status.h:45
+
@ UCS_OK
Definition status.h:47
+

A transport name and device name pair used by this endpoint. The caller is responsible for the allocation and deallocation of an array of these structures large enough to contain the desired number of transport and device name pairs.

+

Any new fields must be added to the end of this structure.

+
+ + + + + + + +
Data Fields
+const char * +transport_name +

The name of a transport layer used by this endpoint. This '\0'-terminated string is valid until the endpoint is closed using a ucp_ep_close_nbx call.

+
+const char * +device_name +

The name of the device used with this transport by this endpoint. This '\0'-terminated string is valid until the endpoint is closed using a ucp_ep_close_nbx call.

+
+ +
+
+ +

◆ ucp_transports_t

+ +
+
+ + + + +
struct ucp_transports_t
+
+

The caller is responsible for allocation and deallocation of this structure.

+
+ + + + + + + + + + +
Data Fields
+ucp_transport_entry_t * +entries +

Pointer to array of transport/device name pairs used by this endpoint. The caller is responsible for the allocation and deallocation of this array.

+
+unsigned +num_entries +

Number of transport/device name pairs. The caller must set this to the maximum number of pairs the structure can contain. On return, this is set to the actual number of transport and device name pairs used by the endpoint.

+
+size_t +entry_size +

Size of a single ucp_transport_entry_t object. The caller sets this to the size of the ucp_transport_entry_t they are using. UCP code must not set any fields in the ucp_transport_entry_t structure beyond this size.

+
+ +
+
+

Typedef Documentation

+ +

◆ ucp_ep_perf_param_field_t

+ +
+
+

The enumeration allows specifying which fields in ucp_ep_evaluate_perf_param_t are present and operation flags are used. It is used to enable backward compatibility support.

+ +
+
+ +

◆ ucp_ep_perf_attr_field_t

+ +
+
+

The enumeration allows specifying which fields in ucp_ep_evaluate_perf_attr_t are present and operation flags are used. It is used to enable backward compatibility support.

+ +
+
+ +

◆ ucp_stream_poll_ep_t

+ +
+
+ + + + +
typedef struct ucp_stream_poll_ep ucp_stream_poll_ep_t
+
+

The structure defines the endpoint and its user data.

+ +
+
+ +

◆ ucp_ep_attr_t

+ +
+
+ + + + +
typedef struct ucp_ep_attr ucp_ep_attr_t
+
+

The structure defines the attributes that characterize the particular endpoint.

+ +
+
+ +

◆ ucp_ep_h

+ +
+
+ + + + +
typedef struct ucp_ep* ucp_ep_h
+
+

The endpoint handle is an opaque object that is used to address a remote worker. It typically provides a description of source, destination, or both. All UCP communication routines address a destination with the endpoint handle. The endpoint handle is associated with only one UCP context. UCP provides the endpoint create routine to create the endpoint handle and the destroy routine to destroy the endpoint handle.

+ +
+
+ +

◆ ucp_conn_request_h

+ +
+
+ + + + +
typedef struct ucp_conn_request* ucp_conn_request_h
+
+

A server-side handle to incoming connection request. Can be used to create an endpoint which connects back to the client.

+ +
+
+ +

◆ ucp_am_callback_t

+ +
+
+ + + + +
typedef ucs_status_t(* ucp_am_callback_t) (void *arg, void *data, size_t length, ucp_ep_h reply_ep, unsigned flags)
+
+

When the callback is called, flags indicates how data should be handled.

+
Parameters
+ + + + + + +
[in]argUser-defined argument.
[in]dataPoints to the received data. This data may persist after the callback returns and needs to be freed with ucp_am_data_release.
[in]lengthLength of data.
[in]reply_epIf the Active Message is sent with the UCP_AM_SEND_FLAG_REPLY flag, the sending ep will be passed in. If not, NULL will be passed.
[in]flagsIf this flag is set to UCP_CB_PARAM_FLAG_DATA, the callback can return UCS_INPROGRESS and data will persist after the callback returns.
+
+
+
Returns
UCS_OK data will not persist after the callback returns.
+
+UCS_INPROGRESS Can only be returned if flags is set to UCP_CB_PARAM_FLAG_DATA. If UCP_INPROGRESS is returned, data will persist after the callback has returned. To free the memory, a pointer to the data must be passed into ucp_am_data_release.
+
Note
This callback should be set and released by ucp_worker_set_am_handler function.
+ +
+
+ +

◆ ucp_am_recv_callback_t

+ +
+
+ + + + +
typedef ucs_status_t(* ucp_am_recv_callback_t) (void *arg, const void *header, size_t header_length, void *data, size_t length, const ucp_am_recv_param_t *param)
+
+

The callback is always called from the progress context, therefore calling ucp_worker_progress() is not allowed. It is recommended to define callbacks with relatively short execution time to avoid blocking of communication progress.

+
Parameters
+ + + + + + + +
[in]argUser-defined argument.
[in]headerUser defined active message header. If header_length is 0, this value is undefined and must not be accessed.
[in]header_lengthActive message header length in bytes.
[in]dataPoints to the received data if UCP_AM_RECV_ATTR_FLAG_RNDV flag is not set in ucp_am_recv_param_t::recv_attr. Otherwise it points to the internal UCP descriptor which can further be used for initiating data receive by using ucp_am_recv_data_nbx routine.
[in]lengthLength of data. If UCP_AM_RECV_ATTR_FLAG_RNDV flag is set in ucp_am_recv_param_t::recv_attr, it indicates the required receive buffer size for initiating rendezvous protocol.
[in]paramData receive parameters.
+
+
+
Returns
UCS_OK data will not persist after the callback returns. If UCP_AM_RECV_ATTR_FLAG_RNDV flag is set in param->recv_attr and ucp_am_recv_data_nbx was not called for this data, the data descriptor will be dropped and the corresponding ucp_am_send_nbx call will complete with UCS_OK status.
+
+UCS_INPROGRESS Can only be returned if param->recv_attr flags contains UCP_AM_RECV_ATTR_FLAG_DATA or UCP_AM_RECV_ATTR_FLAG_RNDV. The data will persist after the callback has returned. To free the memory, a pointer to the data must be passed into ucp_am_data_release or data receive is initiated by ucp_am_recv_data_nbx.
+
+otherwise Can only be returned if param->recv_attr contains UCP_AM_RECV_ATTR_FLAG_RNDV. In this case data descriptor data will be dropped and the corresponding ucp_am_send_nbx call on the sender side will complete with the status returned from the callback.
+
Note
This callback should be set and released by ucp_worker_set_am_recv_handler function.
+ +
+
+ +

◆ ucp_ep_params_t

+ +
+
+ + + + +
typedef struct ucp_ep_params ucp_ep_params_t
+
+

The structure defines the parameters that are used for the UCP endpoint tuning during the UCP ep creation.

+ +
+
+

Enumeration Type Documentation

+ +

◆ ucp_ep_params_field

+ +
+
+ + + + +
enum ucp_ep_params_field
+
+

The enumeration allows specifying which fields in ucp_ep_params_t are present. It is used to enable backward compatibility support.

+ + + + + + + + + + +
Enumerator
UCP_EP_PARAM_FIELD_REMOTE_ADDRESS 

Address of remote peer

+
UCP_EP_PARAM_FIELD_ERR_HANDLING_MODE 

Error handling mode. ucp_err_handling_mode_t

+
UCP_EP_PARAM_FIELD_ERR_HANDLER 

Handler to process transport level errors

+
UCP_EP_PARAM_FIELD_USER_DATA 

User data pointer

+
UCP_EP_PARAM_FIELD_SOCK_ADDR 

Socket address field

+
UCP_EP_PARAM_FIELD_FLAGS 

Endpoint flags Connection request field

+
UCP_EP_PARAM_FIELD_CONN_REQUEST 
UCP_EP_PARAM_FIELD_NAME 

Endpoint name

+
UCP_EP_PARAM_FIELD_LOCAL_SOCK_ADDR 

Local socket Address

+
+ +
+
+ +

◆ ucp_ep_params_flags_field

+ +
+
+ + + + +
enum ucp_ep_params_flags_field
+
+

The enumeration list describes the endpoint's parameters flags supported by ucp_ep_create() function.

+ + + + +
Enumerator
UCP_EP_PARAMS_FLAGS_CLIENT_SERVER 

Using a client-server connection establishment mechanism. ucs_sock_addr_t sockaddr field must be provided and contain the address of the remote peer

+
UCP_EP_PARAMS_FLAGS_NO_LOOPBACK 

Avoid connecting the endpoint to itself when connecting the endpoint to the same worker it was created on. Affects protocols which send to a particular remote endpoint, for example stream

+
UCP_EP_PARAMS_FLAGS_SEND_CLIENT_ID 

Send client id when connecting to remote socket address as part of the connection request payload. On the remote side value can be obtained from ucp_conn_request_h using ucp_conn_request_query

+
+ +
+
+ +

◆ ucp_ep_close_flags_t

+ +
+
+ + + + +
enum ucp_ep_close_flags_t
+
+

The enumeration is used to specify the behavior of ucp_ep_close_nbx.

+ + +
Enumerator
UCP_EP_CLOSE_FLAG_FORCE 

ucp_ep_close_nbx releases the endpoint without any confirmation from the peer. All outstanding requests will be completed with UCS_ERR_CANCELED error.

Note
This mode may cause transport level errors on remote side, so it requires set UCP_ERR_HANDLING_MODE_PEER for all endpoints created on both (local and remote) sides to avoid undefined behavior. If this flag is not set then ucp_ep_close_nbx schedules flushes on all outstanding operations.
+
+this flag is incompatible with UCP_OP_ATTR_FLAG_NO_IMM_CMPL, since it forces immediate completion.
+
+ +
+
+ +

◆ ucp_ep_perf_param_field

+ +
+
+ + + + +
enum ucp_ep_perf_param_field
+
+

The enumeration allows specifying which fields in ucp_ep_evaluate_perf_param_t are present and operation flags are used. It is used to enable backward compatibility support.

+ + +
Enumerator
UCP_EP_PERF_PARAM_FIELD_MESSAGE_SIZE 

Enables ucp_ep_evaluate_perf_param_t::message_size

+
+ +
+
+ +

◆ ucp_ep_perf_attr_field

+ +
+
+ + + + +
enum ucp_ep_perf_attr_field
+
+

The enumeration allows specifying which fields in ucp_ep_evaluate_perf_attr_t are present and operation flags are used. It is used to enable backward compatibility support.

+ + +
Enumerator
UCP_EP_PERF_ATTR_FIELD_ESTIMATED_TIME 

Enables ucp_ep_evaluate_perf_attr_t::estimated_time

+
+ +
+
+ +

◆ ucp_cb_param_flags

+ +
+
+ + + + +
enum ucp_cb_param_flags
+
+

In a callback, if flags is set to UCP_CB_PARAM_FLAG_DATA in a callback then data was allocated, so if UCS_INPROGRESS is returned from the callback, the data parameter will persist and the user has to call ucp_am_data_release when data is no longer needed.

+ + +
Enumerator
UCP_CB_PARAM_FLAG_DATA 
+ +
+
+ +

◆ ucp_ep_attr_field

+ +
+
+ + + + +
enum ucp_ep_attr_field
+
+

The enumeration allows specifying which fields in ucp_ep_attr_t are present. It is used to enable backward compatibility support.

+ + + + + +
Enumerator
UCP_EP_ATTR_FIELD_NAME 

UCP endpoint name

+
UCP_EP_ATTR_FIELD_LOCAL_SOCKADDR 

Sockaddr used by the endpoint

+
UCP_EP_ATTR_FIELD_REMOTE_SOCKADDR 

Sockaddr the endpoint is connected to

+
UCP_EP_ATTR_FIELD_TRANSPORTS 

Transport and device used by endpoint

+
+ +
+
+ +

◆ ucp_ep_close_mode

+ +
+
+ + + + +
enum ucp_ep_close_mode
+
+
Deprecated
Use ucp_ep_close_nbx and ucp_ep_close_flags_t instead.
+

The enumeration is used to specify the behavior of ucp_ep_close_nb.

+ + + +
Enumerator
UCP_EP_CLOSE_MODE_FORCE 

ucp_ep_close_nb releases the endpoint without any confirmation from the peer. All outstanding requests will be completed with UCS_ERR_CANCELED error.

Note
This mode may cause transport level errors on remote side, so it requires set UCP_ERR_HANDLING_MODE_PEER for all endpoints created on both (local and remote) sides to avoid undefined behavior.
+
UCP_EP_CLOSE_MODE_FLUSH 

ucp_ep_close_nb schedules flushes on all outstanding operations.

+
+ +
+
+ +

◆ ucp_err_handling_mode_t

+ +
+
+ + + + +
enum ucp_err_handling_mode_t
+
+

Specifies error handling mode for the UCP endpoint.

+ + + +
Enumerator
UCP_ERR_HANDLING_MODE_NONE 

No guarantees about error reporting, imposes minimal overhead from a performance perspective.

Note
In this mode, any error reporting will not generate calls to ucp_ep_params_t::err_handler.
+
UCP_ERR_HANDLING_MODE_PEER 

Guarantees that send requests are always completed (successfully or error) even in case of remote failure, disables protocols and APIs which may cause a hang or undefined behavior in case of peer failure, may affect performance and memory footprint

+
+ +
+
+

Function Documentation

+ +

◆ ucp_ep_create()

+ +
+
+ + + + + + + + + + + + + + + + +
ucs_status_t ucp_ep_create (ucp_worker_h worker,
const ucp_ep_params_t * params,
ucp_ep_h * ep_p )
+
+

This routine creates and connects an endpoint on a local worker for a destination address that identifies the remote worker. This function is non-blocking, and communications may begin immediately after it returns. If the connection process is not completed, communications may be delayed. The created endpoint is associated with one and only one worker.

+
Parameters
+ + + + +
[in]workerHandle to the worker; the endpoint is associated with the worker.
[in]paramsUser defined ucp_ep_params_t configurations for the UCP endpoint.
[out]ep_pA handle to the created endpoint.
+
+
+
Returns
Error code as defined by ucs_status_t
+
Note
One of the following fields has to be specified: +
+
+By default, ucp_ep_create() will connect an endpoint to itself if the endpoint is destined to the same worker on which it was created, i.e. params.address belongs to worker. This behavior can be changed by passing the UCP_EP_PARAMS_FLAGS_NO_LOOPBACK flag in params.flags. In that case, the endpoint will be connected to the next endpoint created in the same way on the same worker.
+
Examples
ucp_client_server.c, and ucp_hello_world.c.
+
+ +
+
+ +

◆ ucp_ep_close_nbx()

+ +
+
+ + + + + + + + + + + +
ucs_status_ptr_t ucp_ep_close_nbx (ucp_ep_h ep,
const ucp_request_param_t * param )
+
+
Parameters
+ + + +
[in]epHandle to the endpoint to close.
[in]paramOperation parameters, see ucp_request_param_t. This operation supports specific flags, which can be passed in param by ucp_request_param_t::flags. The exact set of flags is defined by ucp_ep_close_flags_t.
+
+
+
Returns
NULL - The endpoint is closed successfully.
+
+UCS_PTR_IS_ERR(_ptr) - The closure failed and an error code indicates the transport level status. However, resources are released and the endpoint can no longer be used.
+
+otherwise - The closure process is started, and can be completed at any point in time. A request handle is returned to the application in order to track progress of the endpoint closure.
+ +
+
+ +

◆ ucp_ep_print_info()

+ +
+
+ + + + + + + + + + + +
void ucp_ep_print_info (ucp_ep_h ep,
FILE * stream )
+
+

This routine prints information about the endpoint transport methods, their thresholds, and other useful information associated with the endpoint.

+
Parameters
+ + + +
[in]epEndpoint object whose configuration to print.
[in]streamOutput stream to print the information to.
+
+
+ +
+
+ +

◆ ucp_ep_flush_nbx()

+ +
+
+ + + + + + + + + + + +
ucs_status_ptr_t ucp_ep_flush_nbx (ucp_ep_h ep,
const ucp_request_param_t * param )
+
+

This routine flushes all outstanding AMO and RMA communications on the endpoint. All the AMO and RMA operations issued on the ep prior to this call are completed both at the origin and at the target endpoint when this call returns.

+
Parameters
+ + + +
[in]epUCP endpoint.
[in]paramOperation parameters, see ucp_request_param_t.
+
+
+
Returns
NULL - The flush operation was completed immediately.
+
+UCS_PTR_IS_ERR(_ptr) - The flush operation failed.
+
+otherwise - Flush operation was scheduled and can be completed in any point in time. The request handle is returned to the application in order to track progress.
+

The following example demonstrates how blocking flush can be implemented using non-blocking flush:

ucs_status_t blocking_ep_flush(ucp_ep_h ep, ucp_worker_h worker)
+
{
+ +
void *request;
+
+
param.op_attr_mask = 0;
+
request = ucp_ep_flush_nbx(ep, &param);
+
if (request == NULL) {
+
return UCS_OK;
+
} else if (UCS_PTR_IS_ERR(request)) {
+
return UCS_PTR_STATUS(request);
+
} else {
+
ucs_status_t status;
+
do {
+ +
status = ucp_request_check_status(request);
+
} while (status == UCS_INPROGRESS);
+
ucp_request_free(request);
+
return status;
+
}
+
}
+
void ucp_request_free(void *request)
Release a communications request.
+
ucs_status_t ucp_request_check_status(void *request)
Check the status of non-blocking request.
+
uint32_t op_attr_mask
Definition ucp.h:1747
+
Operation parameters passed to ucp_tag_send_nbx, ucp_tag_send_sync_nbx, ucp_tag_recv_nbx,...
Definition ucp.h:1741
+
ucs_status_ptr_t ucp_ep_flush_nbx(ucp_ep_h ep, const ucp_request_param_t *param)
Non-blocking flush of outstanding AMO and RMA operations on the endpoint.
+
unsigned ucp_worker_progress(ucp_worker_h worker)
Progress all communications on a specific worker.
+
struct ucp_worker * ucp_worker_h
UCP Worker.
Definition ucp_def.h:246
+
@ UCS_INPROGRESS
Definition status.h:50
+
Examples
ucp_hello_world.c.
+
+ +
+
+ +

◆ ucp_ep_evaluate_perf()

+ +
+
+ + + + + + + + + + + + + + + + +
ucs_status_t ucp_ep_evaluate_perf (ucp_ep_h ep,
const ucp_ep_evaluate_perf_param_t * param,
ucp_ep_evaluate_perf_attr_t * attr )
+
+

This routine fetches information about the endpoint.

+
Parameters
+ + + + +
[in]epEndpoint to query.
[in]paramFilled by the user with request params.
[out]attrFilled with performance estimation of the given operation on the endpoint.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_ep_query()

+ +
+
+ + + + + + + + + + + +
ucs_status_t ucp_ep_query (ucp_ep_h ep,
ucp_ep_attr_t * attr )
+
+

This routine fetches information about the endpoint.

+
Parameters
+ + + +
[in]epEndpoint object to query.
[out]attrFilled with attributes of the endpoint.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_request_release()

+ +
+
+ + + + + + + +
void ucp_request_release (void * request)
+
+
Deprecated
Replaced by ucp_request_free.
+ +
+
+ +

◆ ucp_ep_destroy()

+ +
+
+ + + + + + + +
void ucp_ep_destroy (ucp_ep_h ep)
+
+
Deprecated
Replaced by ucp_ep_close_nb.
+ +
+
+ +

◆ ucp_disconnect_nb()

+ +
+
+ + + + + + + +
ucs_status_ptr_t ucp_disconnect_nb (ucp_ep_h ep)
+
+
Deprecated
Replaced by ucp_ep_close_nb.
+ +
+
+ +

◆ ucp_request_test()

+ +
+
+ + + + + + + + + + + +
ucs_status_t ucp_request_test (void * request,
ucp_tag_recv_info_t * info )
+
+
Deprecated
Replaced by ucp_tag_recv_request_test and ucp_request_check_status depends on use case.
+
Note
Please use ucp_request_check_status for cases that only need to check the completion status of an outstanding request. ucp_request_check_status can be used for any type of request. ucp_tag_recv_request_test should only be used for requests returned by ucp_tag_recv_nb (or request allocated by user for ucp_tag_recv_nbr) for which additional information (returned via the info pointer) is needed.
+ +
+
+ +

◆ ucp_ep_flush()

+ +
+
+ + + + + + + +
ucs_status_t ucp_ep_flush (ucp_ep_h ep)
+
+
Deprecated
Replaced by ucp_ep_flush_nb.
+ +
+
+ +

◆ ucp_ep_modify_nb()

+ +
+
+ + + + + + + + + + + +
ucs_status_ptr_t ucp_ep_modify_nb (ucp_ep_h ep,
const ucp_ep_params_t * params )
+
+
Deprecated
Use ucp_listener_conn_handler_t instead of ucp_listener_accept_handler_t, if you have other use case please submit an issue on https://github.com/openucx/ucx or report to ucx-g.nosp@m.roup.nosp@m.@elis.nosp@m.t.or.nosp@m.nl.go.nosp@m.v
+

This routine modifies endpoint created by ucp_ep_create or ucp_listener_accept_callback_t. For example, this API can be used to setup custom parameters like ucp_ep_params_t::user_data or ucp_ep_params_t::err_handler to endpoint created by ucp_listener_accept_callback_t.

+
Parameters
+ + + +
[in]epA handle to the endpoint.
[in]paramsUser defined ucp_ep_params_t configurations for the UCP endpoint.
+
+
+
Returns
NULL - The endpoint is modified successfully.
+
+UCS_PTR_IS_ERR(_ptr) - The reconfiguration failed and an error code indicates the status. However, the endpoint is not modified and can be used further.
+
+otherwise - The reconfiguration process is started, and can be completed at any point in time. A request handle is returned to the application in order to track progress of the endpoint modification. The application is responsible for releasing the handle using the ucp_request_free routine.
+
Note
See the documentation of ucp_ep_params_t for details, only some of the parameters can be modified.
+ +
+
+ +

◆ ucp_ep_close_nb()

+ +
+
+ + + + + + + + + + + +
ucs_status_ptr_t ucp_ep_close_nb (ucp_ep_h ep,
unsigned mode )
+
+
Deprecated
Use ucp_ep_close_nbx instead.
+

This routine releases the endpoint. The endpoint closure process depends on the selected mode.

+
Parameters
+ + + +
[in]epHandle to the endpoint to close.
[in]modeOne from ucp_ep_close_mode value.
+
+
+
Returns
UCS_OK - The endpoint is closed successfully.
+
+UCS_PTR_IS_ERR(_ptr) - The closure failed and an error code indicates the transport level status. However, resources are released and the endpoint can no longer be used.
+
+otherwise - The closure process is started, and can be completed at any point in time. A request handle is returned to the application in order to track progress of the endpoint closure. The application is responsible for releasing the handle using the ucp_request_free routine.
+
Note
ucp_ep_close_nb replaces deprecated ucp_disconnect_nb and ucp_ep_destroy
+ +
+
+ +

◆ ucp_ep_flush_nb()

+ +
+
+ + + + + + + + + + + + + + + + +
ucs_status_ptr_t ucp_ep_flush_nb (ucp_ep_h ep,
unsigned flags,
ucp_send_callback_t cb )
+
+
Deprecated
Use ucp_ep_flush_nbx instead.
+

This routine flushes all outstanding AMO and RMA communications on the endpoint. All the AMO and RMA operations issued on the ep prior to this call are completed both at the origin and at the target endpoint when this call returns.

+
Parameters
+ + + + +
[in]epUCP endpoint.
[in]flagsFlags for flush operation. Reserved for future use.
[in]cbCallback which will be called when the flush operation completes.
+
+
+
Returns
NULL - The flush operation was completed immediately.
+
+UCS_PTR_IS_ERR(_ptr) - The flush operation failed.
+
+otherwise - Flush operation was scheduled and can be completed in any point in time. The request handle is returned to the application in order to track progress. The application is responsible for releasing the handle using ucp_request_free() routine.
+ +
+
+
+
+ + + + diff --git a/api/v1.17/html/group___u_c_p___e_n_d_p_o_i_n_t_structucp__ep__attr.js b/api/v1.17/html/group___u_c_p___e_n_d_p_o_i_n_t_structucp__ep__attr.js new file mode 100644 index 00000000000..397c23a05ed --- /dev/null +++ b/api/v1.17/html/group___u_c_p___e_n_d_p_o_i_n_t_structucp__ep__attr.js @@ -0,0 +1,8 @@ +var group___u_c_p___e_n_d_p_o_i_n_t_structucp__ep__attr = +[ + [ "field_mask", "group___u_c_p___e_n_d_p_o_i_n_t.html#a385c4a4337266da2a874e5ff533fbab2", null ], + [ "name", "group___u_c_p___e_n_d_p_o_i_n_t.html#acdaee980b44ce00d608c3b9812049db6", null ], + [ "local_sockaddr", "group___u_c_p___e_n_d_p_o_i_n_t.html#ae54665498f1f7c019e716e7bf9d56531", null ], + [ "remote_sockaddr", "group___u_c_p___e_n_d_p_o_i_n_t.html#a8e0e9e1e5a9295f93073ae3fd3d9a612", null ], + [ "transports", "group___u_c_p___e_n_d_p_o_i_n_t.html#a2104226ca6c263e31b669a148185181b", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___e_n_d_p_o_i_n_t_structucp__ep__evaluate__perf__attr__t.js b/api/v1.17/html/group___u_c_p___e_n_d_p_o_i_n_t_structucp__ep__evaluate__perf__attr__t.js new file mode 100644 index 00000000000..f2208781572 --- /dev/null +++ b/api/v1.17/html/group___u_c_p___e_n_d_p_o_i_n_t_structucp__ep__evaluate__perf__attr__t.js @@ -0,0 +1,5 @@ +var group___u_c_p___e_n_d_p_o_i_n_t_structucp__ep__evaluate__perf__attr__t = +[ + [ "field_mask", "group___u_c_p___e_n_d_p_o_i_n_t.html#a3506b654e12be644d0ffe96368106142", null ], + [ "estimated_time", "group___u_c_p___e_n_d_p_o_i_n_t.html#ac8864d77a5f8d333c2de912ad621626a", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___e_n_d_p_o_i_n_t_structucp__ep__evaluate__perf__param__t.js b/api/v1.17/html/group___u_c_p___e_n_d_p_o_i_n_t_structucp__ep__evaluate__perf__param__t.js new file mode 100644 index 00000000000..07f440d168f --- /dev/null +++ b/api/v1.17/html/group___u_c_p___e_n_d_p_o_i_n_t_structucp__ep__evaluate__perf__param__t.js @@ -0,0 +1,5 @@ +var group___u_c_p___e_n_d_p_o_i_n_t_structucp__ep__evaluate__perf__param__t = +[ + [ "field_mask", "group___u_c_p___e_n_d_p_o_i_n_t.html#afffe0975a57573bd318e72e59bd53957", null ], + [ "message_size", "group___u_c_p___e_n_d_p_o_i_n_t.html#ac6bc2d095c3c631324646cd9ac6a5a0f", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___e_n_d_p_o_i_n_t_structucp__ep__params.js b/api/v1.17/html/group___u_c_p___e_n_d_p_o_i_n_t_structucp__ep__params.js new file mode 100644 index 00000000000..13508417b04 --- /dev/null +++ b/api/v1.17/html/group___u_c_p___e_n_d_p_o_i_n_t_structucp__ep__params.js @@ -0,0 +1,13 @@ +var group___u_c_p___e_n_d_p_o_i_n_t_structucp__ep__params = +[ + [ "field_mask", "group___u_c_p___e_n_d_p_o_i_n_t.html#ab7b3f3ba1d402a621b8ea708dcf2387b", null ], + [ "address", "group___u_c_p___e_n_d_p_o_i_n_t.html#a8cf5c1599022ccdea5a6d1c97ced3627", null ], + [ "err_mode", "group___u_c_p___e_n_d_p_o_i_n_t.html#a50ce29893509695caa5b70ab4525a4d6", null ], + [ "err_handler", "group___u_c_p___e_n_d_p_o_i_n_t.html#aaf329de9e2b45311099cee8c9df43a20", null ], + [ "user_data", "group___u_c_p___e_n_d_p_o_i_n_t.html#adaf49e16ee05400f715f432e442336cb", null ], + [ "flags", "group___u_c_p___e_n_d_p_o_i_n_t.html#a9bb65021187347fe311535857e19e6c3", null ], + [ "sockaddr", "group___u_c_p___e_n_d_p_o_i_n_t.html#aa23fd9a6a092266371258bd285c96816", null ], + [ "conn_request", "group___u_c_p___e_n_d_p_o_i_n_t.html#a9fbba62cd4a470f2bc7c6f7e55fe3db1", null ], + [ "name", "group___u_c_p___e_n_d_p_o_i_n_t.html#a2434487b2597678b8b8c6a6b6fdd11ac", null ], + [ "local_sockaddr", "group___u_c_p___e_n_d_p_o_i_n_t.html#ac7e00eea58053f718b67d92236c7a4b9", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___e_n_d_p_o_i_n_t_structucp__stream__poll__ep.js b/api/v1.17/html/group___u_c_p___e_n_d_p_o_i_n_t_structucp__stream__poll__ep.js new file mode 100644 index 00000000000..f4d66b8a61c --- /dev/null +++ b/api/v1.17/html/group___u_c_p___e_n_d_p_o_i_n_t_structucp__stream__poll__ep.js @@ -0,0 +1,7 @@ +var group___u_c_p___e_n_d_p_o_i_n_t_structucp__stream__poll__ep = +[ + [ "ep", "group___u_c_p___e_n_d_p_o_i_n_t.html#aa9703a325b9dc242facae719f6cef8a7", null ], + [ "user_data", "group___u_c_p___e_n_d_p_o_i_n_t.html#a202ee8e08e637b9e868387ab294a684c", null ], + [ "flags", "group___u_c_p___e_n_d_p_o_i_n_t.html#a1e761ffd7b8edf7399ab497600200266", null ], + [ "reserved", "group___u_c_p___e_n_d_p_o_i_n_t.html#a00c2ee7b309e8c2a45d7e7c83911d707", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___e_n_d_p_o_i_n_t_structucp__transport__entry__t.js b/api/v1.17/html/group___u_c_p___e_n_d_p_o_i_n_t_structucp__transport__entry__t.js new file mode 100644 index 00000000000..6ec6d3a1a06 --- /dev/null +++ b/api/v1.17/html/group___u_c_p___e_n_d_p_o_i_n_t_structucp__transport__entry__t.js @@ -0,0 +1,5 @@ +var group___u_c_p___e_n_d_p_o_i_n_t_structucp__transport__entry__t = +[ + [ "transport_name", "group___u_c_p___e_n_d_p_o_i_n_t.html#a1065b2abc0bf2a05a551059cd1f14ffd", null ], + [ "device_name", "group___u_c_p___e_n_d_p_o_i_n_t.html#a5a1ae736a47936285f9cf51ad61b0821", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___e_n_d_p_o_i_n_t_structucp__transports__t.js b/api/v1.17/html/group___u_c_p___e_n_d_p_o_i_n_t_structucp__transports__t.js new file mode 100644 index 00000000000..f667e283863 --- /dev/null +++ b/api/v1.17/html/group___u_c_p___e_n_d_p_o_i_n_t_structucp__transports__t.js @@ -0,0 +1,6 @@ +var group___u_c_p___e_n_d_p_o_i_n_t_structucp__transports__t = +[ + [ "entries", "group___u_c_p___e_n_d_p_o_i_n_t.html#a4603a2147c2627572889484eeed7a32e", null ], + [ "num_entries", "group___u_c_p___e_n_d_p_o_i_n_t.html#a21eabc3b6df3b0c6964de56ab7784304", null ], + [ "entry_size", "group___u_c_p___e_n_d_p_o_i_n_t.html#a0f09e5a459259f70ee7644f62daa2adc", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___m_e_m.html b/api/v1.17/html/group___u_c_p___m_e_m.html new file mode 100644 index 00000000000..44fdde72f79 --- /dev/null +++ b/api/v1.17/html/group___u_c_p___m_e_m.html @@ -0,0 +1,1355 @@ + + + + + + + +UCX: UCP Memory routines + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + +

+Data Structures

struct  ucp_rkey_compare_params
 Tuning parameters for the comparison function ucp_rkey_compare. More...
 
struct  ucp_mem_map_params
 Tuning parameters for the UCP memory mapping. More...
 
struct  ucp_mem_advise_params
 Tuning parameters for the UCP memory advice. More...
 
struct  ucp_memh_pack_params
 Memory handle pack parameters passed to ucp_memh_pack. More...
 
struct  ucp_memh_buffer_release_params
 Memory handle release parameters passed to ucp_memh_buffer_release. More...
 
struct  ucp_mem_attr
 Attributes of the UCP Memory handle, filled by ucp_mem_query function. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef struct ucp_rkey_compare_params ucp_rkey_compare_params_t
 Tuning parameters for the comparison function ucp_rkey_compare.
 
typedef struct ucp_mem_map_params ucp_mem_map_params_t
 Tuning parameters for the UCP memory mapping.
 
typedef enum ucp_mem_advice ucp_mem_advice_t
 list of UCP memory use advice.
 
typedef struct ucp_mem_advise_params ucp_mem_advise_params_t
 Tuning parameters for the UCP memory advice.
 
typedef struct ucp_memh_pack_params ucp_memh_pack_params_t
 Memory handle pack parameters passed to ucp_memh_pack.
 
typedef struct ucp_memh_buffer_release_params ucp_memh_buffer_release_params_t
 Memory handle release parameters passed to ucp_memh_buffer_release.
 
typedef struct ucp_rkey * ucp_rkey_h
 UCP Remote memory handle.
 
typedef struct ucp_mem * ucp_mem_h
 UCP Memory handle.
 
typedef struct ucp_mem_attr ucp_mem_attr_t
 Attributes of the UCP Memory handle, filled by ucp_mem_query function.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Enumerations

enum  ucp_mem_map_params_field {
+  UCP_MEM_MAP_PARAM_FIELD_ADDRESS = UCS_BIT(0) +, UCP_MEM_MAP_PARAM_FIELD_LENGTH = UCS_BIT(1) +, UCP_MEM_MAP_PARAM_FIELD_FLAGS = UCS_BIT(2) +, UCP_MEM_MAP_PARAM_FIELD_PROT = UCS_BIT(3) +,
+  UCP_MEM_MAP_PARAM_FIELD_MEMORY_TYPE = UCS_BIT(4) +, UCP_MEM_MAP_PARAM_FIELD_EXPORTED_MEMH_BUFFER = UCS_BIT(5) +
+ }
 UCP memory mapping parameters field mask. More...
 
enum  ucp_mem_advise_params_field { UCP_MEM_ADVISE_PARAM_FIELD_ADDRESS = UCS_BIT(0) +, UCP_MEM_ADVISE_PARAM_FIELD_LENGTH = UCS_BIT(1) +, UCP_MEM_ADVISE_PARAM_FIELD_ADVICE = UCS_BIT(2) + }
 UCP memory advice parameters field mask. More...
 
enum  { UCP_MEM_MAP_NONBLOCK = UCS_BIT(0) +, UCP_MEM_MAP_ALLOCATE = UCS_BIT(1) +, UCP_MEM_MAP_FIXED = UCS_BIT(2) +, UCP_MEM_MAP_SYMMETRIC_RKEY = UCS_BIT(3) + }
 UCP memory mapping flags. More...
 
enum  { UCP_MEM_MAP_PROT_LOCAL_READ = UCS_BIT(0) +, UCP_MEM_MAP_PROT_LOCAL_WRITE = UCS_BIT(1) +, UCP_MEM_MAP_PROT_REMOTE_READ = UCS_BIT(8) +, UCP_MEM_MAP_PROT_REMOTE_WRITE = UCS_BIT(9) + }
 UCP memory mapping protection mode. More...
 
enum  ucp_mem_advice { UCP_MADV_NORMAL = 0 +, UCP_MADV_WILLNEED + }
 list of UCP memory use advice. More...
 
enum  ucp_memh_pack_params_field { UCP_MEMH_PACK_PARAM_FIELD_FLAGS = UCS_BIT(0) + }
 UCP memory handle packing parameters field mask. More...
 
enum  ucp_memh_pack_flags { UCP_MEMH_PACK_FLAG_EXPORT = UCS_BIT(0) + }
 UCP memory handle flags. More...
 
enum  ucp_mem_attr_field { UCP_MEM_ATTR_FIELD_ADDRESS = UCS_BIT(0) +, UCP_MEM_ATTR_FIELD_LENGTH = UCS_BIT(1) +, UCP_MEM_ATTR_FIELD_MEM_TYPE = UCS_BIT(2) + }
 UCP Memory handle attributes field mask. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

ucs_status_t ucp_rkey_compare (ucp_worker_h worker, ucp_rkey_h rkey1, ucp_rkey_h rkey2, const ucp_rkey_compare_params_t *params, int *result)
 Compare two remote keys.
 
ucs_status_t ucp_mem_map (ucp_context_h context, const ucp_mem_map_params_t *params, ucp_mem_h *memh_p)
 Map or allocate memory for zero-copy operations.
 
ucs_status_t ucp_mem_unmap (ucp_context_h context, ucp_mem_h memh)
 Unmap memory segment.
 
ucs_status_t ucp_mem_query (const ucp_mem_h memh, ucp_mem_attr_t *attr)
 query mapped memory segment
 
void ucp_mem_print_info (const char *mem_spec, ucp_context_h context, FILE *stream)
 Print memory mapping information.
 
ucs_status_t ucp_mem_advise (ucp_context_h context, ucp_mem_h memh, ucp_mem_advise_params_t *params)
 give advice about the use of memory
 
ucs_status_t ucp_memh_pack (ucp_mem_h memh, const ucp_memh_pack_params_t *params, void **buffer_p, size_t *buffer_size_p)
 Pack a memory handle to a buffer specified by the user.
 
void ucp_memh_buffer_release (void *buffer, const ucp_memh_buffer_release_params_t *params)
 Release packed memory handle buffer.
 
ucs_status_t ucp_ep_rkey_unpack (ucp_ep_h ep, const void *rkey_buffer, ucp_rkey_h *rkey_p)
 Create remote access key from packed buffer.
 
ucs_status_t ucp_rkey_ptr (ucp_rkey_h rkey, uint64_t raddr, void **addr_p)
 Get a local pointer to remote memory.
 
void ucp_rkey_destroy (ucp_rkey_h rkey)
 Destroy the remote key.
 
ucs_status_t ucp_rkey_pack (ucp_context_h context, ucp_mem_h memh, void **rkey_buffer_p, size_t *size_p)
 Pack memory region remote access key.
 
void ucp_rkey_buffer_release (void *rkey_buffer)
 Release packed remote key buffer.
 
+

Detailed Description

+

UCP Memory routines

+

Data Structure Documentation

+ +

◆ ucp_rkey_compare_params

+ +
+
+ + + + +
struct ucp_rkey_compare_params
+
+

The structure defines the parameters that can be used for UCP library remote keys comparison using ucp_rkey_compare routine.

+
+ + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, must currently be zero. Fields not specified in this mask will be ignored. Provides ABI compatibility with respect to adding new fields.

+
+ +
+
+ +

◆ ucp_mem_map_params

+ +
+
+ + + + +
struct ucp_mem_map_params
+
+

The structure defines the parameters that are used for the UCP memory mapping tuning during the ucp_mem_map routine.

+
+ + + + + + + + + + + + + + + + + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from ucp_mem_map_params_field. Fields not specified in this mask will be ignored. Provides ABI compatibility with respect to adding new fields.

+
+void * +address +

If the address is not NULL, the routine maps (registers) the memory segment pointed to by this address. If the pointer is NULL, the library allocates mapped (registered) memory segment and returns its address in this argument. Therefore, this value is optional. If it's not set (along with its corresponding bit in the field_mask - UCP_MEM_MAP_PARAM_FIELD_ADDRESS), the ucp_mem_map routine will consider address as set to NULL and will allocate memory.

+
+size_t +length +

Length (in bytes) to allocate or map (register). This field is mandatory for filling (along with its corresponding bit in the field_mask - UCP_MEM_MAP_PARAM_FIELD_LENGTH). The ucp_mem_map routine will return with an error if the length isn't specified.

+
+unsigned +flags +

Allocation flags, e.g. UCP_MEM_MAP_NONBLOCK. This value is optional. If it's not set (along with its corresponding bit in the field_mask - UCP_MEM_MAP_PARAM_FIELD_FLAGS), the ucp_mem_map routine will consider the flags as set to zero.

+
+unsigned +prot +

Memory protection mode, e.g. UCP_MEM_MAP_PROT_LOCAL_READ. This value is optional. If it's not set, the ucp_mem_map routine will consider the flags as set to UCP_MEM_MAP_PROT_LOCAL_READ|UCP_MEM_MAP_PROT_LOCAL_WRITE| UCP_MEM_MAP_PROT_REMOTE_READ|UCP_MEM_MAP_PROT_REMOTE_WRITE.

+
+ucs_memory_type_t +memory_type +
+const void * +exported_memh_buffer +

Exported memory handle buffer as returned by ucp_mem_map function for a memory handle created and packed by ucp_memh_pack with UCP_MEMH_PACK_FLAG_EXPORT flag. If this field is specified for ucp_mem_map function, a resulting memory handle will be a mapping of peer memory instead of local memory. If the field is not set (along with its corresponding bit in the field_mask - UCP_MEM_MAP_PARAM_FIELD_EXPORTED_MEMH_BUFFER), the ucp_mem_map routine will consider the memory handle buffer to be set to NULL by default.

+
+ +
+
+ +

◆ ucp_mem_advise_params

+ +
+
+ + + + +
struct ucp_mem_advise_params
+
+

This structure defines the parameters that are used for the UCP memory advice tuning during the ucp_mem_advise routine.

+
+ + + + + + + + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from ucp_mem_advise_params_field. All fields are mandatory. Provides ABI compatibility with respect to adding new fields.

+
+void * +address +

Memory base address.

+
+size_t +length +

Length (in bytes) to allocate or map (register).

+
+ucp_mem_advice_t +advice +

Memory use advice ucp_mem_advice

+
+ +
+
+ +

◆ ucp_memh_pack_params

+ +
+
+ + + + +
struct ucp_memh_pack_params
+
+

This structure defines the parameters that are used for packing the UCP memory handle during the ucp_memh_pack routine.

+
+ + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure. Fields not specified in this mask will be ignored. Provides ABI compatibility with respect to adding new fields.

+
+uint64_t +flags +

Flags to control packing of a memory handle.

+
+ +
+
+ +

◆ ucp_memh_buffer_release_params

+ +
+
+ + + + +
struct ucp_memh_buffer_release_params
+
+

This structure defines the parameters that are used for releasing the UCP memory handle buffer during the ucp_memh_buffer_release routine.

+
+ + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure. All fields are mandatory. Provides ABI compatibility with respect to adding new fields.

+
+ +
+
+ +

◆ ucp_mem_attr

+ +
+
+ + + + +
struct ucp_mem_attr
+
+
+ + + + + + + + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from ucp_mem_attr_field. Fields not specified in this mask will be ignored. Provides ABI compatibility with respect to adding new fields.

+
+void * +address +

Address of the memory segment.

+
+size_t +length +

Size of the memory segment.

+
+ucs_memory_type_t +mem_type +

Type of allocated or registered memory

+
+ +
+
+

Typedef Documentation

+ +

◆ ucp_rkey_compare_params_t

+ +
+
+

The structure defines the parameters that can be used for UCP library remote keys comparison using ucp_rkey_compare routine.

+ +
+
+ +

◆ ucp_mem_map_params_t

+ +
+
+ + + + +
typedef struct ucp_mem_map_params ucp_mem_map_params_t
+
+

The structure defines the parameters that are used for the UCP memory mapping tuning during the ucp_mem_map routine.

+ +
+
+ +

◆ ucp_mem_advice_t

+ +
+
+ + + + +
typedef enum ucp_mem_advice ucp_mem_advice_t
+
+

The enumeration list describes memory advice supported by ucp_mem_advise() function.

+ +
+
+ +

◆ ucp_mem_advise_params_t

+ +
+
+

This structure defines the parameters that are used for the UCP memory advice tuning during the ucp_mem_advise routine.

+ +
+
+ +

◆ ucp_memh_pack_params_t

+ +
+
+ + + + +
typedef struct ucp_memh_pack_params ucp_memh_pack_params_t
+
+

This structure defines the parameters that are used for packing the UCP memory handle during the ucp_memh_pack routine.

+ +
+
+ +

◆ ucp_memh_buffer_release_params_t

+ +
+
+

This structure defines the parameters that are used for releasing the UCP memory handle buffer during the ucp_memh_buffer_release routine.

+ +
+
+ +

◆ ucp_rkey_h

+ +
+
+ + + + +
typedef struct ucp_rkey* ucp_rkey_h
+
+

Remote memory handle is an opaque object representing remote memory access information. Typically, the handle includes a memory access key and other network hardware specific information, which are input to remote memory access operations, such as PUT, GET, and ATOMIC. The object is communicated to remote peers to enable an access to the memory region.

+ +
+
+ +

◆ ucp_mem_h

+ +
+
+ + + + +
typedef struct ucp_mem* ucp_mem_h
+
+

Memory handle is an opaque object representing a memory region allocated through UCP library, which is optimized for remote memory access operations (zero-copy operations). The memory handle is a self-contained object, which includes the information required to access the memory region locally, while remote key is used to access it remotely. The memory could be registered to one or multiple network resources that are supported by UCP, such as InfiniBand, Gemini, and others.

+ +
+
+ +

◆ ucp_mem_attr_t

+ +
+
+ + + + +
typedef struct ucp_mem_attr ucp_mem_attr_t
+
+ +
+
+

Enumeration Type Documentation

+ +

◆ ucp_mem_map_params_field

+ +
+
+ + + + +
enum ucp_mem_map_params_field
+
+

The enumeration allows specifying which fields in ucp_mem_map_params_t are present. It is used to enable backward compatibility support.

+ + + + + + + +
Enumerator
UCP_MEM_MAP_PARAM_FIELD_ADDRESS 

Address of the memory that will be used in the ucp_mem_map routine.

+
UCP_MEM_MAP_PARAM_FIELD_LENGTH 

The size of memory that will be allocated or registered in the ucp_mem_map routine.

+
UCP_MEM_MAP_PARAM_FIELD_FLAGS 

Allocation flags.

+
UCP_MEM_MAP_PARAM_FIELD_PROT 

Memory protection mode.

+
UCP_MEM_MAP_PARAM_FIELD_MEMORY_TYPE 

Memory type.

+
UCP_MEM_MAP_PARAM_FIELD_EXPORTED_MEMH_BUFFER 

Exported memory handle buffer.

+
+ +
+
+ +

◆ ucp_mem_advise_params_field

+ +
+
+ + + + +
enum ucp_mem_advise_params_field
+
+

The enumeration allows specifying which fields in ucp_mem_advise_params_t are present. It is used to enable backward compatibility support.

+ + + + +
Enumerator
UCP_MEM_ADVISE_PARAM_FIELD_ADDRESS 

Address of the memory

+
UCP_MEM_ADVISE_PARAM_FIELD_LENGTH 

The size of memory

+
UCP_MEM_ADVISE_PARAM_FIELD_ADVICE 

Advice on memory usage

+
+ +
+
+ +

◆ anonymous enum

+ +
+
+ + + + +
anonymous enum
+
+

The enumeration list describes the memory mapping flags supported by ucp_mem_map() function.

+ + + + + +
Enumerator
UCP_MEM_MAP_NONBLOCK 

Complete the mapping faster, possibly by not populating the pages in the mapping up-front, and mapping them later when they are accessed by communication routines.

+
UCP_MEM_MAP_ALLOCATE 

Identify requirement for allocation, if passed address is not a null-pointer, then it will be used as a hint or direct address for allocation.

+
UCP_MEM_MAP_FIXED 

Don't interpret address as a hint: place the mapping at exactly that address. The address must be a multiple of the page size.

+
UCP_MEM_MAP_SYMMETRIC_RKEY 

Register the memory region so its remote access key would likely be equal to remote access keys received from other peers, when compared with ucp_rkey_compare. This flag is a hint. When remote access keys received from different peers are compared equal, they can be used interchangeably, avoiding the need to keep all of them in memory.

+
+ +
+
+ +

◆ anonymous enum

+ +
+
+ + + + +
anonymous enum
+
+

The enumeration list describes the memory mapping protections supported by the ucp_mem_map() function.

+ + + + + +
Enumerator
UCP_MEM_MAP_PROT_LOCAL_READ 

Enable local read access.

+
UCP_MEM_MAP_PROT_LOCAL_WRITE 

Enable local write access.

+
UCP_MEM_MAP_PROT_REMOTE_READ 

Enable remote read access.

+
UCP_MEM_MAP_PROT_REMOTE_WRITE 

Enable remote write access.

+
+ +
+
+ +

◆ ucp_mem_advice

+ +
+
+ + + + +
enum ucp_mem_advice
+
+

The enumeration list describes memory advice supported by ucp_mem_advise() function.

+ + + +
Enumerator
UCP_MADV_NORMAL 

No special treatment

+
UCP_MADV_WILLNEED 

can be used on the memory mapped with UCP_MEM_MAP_NONBLOCK to speed up memory mapping and to avoid page faults when the memory is accessed for the first time.

+
+ +
+
+ +

◆ ucp_memh_pack_params_field

+ +
+
+ + + + +
enum ucp_memh_pack_params_field
+
+

The enumeration allows specifying which fields in ucp_memh_pack_params_t are present. It is used to enable backward compatibility support.

+ + +
Enumerator
UCP_MEMH_PACK_PARAM_FIELD_FLAGS 

Memory handle packing field that will be used in the ucp_memh_pack routine.

+
+ +
+
+ +

◆ ucp_memh_pack_flags

+ +
+
+ + + + +
enum ucp_memh_pack_flags
+
+

The enumeration list describes the memory handle packing flags supported by ucp_memh_pack() function.

+ + +
Enumerator
UCP_MEMH_PACK_FLAG_EXPORT 

Pack a memory handle to be exported and used by peers for their local operations on a memory buffer allocated from same or another virtual memory space, but physically registered on the same network device. A peer should call ucp_mem_map with the flag UCP_MEM_MAP_PARAM_FIELD_EXPORTED_MEMH_BUFFER in order to import and use a memory handle buffer obtained from ucp_memh_pack.

+
+ +
+
+ +

◆ ucp_mem_attr_field

+ +
+
+ + + + +
enum ucp_mem_attr_field
+
+

The enumeration allows specifying which fields in ucp_mem_attr_t are present. It is used to enable backward compatibility support.

+ + + + +
Enumerator
UCP_MEM_ATTR_FIELD_ADDRESS 

Virtual address

+
UCP_MEM_ATTR_FIELD_LENGTH 

The size of memory region

+
UCP_MEM_ATTR_FIELD_MEM_TYPE 

Type of allocated or registered memory

+
+ +
+
+

Function Documentation

+ +

◆ ucp_rkey_compare()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t ucp_rkey_compare (ucp_worker_h worker,
ucp_rkey_h rkey1,
ucp_rkey_h rkey2,
const ucp_rkey_compare_params_t * params,
int * result )
+
+

This routine compares two remote keys. They must belong to the same worker.

+

It sets the result argument to < 0 if rkey1 is lower than rkey2, 0 if they are equal or > 0 if rkey1 is greater than rkey2. The result value can be used for sorting remote keys.

+
Parameters
+ + + + + + +
[in]workerWorker object both rkeys are referring to
[in]rkey1First rkey to compare
[in]rkey2Second rkey to compare
[in]paramsAdditional parameters to the comparison
[out]resultResult of the comparison
+
+
+
Returns
UCS_OK - result contains the comparison result
+
+UCS_ERR_INVALID_PARAM - The routine arguments are invalid
+
+Other - Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_mem_map()

+ +
+
+ + + + + + + + + + + + + + + + +
ucs_status_t ucp_mem_map (ucp_context_h context,
const ucp_mem_map_params_t * params,
ucp_mem_h * memh_p )
+
+

This routine maps or/and allocates a user-specified memory segment with UCP application context and the network resources associated with it. If the application specifies NULL as an address for the memory segment, the routine allocates a mapped memory segment and returns its address in the address_p argument. The network stack associated with an application context can typically send and receive data from the mapped memory without CPU intervention; some devices and associated network stacks require the memory to be mapped to send and receive data. The memory handle includes all information required to access the memory locally using UCP routines, while remote registration handle provides an information that is necessary for remote memory access.

+
Note
Another well know terminology for the "map" operation that is typically used in the context of networking is memory "registration" or "pinning". The UCP library registers the memory the available hardware so it can be assessed directly by the hardware.
+

Memory mapping assumptions:

    +
  • A given memory segment can be mapped by several different communication stacks, if these are compatible.
  • +
  • The memh_p handle returned may be used with any sub-region of the mapped memory.
  • +
  • If a large segment is registered, and then segmented for subsequent use by a user, then the user is responsible for segmentation and subsequent management.
  • +
+ + + + + + + + + + + + + + + + + + + + +
Matrix of behavior
parameter/flag NONBLOCK ALLOCATE FIXED address result
value 0/1 - the value
+ only affects the
+ register/map
+ phase
0 0 0 error if length > 0
1 0 0 alloc+register
0 1 0 error
0 0 defined register
1 1 0 error
1 0 defined alloc+register,hint
0 1 defined error
1 1 defined alloc+register,fixed
+
Note
    +
  • register means that the memory will be registered in corresponding transports for RMA/AMO operations. This case intends that the memory was allocated by user before.
  • +
  • alloc+register means that the memory will be allocated in the memory provided by the system and registered in corresponding transports for RMA/AMO operations.
  • +
  • alloc+register,hint means that the memory will be allocated with using ucp_mem_map_params::address as a hint and registered in corresponding transports for RMA/AMO operations.
  • +
  • alloc+register,fixed means that the memory will be allocated and registered in corresponding transports for RMA/AMO operations.
  • +
  • error is an erroneous combination of the parameters.
  • +
+
+
Parameters
+ + + + +
[in]contextApplication context to map (register) and allocate the memory on.
[in]paramsUser defined ucp_mem_map_params_t configurations for the UCP memory handle.
[out]memh_pUCP handle for the allocated segment.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_mem_unmap()

+ +
+
+ + + + + + + + + + + +
ucs_status_t ucp_mem_unmap (ucp_context_h context,
ucp_mem_h memh )
+
+

This routine unmaps a user specified memory segment, that was previously mapped using the ucp_mem_map() routine. The unmap routine will also release the resources associated with the memory handle. When the function returns, the ucp_mem_h and associated remote key will be invalid and cannot be used with any UCP routine.

+
Note
Another well know terminology for the "unmap" operation that is typically used in the context of networking is memory "de-registration". The UCP library de-registers the memory the available hardware so it can be returned back to the operation system.
+

Error cases:

    +
  • Once memory is unmapped a network access to the region may cause a failure.
  • +
+
Parameters
+ + + +
[in]contextApplication context which was used to allocate/map the memory.
[in]memhHandle to memory region.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_mem_query()

+ +
+
+ + + + + + + + + + + +
ucs_status_t ucp_mem_query (const ucp_mem_h memh,
ucp_mem_attr_t * attr )
+
+

This routine returns address and length of memory segment mapped with ucp_mem_map() routine.

+
Parameters
+ + + +
[in]memhHandle to memory region.
[out]attrFilled with attributes of the UCP memory handle.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_mem_print_info()

+ +
+
+ + + + + + + + + + + + + + + + +
void ucp_mem_print_info (const char * mem_spec,
ucp_context_h context,
FILE * stream )
+
+

This routine maps memory and prints information about the created memory handle: including the mapped memory length, the allocation method, and other useful information associated with the memory handle.

+
Parameters
+ + + + +
[in]mem_specSize and optional type of the memory to map. The format of the string is: "<size>[,<type>]". For example:
    +
  • "32768" : allocate 32 kilobytes of host memory.
  • +
  • "1m,cuda" : allocate 1 megabayte of cuda memory.
  • +
+
[in]contextThe context on which the memory is mapped.
[in]streamOutput stream on which to print the information.
+
+
+ +
+
+ +

◆ ucp_mem_advise()

+ +
+
+ + + + + + + + + + + + + + + + +
ucs_status_t ucp_mem_advise (ucp_context_h context,
ucp_mem_h memh,
ucp_mem_advise_params_t * params )
+
+

This routine advises the UCP about how to handle memory range beginning at address and size of length bytes. This call does not influence the semantics of the application, but may influence its performance. The UCP may ignore the advice.

+
Parameters
+ + + + +
[in]contextApplication context which was used to allocate/map the memory.
[in]memhHandle to memory region.
[in]paramsMemory base address and length. The advice field is used to pass memory use advice as defined in the ucp_mem_advice list The memory range must belong to the memh
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_memh_pack()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
ucs_status_t ucp_memh_pack (ucp_mem_h memh,
const ucp_memh_pack_params_t * params,
void ** buffer_p,
size_t * buffer_size_p )
+
+

This routine allocates a memory buffer and packs a memory handle into the buffer. A packed memory key is an opaque object that provides the information that is necessary for a peer. This routine packs the memory handle in a portable format such that the object can be unpacked on any platform supported by the UCP library, e.g. if the memory handle was packed as a remote memory key (RKEY), it should be unpacked by ucp_ep_rkey_unpack(). In order to release the memory buffer allocated by this routine, the application is responsible for calling the ucp_memh_buffer_release() routine.

+
Note
    +
  • RKEYs for InfiniBand and Cray Aries networks typically includes InfiniBand and Aries key.
  • +
  • In order to enable remote direct memory access to the memory associated with the memory handle the application is responsible for sharing the RKEY with the peers that will initiate the access.
  • +
+
+
Parameters
+ + + + + +
[in]memhHandle to memory region.
[in]paramsMemory handle packing parameters, as defined by ucp_memh_pack_params_t.
[out]buffer_pMemory buffer allocated by the library. The buffer contains the packed memory handle.
[out]buffer_size_pSize (in bytes) of the buffer which contains packed memory handle.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_memh_buffer_release()

+ +
+
+ + + + + + + + + + + +
void ucp_memh_buffer_release (void * buffer,
const ucp_memh_buffer_release_params_t * params )
+
+

This routine releases the buffer that was allocated using ucp_memh_pack().

+
Warning
    +
  • Once memory is released, an access to the memory may cause undefined behavior.
  • +
  • If the input memory address was not allocated using ucp_memh_pack() routine, the behavior of this routine is undefined.
  • +
+
+
Parameters
+ + + +
[in]bufferBuffer to release.
[in]paramsMemory handle buffer release parameters, as defined by ucp_memh_buffer_release_params_t.
+
+
+ +
+
+ +

◆ ucp_ep_rkey_unpack()

+ +
+
+ + + + + + + + + + + + + + + + +
ucs_status_t ucp_ep_rkey_unpack (ucp_ep_h ep,
const void * rkey_buffer,
ucp_rkey_h * rkey_p )
+
+

This routine unpacks the remote key (RKEY) object into the local memory such that it can be accessed and used by UCP routines. The RKEY object has to be packed using the ucp_rkey_pack() routine. Application code should not make any changes to the content of the RKEY buffer.

+
Note
The application is responsible for releasing the RKEY object when it is no longer needed, by calling the ucp_rkey_destroy() routine.
+
+The remote key object can be used for communications only on the endpoint on which it was unpacked.
+
Parameters
+ + + + +
[in]epEndpoint to access using the remote key.
[in]rkey_bufferPacked rkey.
[out]rkey_pRemote key handle.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_rkey_ptr()

+ +
+
+ + + + + + + + + + + + + + + + +
ucs_status_t ucp_rkey_ptr (ucp_rkey_h rkey,
uint64_t raddr,
void ** addr_p )
+
+

This routine returns a local pointer to the remote memory described by the rkey.

+
Note
This routine can return a valid pointer only for the endpoints that are reachable via shared memory.
+
Parameters
+ + + + +
[in]rkeyA remote key handle.
[in]raddrA remote memory address within the memory area described by the rkey.
[out]addr_pA pointer that can be used for direct access to the remote memory.
+
+
+
Returns
Error code as defined by ucs_status_t if the remote memory cannot be accessed directly or the remote memory address is not valid.
+ +
+
+ +

◆ ucp_rkey_destroy()

+ +
+
+ + + + + + + +
void ucp_rkey_destroy (ucp_rkey_h rkey)
+
+

This routine destroys the RKEY object and the memory that was allocated using the ucp_ep_rkey_unpack() routine. This routine also releases any resources that are associated with the RKEY object.

+
Warning
    +
  • Once the RKEY object is released an access to the memory will cause an undefined failure.
  • +
  • If the RKEY object was not created using ucp_ep_rkey_unpack() routine the behavior of this routine is undefined.
  • +
  • The RKEY object must be destroyed after all outstanding operations which are using it are flushed, and before the endpoint on which it was unpacked is destroyed.
  • +
+
+
Parameters
+ + +
[in]rkeyRemote key to destroy.
+
+
+ +
+
+ +

◆ ucp_rkey_pack()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
ucs_status_t ucp_rkey_pack (ucp_context_h context,
ucp_mem_h memh,
void ** rkey_buffer_p,
size_t * size_p )
+
+
Deprecated
Replaced by ucp_memh_pack().
+

This routine allocates a memory buffer and packs a remote access key (RKEY) object into it. RKEY is an opaque object that provides the information that is necessary for remote memory access. This routine packs the RKEY object in a portable format such that the object can be unpacked on any platform supported by the UCP library. In order to release the memory buffer allocated by this routine, the application is responsible for calling the ucp_rkey_buffer_release() routine.

+
Note
    +
  • RKEYs for InfiniBand and Cray Aries networks typically include the InfiniBand and Aries key.
  • +
  • In order to enable remote direct memory access to the memory associated with the memory handle, the application is responsible for sharing the RKEY with the peers that will initiate the access.
  • +
+
+
Parameters
+ + + + + +
[in]contextApplication context which was used to allocate/map the memory.
[in]memhHandle to the memory region.
[out]rkey_buffer_pMemory buffer allocated by the library. The buffer contains the packed RKEY.
[out]size_pSize (in bytes) of the packed RKEY.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_rkey_buffer_release()

+ +
+
+ + + + + + + +
void ucp_rkey_buffer_release (void * rkey_buffer)
+
+
Deprecated
Replaced by ucp_memh_buffer_release().
+

This routine releases the buffer that was allocated using ucp_rkey_pack().

+
Warning
    +
  • Once memory is released, an access to the memory may cause undefined behavior.
  • +
  • If the input memory address was not allocated using ucp_rkey_pack() routine, the behavior of this routine is undefined.
  • +
+
+
Parameters
+ + +
[in]rkey_bufferBuffer to release.
+
+
+ +
+
+
+
+ + + + diff --git a/api/v1.17/html/group___u_c_p___m_e_m_structucp__mem__advise__params.js b/api/v1.17/html/group___u_c_p___m_e_m_structucp__mem__advise__params.js new file mode 100644 index 00000000000..89afa1c6462 --- /dev/null +++ b/api/v1.17/html/group___u_c_p___m_e_m_structucp__mem__advise__params.js @@ -0,0 +1,7 @@ +var group___u_c_p___m_e_m_structucp__mem__advise__params = +[ + [ "field_mask", "group___u_c_p___m_e_m.html#a01c09d6fdafcd62e733cece26166e036", null ], + [ "address", "group___u_c_p___m_e_m.html#ab25f1b439c184a0bfb93eda0c9ceb9f7", null ], + [ "length", "group___u_c_p___m_e_m.html#a33e763e90d0cc7aad526a69dee8ef900", null ], + [ "advice", "group___u_c_p___m_e_m.html#a26833bd101fcb6b4c1024b2975aed5dc", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___m_e_m_structucp__mem__attr.js b/api/v1.17/html/group___u_c_p___m_e_m_structucp__mem__attr.js new file mode 100644 index 00000000000..597f368ff1a --- /dev/null +++ b/api/v1.17/html/group___u_c_p___m_e_m_structucp__mem__attr.js @@ -0,0 +1,7 @@ +var group___u_c_p___m_e_m_structucp__mem__attr = +[ + [ "field_mask", "group___u_c_p___m_e_m.html#ac2b9b68d716c78b3750f50f599259e66", null ], + [ "address", "group___u_c_p___m_e_m.html#ab9a2b772838f436158ae4e25d8bb21e4", null ], + [ "length", "group___u_c_p___m_e_m.html#ae807002e05a4a269a74c767e23f49fa8", null ], + [ "mem_type", "group___u_c_p___m_e_m.html#ac88b3fb764dd2af1a77bbe90161b2896", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___m_e_m_structucp__mem__map__params.js b/api/v1.17/html/group___u_c_p___m_e_m_structucp__mem__map__params.js new file mode 100644 index 00000000000..a27f6a1c9e5 --- /dev/null +++ b/api/v1.17/html/group___u_c_p___m_e_m_structucp__mem__map__params.js @@ -0,0 +1,10 @@ +var group___u_c_p___m_e_m_structucp__mem__map__params = +[ + [ "field_mask", "group___u_c_p___m_e_m.html#aaeaeceb96d57c6cd5048abeda3fcb87f", null ], + [ "address", "group___u_c_p___m_e_m.html#acc3761c4bbcca9c1defa742a8db08bbb", null ], + [ "length", "group___u_c_p___m_e_m.html#a36d735fe974dd85677474c028edb2af8", null ], + [ "flags", "group___u_c_p___m_e_m.html#a668567560d65f2e0458159d444fb89ca", null ], + [ "prot", "group___u_c_p___m_e_m.html#af8bb06187e2c1f180a24d867a4922b2e", null ], + [ "memory_type", "group___u_c_p___m_e_m.html#a71916e12e0fa7706355965de2edd7fc9", null ], + [ "exported_memh_buffer", "group___u_c_p___m_e_m.html#af4b12bd23e90295c7503e6dc19063a6b", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___m_e_m_structucp__memh__buffer__release__params.js b/api/v1.17/html/group___u_c_p___m_e_m_structucp__memh__buffer__release__params.js new file mode 100644 index 00000000000..1644ec1bb6b --- /dev/null +++ b/api/v1.17/html/group___u_c_p___m_e_m_structucp__memh__buffer__release__params.js @@ -0,0 +1,4 @@ +var group___u_c_p___m_e_m_structucp__memh__buffer__release__params = +[ + [ "field_mask", "group___u_c_p___m_e_m.html#a29dab951ef791f596be6a08e7fc88cb6", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___m_e_m_structucp__memh__pack__params.js b/api/v1.17/html/group___u_c_p___m_e_m_structucp__memh__pack__params.js new file mode 100644 index 00000000000..26c51a92556 --- /dev/null +++ b/api/v1.17/html/group___u_c_p___m_e_m_structucp__memh__pack__params.js @@ -0,0 +1,5 @@ +var group___u_c_p___m_e_m_structucp__memh__pack__params = +[ + [ "field_mask", "group___u_c_p___m_e_m.html#aafd1c1f51c5170b30695d9f73aad1f99", null ], + [ "flags", "group___u_c_p___m_e_m.html#a3e9ba8e33dd1daf74e341dee2abacff7", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___m_e_m_structucp__rkey__compare__params.js b/api/v1.17/html/group___u_c_p___m_e_m_structucp__rkey__compare__params.js new file mode 100644 index 00000000000..c24f6d2dcc8 --- /dev/null +++ b/api/v1.17/html/group___u_c_p___m_e_m_structucp__rkey__compare__params.js @@ -0,0 +1,4 @@ +var group___u_c_p___m_e_m_structucp__rkey__compare__params = +[ + [ "field_mask", "group___u_c_p___m_e_m.html#a812a817d17b02abaa6518d12d07bbba5", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___w_a_k_e_u_p.html b/api/v1.17/html/group___u_c_p___w_a_k_e_u_p.html new file mode 100644 index 00000000000..a972d33e255 --- /dev/null +++ b/api/v1.17/html/group___u_c_p___w_a_k_e_u_p.html @@ -0,0 +1,326 @@ + + + + + + + +UCX: UCP Wake-up routines + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + +

+Functions

ucs_status_t ucp_worker_get_efd (ucp_worker_h worker, int *fd)
 Obtain an event file descriptor for event notification.
 
ucs_status_t ucp_worker_wait (ucp_worker_h worker)
 Wait for an event of the worker.
 
void ucp_worker_wait_mem (ucp_worker_h worker, void *address)
 Wait for memory update on the address.
 
ucs_status_t ucp_worker_arm (ucp_worker_h worker)
 Turn on event notification for the next event.
 
ucs_status_t ucp_worker_signal (ucp_worker_h worker)
 Cause an event of the worker.
 
+

Detailed Description

+

UCP Wake-up routines

+

Function Documentation

+ +

◆ ucp_worker_get_efd()

+ +
+
+ + + + + + + + + + + +
ucs_status_t ucp_worker_get_efd (ucp_worker_h worker,
int * fd )
+
+

This routine returns a valid file descriptor for polling functions. The file descriptor will get signaled when an event occurs, as part of the wake-up mechanism. Signaling means a call to poll() or select() with this file descriptor will return at this point, with this descriptor marked as the reason (or one of the reasons) the function has returned. The user does not need to release the obtained file descriptor.

+

The wake-up mechanism exists to allow for the user process to register for notifications on events of the underlying interfaces, and wait until such occur. This is an alternative to repeated polling for request completion. The goal is to allow for waiting while consuming minimal resources from the system. This is recommended for cases where traffic is infrequent, and latency can be traded for lower resource consumption while waiting for it.

+

There are two alternative ways to use the wakeup mechanism: the first is the file descriptor obtained per worker (this function) and the second is the ucp_worker_wait function for waiting on the next event internally.

+
Note
UCP features have to be triggered with UCP_FEATURE_WAKEUP to select proper transport
+
Parameters
+ + + +
[in]workerWorker of notified events.
[out]fdFile descriptor.
+
+
+
Returns
Error code as defined by ucs_status_t
+
Examples
ucp_hello_world.c.
+
+ +
+
+ +

◆ ucp_worker_wait()

+ +
+
+ + + + + + + +
ucs_status_t ucp_worker_wait (ucp_worker_h worker)
+
+

This routine waits (blocking) until an event has happened, as part of the wake-up mechanism.

+

This function is guaranteed to return only if new communication events occur on the worker. Therefore one must drain all existing events before waiting on the file descriptor. This can be achieved by calling ucp_worker_progress repeatedly until it returns 0.

+

There are two alternative ways to use the wakeup mechanism. The first is by polling on a per-worker file descriptor obtained from ucp_worker_get_efd. The second is by using this function to perform an internal wait for the next event associated with the specified worker.

+
Note
During the blocking call the wake-up mechanism relies on other means of notification and may not progress some of the requests as it would when calling ucp_worker_progress (which is not invoked in that duration).
+
+UCP features have to be triggered with UCP_FEATURE_WAKEUP to select proper transport
+
Parameters
+ + +
[in]workerWorker to wait for events on.
+
+
+
Returns
Error code as defined by ucs_status_t
+
Examples
ucp_hello_world.c.
+
+ +
+
+ +

◆ ucp_worker_wait_mem()

+ +
+
+ + + + + + + + + + + +
void ucp_worker_wait_mem (ucp_worker_h worker,
void * address )
+
+

This routine waits for a memory update at the local memory address. This is a blocking routine. The routine returns when the memory address is updated ("write") or an event occurs in the system.

+

This function is guaranteed to return only if new communication events occur on the worker or address is modified. Therefore one must drain all existing events before waiting on the file descriptor. This can be achieved by calling ucp_worker_progress repeatedly until it returns 0.

+
Note
This routine can be used by an application that executes busy-waiting loop checking for a memory update. Instead of continuous busy-waiting on an address the application can use ucp_worker_wait_mem, which may suspend execution until the memory is updated. The goal of the routine is to provide an opportunity for energy savings for architectures that support this functionality.
+
Parameters
+ + + +
[in]workerWorker to wait for updates on.
[in]addressLocal memory address
+
+
+ +
+
+ +

◆ ucp_worker_arm()

+ +
+
+ + + + + + + +
ucs_status_t ucp_worker_arm (ucp_worker_h worker)
+
+

This routine needs to be called before waiting on each notification on this worker, so will typically be called once the processing of the previous event is over, as part of the wake-up mechanism.

+

The worker must be armed before waiting on an event (must be re-armed after it has been signaled for re-use) with ucp_worker_arm. The events triggering a signal of the file descriptor from ucp_worker_get_efd depend on the interfaces used by the worker and defined in the transport layer, and typically represent a request completion or newly available resources. It can also be triggered by calling ucp_worker_signal .

+

The file descriptor is guaranteed to become signaled only if new communication events occur on the worker. Therefore one must drain all existing events before waiting on the file descriptor. This can be achieved by calling ucp_worker_progress repeatedly until it returns 0.

+
void application_initialization() {
+
// should be called once in application init flow and before
+
// process_communication() is used
+
...
+
status = ucp_worker_get_efd(worker, &fd);
+
...
+
}
+
+
void process_communication() {
+
// should be called every time need to wait for some condition such as
+
// ucp request completion in sleep mode.
+
+
for (;;) {
+
// check for stop condition as long as progress is made
+
if (check_for_events()) {
+
break;
+
} else if (ucp_worker_progress(worker)) {
+
continue; // some progress happened but condition not met
+
}
+
+
// arm the worker and clean-up fd
+
status = ucp_worker_arm(worker);
+
if (UCS_OK == status) {
+
poll(&fds, nfds, timeout); // wait for events (sleep mode)
+
} else if (UCS_ERR_BUSY == status) {
+
continue; // could not arm, need to progress more
+
} else {
+
abort();
+
}
+
}
+
}
+
ucs_status_t ucp_worker_arm(ucp_worker_h worker)
Turn on event notification for the next event.
+
ucs_status_t ucp_worker_get_efd(ucp_worker_h worker, int *fd)
Obtain an event file descriptor for event notification.
+
unsigned ucp_worker_progress(ucp_worker_h worker)
Progress all communications on a specific worker.
+
@ UCS_OK
Definition status.h:47
+
@ UCS_ERR_BUSY
Definition status.h:67
+
Note
UCP features have to be triggered with UCP_FEATURE_WAKEUP to select proper transport
+
Parameters
+ + +
[in]workerWorker of notified events.
+
+
+
Returns
UCS_OK The operation completed successfully. File descriptor will be signaled by new events.
+
+UCS_ERR_BUSY There are unprocessed events which prevent the file descriptor from being armed. These events should be removed by calling ucp_worker_progress(). The operation is not completed. File descriptor will not be signaled by new events.
+
+Other different error codes in case of issues.
+
Examples
ucp_hello_world.c.
+
+ +
+
+ +

◆ ucp_worker_signal()

+ +
+
+ + + + + + + +
ucs_status_t ucp_worker_signal (ucp_worker_h worker)
+
+

This routine signals that the event has happened, as part of the wake-up mechanism. This function causes a blocking call to ucp_worker_wait or waiting on a file descriptor from ucp_worker_get_efd to return, even if no event from the underlying interfaces has taken place.

+
Note
It's safe to use this routine from any thread, even if UCX is compiled without multi-threading support and/or initialized with any value of ucp_params_t::mt_workers_shared and ucp_worker_params_t::thread_mode parameters
+
Parameters
+ + +
[in]workerWorker to wait for events on.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+
+
+ + + + diff --git a/api/v1.17/html/group___u_c_p___w_o_r_k_e_r.html b/api/v1.17/html/group___u_c_p___w_o_r_k_e_r.html new file mode 100644 index 00000000000..c6482c683a9 --- /dev/null +++ b/api/v1.17/html/group___u_c_p___w_o_r_k_e_r.html @@ -0,0 +1,2053 @@ + + + + + + + +UCX: UCP Worker + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Data Structures

struct  ucp_worker_attr
 UCP worker attributes. More...
 
struct  ucp_worker_params
 Tuning parameters for the UCP worker. More...
 
struct  ucp_worker_address_attr
 UCP worker address attributes. More...
 
struct  ucp_listener_attr
 UCP listener attributes. More...
 
struct  ucp_conn_request_attr
 UCP listener's connection request attributes. More...
 
struct  ucp_listener_params
 Parameters for a UCP listener object. More...
 
struct  ucp_am_handler_param
 Active Message handler parameters passed to ucp_worker_set_am_recv_handler routine. More...
 
struct  ucp_am_recv_param
 Operation parameters provided in ucp_am_recv_callback_t callback. More...
 
struct  ucp_listener_accept_handler
 
struct  ucp_listener_conn_handler
 UCP callback to handle the connection request in a client-server connection establishment flow. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef struct ucp_worker_attr ucp_worker_attr_t
 UCP worker attributes.
 
typedef struct ucp_worker_params ucp_worker_params_t
 Tuning parameters for the UCP worker.
 
typedef struct ucp_worker_address_attr ucp_worker_address_attr_t
 UCP worker address attributes.
 
typedef struct ucp_listener_attr ucp_listener_attr_t
 UCP listener attributes.
 
typedef struct ucp_conn_request_attr ucp_conn_request_attr_t
 UCP listener's connection request attributes.
 
typedef struct ucp_listener_params ucp_listener_params_t
 Parameters for a UCP listener object.
 
typedef struct ucp_am_handler_param ucp_am_handler_param_t
 Active Message handler parameters passed to ucp_worker_set_am_recv_handler routine.
 
typedef struct ucp_listener_accept_handler ucp_listener_accept_handler_t
 
typedef struct ucp_am_recv_param ucp_am_recv_param_t
 Operation parameters provided in ucp_am_recv_callback_t callback.
 
typedef struct ucp_address ucp_address_t
 UCP worker address.
 
typedef struct ucp_listener * ucp_listener_h
 UCP listen handle.
 
typedef struct ucp_worker * ucp_worker_h
 UCP Worker.
 
typedef void(* ucp_listener_accept_callback_t) (ucp_ep_h ep, void *arg)
 A callback for accepting client/server connections on a listener ucp_listener_h.
 
typedef void(* ucp_listener_conn_callback_t) (ucp_conn_request_h conn_request, void *arg)
 A callback for handling of incoming connection request conn_request from a client.
 
typedef struct ucp_listener_conn_handler ucp_listener_conn_handler_t
 UCP callback to handle the connection request in a client-server connection establishment flow.
 
typedef enum ucp_wakeup_event_types ucp_wakeup_event_t
 UCP worker wakeup events mask.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Enumerations

enum  ucp_worker_params_field {
+  UCP_WORKER_PARAM_FIELD_THREAD_MODE = UCS_BIT(0) +, UCP_WORKER_PARAM_FIELD_CPU_MASK = UCS_BIT(1) +, UCP_WORKER_PARAM_FIELD_EVENTS = UCS_BIT(2) +, UCP_WORKER_PARAM_FIELD_USER_DATA = UCS_BIT(3) +,
+  UCP_WORKER_PARAM_FIELD_EVENT_FD = UCS_BIT(4) +, UCP_WORKER_PARAM_FIELD_FLAGS = UCS_BIT(5) +, UCP_WORKER_PARAM_FIELD_NAME = UCS_BIT(6) +, UCP_WORKER_PARAM_FIELD_AM_ALIGNMENT = UCS_BIT(7) +,
+  UCP_WORKER_PARAM_FIELD_CLIENT_ID = UCS_BIT(8) +
+ }
 UCP worker parameters field mask. More...
 
enum  ucp_worker_flags_t { UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK = UCS_BIT(0) + }
 UCP worker flags. More...
 
enum  ucp_listener_params_field { UCP_LISTENER_PARAM_FIELD_SOCK_ADDR = UCS_BIT(0) +, UCP_LISTENER_PARAM_FIELD_ACCEPT_HANDLER = UCS_BIT(1) +, UCP_LISTENER_PARAM_FIELD_CONN_HANDLER = UCS_BIT(2) + }
 UCP listener parameters field mask. More...
 
enum  ucp_worker_address_flags_t { UCP_WORKER_ADDRESS_FLAG_NET_ONLY = UCS_BIT(0) + }
 UCP worker address flags. More...
 
enum  ucp_worker_attr_field {
+  UCP_WORKER_ATTR_FIELD_THREAD_MODE = UCS_BIT(0) +, UCP_WORKER_ATTR_FIELD_ADDRESS = UCS_BIT(1) +, UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS = UCS_BIT(2) +, UCP_WORKER_ATTR_FIELD_MAX_AM_HEADER = UCS_BIT(3) +,
+  UCP_WORKER_ATTR_FIELD_NAME = UCS_BIT(4) +, UCP_WORKER_ATTR_FIELD_MAX_INFO_STRING = UCS_BIT(5) +
+ }
 UCP worker attributes field mask. More...
 
enum  ucp_worker_address_attr_field { UCP_WORKER_ADDRESS_ATTR_FIELD_UID = UCS_BIT(0) + }
 UCP worker address attributes field mask. More...
 
enum  ucp_listener_attr_field { UCP_LISTENER_ATTR_FIELD_SOCKADDR = UCS_BIT(0) + }
 UCP listener attributes field mask. More...
 
enum  ucp_conn_request_attr_field { UCP_CONN_REQUEST_ATTR_FIELD_CLIENT_ADDR = UCS_BIT(0) +, UCP_CONN_REQUEST_ATTR_FIELD_CLIENT_ID = UCS_BIT(1) + }
 UCP listener's connection request attributes field mask. More...
 
enum  ucp_am_cb_flags { UCP_AM_FLAG_WHOLE_MSG = UCS_BIT(0) +, UCP_AM_FLAG_PERSISTENT_DATA = UCS_BIT(1) + }
 Flags for a UCP Active Message callback. More...
 
enum  ucp_send_am_flags {
+  UCP_AM_SEND_FLAG_REPLY = UCS_BIT(0) +, UCP_AM_SEND_FLAG_EAGER = UCS_BIT(1) +, UCP_AM_SEND_FLAG_RNDV = UCS_BIT(2) +, UCP_AM_SEND_FLAG_COPY_HEADER = UCS_BIT(3) +,
+  UCP_AM_SEND_REPLY = UCP_AM_SEND_FLAG_REPLY +
+ }
 Flags for sending a UCP Active Message. More...
 
enum  ucp_wakeup_event_types {
+  UCP_WAKEUP_RMA = UCS_BIT(0) +, UCP_WAKEUP_AMO = UCS_BIT(1) +, UCP_WAKEUP_TAG_SEND = UCS_BIT(2) +, UCP_WAKEUP_TAG_RECV = UCS_BIT(3) +,
+  UCP_WAKEUP_TX = UCS_BIT(10) +, UCP_WAKEUP_RX = UCS_BIT(11) +, UCP_WAKEUP_EDGE = UCS_BIT(16) +
+ }
 UCP worker wakeup events mask. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

ucs_status_t ucp_worker_create (ucp_context_h context, const ucp_worker_params_t *params, ucp_worker_h *worker_p)
 Create a worker object.
 
void ucp_worker_destroy (ucp_worker_h worker)
 Destroy a worker object.
 
ucs_status_t ucp_worker_query (ucp_worker_h worker, ucp_worker_attr_t *attr)
 Get attributes specific to a particular worker.
 
void ucp_worker_print_info (ucp_worker_h worker, FILE *stream)
 Print information about the worker.
 
void ucp_worker_release_address (ucp_worker_h worker, ucp_address_t *address)
 Release an address of the worker object.
 
ucs_status_t ucp_worker_address_query (ucp_address_t *address, ucp_worker_address_attr_t *attr)
 Get attributes of the particular worker address.
 
unsigned ucp_worker_progress (ucp_worker_h worker)
 Progress all communications on a specific worker.
 
ssize_t ucp_stream_worker_poll (ucp_worker_h worker, ucp_stream_poll_ep_t *poll_eps, size_t max_eps, unsigned flags)
 Poll for endpoints that are ready to consume streaming data.
 
ucs_status_t ucp_listener_create (ucp_worker_h worker, const ucp_listener_params_t *params, ucp_listener_h *listener_p)
 Create a listener to accept connections on. Connection requests on the listener will arrive at a local address specified by the user.
 
void ucp_listener_destroy (ucp_listener_h listener)
 Stop accepting connections on a local address of the worker object.
 
ucs_status_t ucp_listener_query (ucp_listener_h listener, ucp_listener_attr_t *attr)
 Get attributes specific to a particular listener.
 
ucs_status_t ucp_conn_request_query (ucp_conn_request_h conn_request, ucp_conn_request_attr_t *attr)
 Get attributes specific to a particular connection request received on the server side.
 
ucs_status_t ucp_listener_reject (ucp_listener_h listener, ucp_conn_request_h conn_request)
 Reject an incoming connection request.
 
ucs_status_t ucp_worker_set_am_recv_handler (ucp_worker_h worker, const ucp_am_handler_param_t *param)
 Add user defined callback for Active Message.
 
ucs_status_t ucp_worker_fence (ucp_worker_h worker)
 Assures ordering between non-blocking operations.
 
ucs_status_ptr_t ucp_worker_flush_nbx (ucp_worker_h worker, const ucp_request_param_t *param)
 Flush outstanding AMO and RMA operations on the worker.
 
ucs_status_t ucp_worker_flush (ucp_worker_h worker)
 Flush outstanding AMO and RMA operations on the worker.
 
ucs_status_t ucp_worker_get_address (ucp_worker_h worker, ucp_address_t **address_p, size_t *address_length_p)
 Get the address of the worker object.
 
ucs_status_t ucp_worker_set_am_handler (ucp_worker_h worker, uint16_t id, ucp_am_callback_t cb, void *arg, uint32_t flags)
 Add user defined callback for Active Message.
 
ucs_status_ptr_t ucp_worker_flush_nb (ucp_worker_h worker, unsigned flags, ucp_send_callback_t cb)
 Flush outstanding AMO and RMA operations on the worker.
 
+

Detailed Description

+

UCP Worker routines

+

Data Structure Documentation

+ +

◆ ucp_worker_attr

+ +
+
+ + + + +
struct ucp_worker_attr
+
+

The structure defines the attributes which characterize the particular worker.

+
Examples
ucp_hello_world.c.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from ucp_worker_attr_field. Fields not specified in this mask will be ignored. Provides ABI compatibility with respect to adding new fields.

+
+ucs_thread_mode_t +thread_mode +

Thread safe level of the worker.

+
+uint32_t +address_flags +

Flags indicating requested details of the worker address. If UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS bit is set in the field_mask, this value should be set as well. Possible flags are specified in ucp_worker_address_flags_t.

Note
This is an input attribute.
+
+ucp_address_t * +address +

Worker address, which can be passed to remote instances of the UCP library in order to connect to this worker. The memory for the address handle is allocated by ucp_worker_query() routine, and must be released by using ucp_worker_release_address() routine.

+
+size_t +address_length +

Size of worker address in bytes.

+
+size_t +max_am_header +

Maximum allowed header size for ucp_am_send_nbx routine.

+
+char +name[UCP_ENTITY_NAME_MAX] +

Tracing and analysis tools can identify the worker using this name.

+
+size_t +max_debug_string +

Maximum debug string size that can be filled with ucp_request_query.

+
+ +
+
+ +

◆ ucp_worker_params

+ +
+
+ + + + +
struct ucp_worker_params
+
+

The structure defines the parameters that are used for the UCP worker tuning during the UCP worker creation.

+
Examples
ucp_client_server.c, and ucp_hello_world.c.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from ucp_worker_params_field. Fields not specified in this mask will be ignored. Provides ABI compatibility with respect to adding new fields.

+
+ucs_thread_mode_t +thread_mode +

The parameter thread_mode suggests the thread safety mode which worker and the associated resources should be created with. This is an optional parameter. The default value is UCS_THREAD_MODE_SINGLE and it is used when the value of the parameter is not set. When this parameter along with its corresponding bit in the field_mask - UCP_WORKER_PARAM_FIELD_THREAD_MODE is set, the ucp_worker_create attempts to create worker with this thread mode. The thread mode with which worker is created can differ from the suggested mode. The actual thread mode of the worker should be obtained using the query interface ucp_worker_query.

+
+ucs_cpu_set_t +cpu_mask +

Mask of which CPUs worker resources should preferably be allocated on. This value is optional. If it's not set (along with its corresponding bit in the field_mask - UCP_WORKER_PARAM_FIELD_CPU_MASK), resources are allocated according to system's default policy.

+
+unsigned +events +

Mask of events (ucp_wakeup_event_t) which are expected on wakeup. This value is optional. If it's not set (along with its corresponding bit in the field_mask - UCP_WORKER_PARAM_FIELD_EVENTS), all types of events will trigger on wakeup.

+
+void * +user_data +

User data associated with the current worker. This value is optional. If it's not set (along with its corresponding bit in the field_mask - UCP_WORKER_PARAM_FIELD_USER_DATA), it will default to NULL.

+
+int +event_fd +

External event file descriptor. This value is optional. If UCP_WORKER_PARAM_FIELD_EVENT_FD is set in the field_mask, events on the worker will be reported on the provided event file descriptor. In this case, calling ucp_worker_get_efd will result in an error. The provided file descriptor must be capable of aggregating notifications for arbitrary events, for example epoll(7) on Linux systems. user_data will be used as the event user-data on systems which support it. For example, on Linux, it will be placed in epoll_data_t::ptr, when returned from epoll_wait(2).

+

Otherwise, events will be reported to the event file descriptor returned from ucp_worker_get_efd().

+
+uint64_t +flags +

Worker flags. This value is optional. If UCP_WORKER_PARAM_FIELD_FLAGS is not set in the field_mask, the value of this field will default to 0.

+
+const char * +name +

Tracing and analysis tools can identify the worker using this name. To retrieve the worker's name, use ucp_worker_query, as the name you supply may be changed by UCX under some circumstances, e.g. a name conflict. This field is only assigned if you set UCP_WORKER_PARAM_FIELD_NAME in the field mask. If not, then a default unique name will be created for you.

+
+size_t +am_alignment +

Minimal address alignment of the active message data pointer as passed in argument data to the active message handler, defined as ucp_am_recv_callback_t.

+
+uint64_t +client_id +

Client id that is sent as part of the connection request payload when connecting to a remote socket address. On the remote side, this value can be obtained from ucp_conn_request_h using ucp_conn_request_query.

+
+ +
+
+ +

◆ ucp_worker_address_attr

+ +
+
+ + + + +
struct ucp_worker_address_attr
+
+

The structure defines the attributes of the particular worker address.

+
+ + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from ucp_worker_address_attr_field. Fields not specified in this mask will be ignored. Provides ABI compatibility with respect to adding new fields.

+
+uint64_t +worker_uid +

Unique id of the worker this address belongs to.

+
+ +
+
+ +

◆ ucp_listener_attr

+ +
+
+ + + + +
struct ucp_listener_attr
+
+

The structure defines the attributes which characterize the particular listener.

+
Examples
ucp_client_server.c.
+
+
+ + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from ucp_listener_attr_field. Fields not specified in this mask will be ignored. Provides ABI compatibility with respect to adding new fields.

+
+struct sockaddr_storage +sockaddr +

Sockaddr on which this listener is listening for incoming connection requests.

+
+ +
+
+ +

◆ ucp_conn_request_attr

+ +
+
+ + + + +
struct ucp_conn_request_attr
+
+

The structure defines the attributes that characterize the particular connection request received on the server side.

+
Examples
ucp_client_server.c.
+
+
+ + + + + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from ucp_conn_request_attr_field. Fields not specified in this mask will be ignored. Provides ABI compatibility with respect to adding new fields.

+
+struct sockaddr_storage +client_address +

The address of the remote client that sent the connection request to the server.

+
+uint64_t +client_id +

Remote client id if remote endpoint's flag UCP_EP_PARAMS_FLAGS_SEND_CLIENT_ID is set.

+
+ +
+
+ +

◆ ucp_listener_params

+ +
+
+ + + + +
struct ucp_listener_params
+
+

This structure defines parameters for ucp_listener_create, which is used to listen for incoming client/server connections.

+
Examples
ucp_client_server.c.
+
+
+ + + + + + + + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from ucp_listener_params_field. Fields not specified in this mask will be ignored. Provides ABI compatibility with respect to adding new fields.

+
+ucs_sock_addr_t +sockaddr +

An address in the form of a sockaddr. This field is mandatory for filling (along with its corresponding bit in the field_mask - UCP_LISTENER_PARAM_FIELD_SOCK_ADDR). The ucp_listener_create routine will return with an error if sockaddr is not specified.

+
+ucp_listener_accept_handler_t +accept_handler +

Handler to endpoint creation in a client-server connection flow. In order for the callback inside this handler to be invoked, the UCP_LISTENER_PARAM_FIELD_ACCEPT_HANDLER needs to be set in the field_mask.

+
+ucp_listener_conn_handler_t +conn_handler +

Handler of an incoming connection request in a client-server connection flow. In order for the callback inside this handler to be invoked, the UCP_LISTENER_PARAM_FIELD_CONN_HANDLER needs to be set in the field_mask.

Note
User is expected to call ucp_ep_create with set UCP_EP_PARAM_FIELD_CONN_REQUEST flag to ucp_ep_params_t::field_mask and ucp_ep_params_t::conn_request in order to be able to receive communications.
+
+ +
+
+ +

◆ ucp_am_handler_param

+ +
+
+ + + + +
struct ucp_am_handler_param
+
+
Examples
ucp_client_server.c.
+
+
+ + + + + + + + + + + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from ucp_am_handler_param_field. Fields not specified in this mask will be ignored. Provides ABI compatibility with respect to adding new fields.

+
+unsigned +id +

Active Message id.

+
+uint32_t +flags +

Handler flags as defined by ucp_am_cb_flags.

+
+ucp_am_recv_callback_t +cb +

Active Message callback. To clear the already set callback, this value should be set to NULL.

+
+void * +arg +

Active Message argument, which will be passed in to every invocation of ucp_am_recv_callback_t function as the arg argument.

+
+ +
+
+ +

◆ ucp_am_recv_param

+ +
+
+ + + + +
struct ucp_am_recv_param
+
+
Examples
ucp_client_server.c.
+
+
+ + + + + + + +
Data Fields
+uint64_t +recv_attr +

Mask of valid fields in this structure and receive operation flags, using bits from ucp_am_recv_attr_t. Fields not specified in this mask will be ignored. Provides ABI compatibility with respect to adding new fields.

+
+ucp_ep_h +reply_ep +

Endpoint, which can be used for the reply to this message.

+
+ +
+
+ +

◆ ucp_listener_accept_handler

+ +
+
+ + + + +
struct ucp_listener_accept_handler
+
+ + + + + + + + +
Data Fields
+ucp_listener_accept_callback_t +cb +

Endpoint creation callback

+
+void * +arg +

User defined argument for the callback

+
+ +
+
+ +

◆ ucp_listener_conn_handler

+ +
+
+ + + + +
struct ucp_listener_conn_handler
+
+

This structure is used for handling an incoming connection request on the listener. Setting this type of handler allows creating an endpoint on any other worker and not limited to the worker on which the listener was created.

Note
    +
  • Other than communication progress routines, it is allowed to call all other communication routines from the callback in the struct.
  • +
  • The callback is thread safe with respect to the worker it is invoked on.
  • +
  • It is the user's responsibility to avoid potential dead lock accessing different worker.
  • +
+
+
+ + + + + + + +
Data Fields
+ucp_listener_conn_callback_t +cb +

Connection request callback

+
+void * +arg +

User defined argument for the callback

+
+ +
+
+

Typedef Documentation

+ +

◆ ucp_worker_attr_t

+ +
+
+ + + + +
typedef struct ucp_worker_attr ucp_worker_attr_t
+
+

The structure defines the attributes which characterize the particular worker.

+ +
+
+ +

◆ ucp_worker_params_t

+ +
+
+ + + + +
typedef struct ucp_worker_params ucp_worker_params_t
+
+

The structure defines the parameters that are used for the UCP worker tuning during the UCP worker creation.

+ +
+
+ +

◆ ucp_worker_address_attr_t

+ +
+
+

The structure defines the attributes of the particular worker address.

+ +
+
+ +

◆ ucp_listener_attr_t

+ +
+
+ + + + +
typedef struct ucp_listener_attr ucp_listener_attr_t
+
+

The structure defines the attributes which characterize the particular listener.

+ +
+
+ +

◆ ucp_conn_request_attr_t

+ +
+
+

The structure defines the attributes that characterize the particular connection request received on the server side.

+ +
+
+ +

◆ ucp_listener_params_t

+ +
+
+ + + + +
typedef struct ucp_listener_params ucp_listener_params_t
+
+

This structure defines parameters for ucp_listener_create, which is used to listen for incoming client/server connections.

+ +
+
+ +

◆ ucp_am_handler_param_t

+ +
+
+ + + + +
typedef struct ucp_am_handler_param ucp_am_handler_param_t
+
+ +
+
+ +

◆ ucp_listener_accept_handler_t

+ + + +

◆ ucp_am_recv_param_t

+ +
+
+ + + + +
typedef struct ucp_am_recv_param ucp_am_recv_param_t
+
+ +
+
+ +

◆ ucp_address_t

+ +
+
+ + + + +
typedef struct ucp_address ucp_address_t
+
+

The address handle is an opaque object that is used as an identifier for a worker instance.

+ +
+
+ +

◆ ucp_listener_h

+ +
+
+ + + + +
typedef struct ucp_listener* ucp_listener_h
+
+

The listener handle is an opaque object that is used for listening on a specific address and accepting connections from clients.

+ +
+
+ +

◆ ucp_worker_h

+ +
+
+ + + + +
typedef struct ucp_worker* ucp_worker_h
+
+

UCP worker is an opaque object representing the communication context. The worker represents an instance of a local communication resource and the progress engine associated with it. The progress engine is a construct that is responsible for asynchronous and independent progress of communication directives. The progress engine could be implemented in hardware or software. The worker object abstracts an instance of network resources such as a host channel adapter port, network interface, or multiple resources such as multiple network interfaces or communication ports. It could also represent virtual communication resources that are defined across multiple devices. Although the worker can represent multiple network resources, it is associated with a single UCX application context. All communication functions require a context to perform the operation on the dedicated hardware resource(s) and an endpoint to address the destination.

+
Note
Worker are parallel "threading points" that an upper layer may use to optimize concurrent communications.
+ +
+
+ +

◆ ucp_listener_accept_callback_t

+ +
+
+ + + + +
typedef void(* ucp_listener_accept_callback_t) (ucp_ep_h ep, void *arg)
+
+

This callback routine is invoked on the server side upon creating a connection to a remote client. The user can pass an argument to this callback. The user is responsible for releasing the ep handle using the ucp_ep_destroy() routine.

+
Parameters
+ + + +
[in]epHandle to a newly created endpoint which is connected to the remote peer which has initiated the connection.
[in]argUser's argument for the callback.
+
+
+ +
+
+ +

◆ ucp_listener_conn_callback_t

+ +
+
+ + + + +
typedef void(* ucp_listener_conn_callback_t) (ucp_conn_request_h conn_request, void *arg)
+
+

This callback routine is invoked on the server side to handle incoming connections from remote clients. The user can pass an argument to this callback. The conn_request handle has to be released, either by ucp_ep_create or ucp_listener_reject routine.

+
Parameters
+ + + +
[in]conn_requestConnection request handle.
[in]argUser's argument for the callback.
+
+
+ +
+
+ +

◆ ucp_listener_conn_handler_t

+ +
+
+

This structure is used for handling an incoming connection request on the listener. Setting this type of handler allows creating an endpoint on any other worker and not limited to the worker on which the listener was created.

Note
    +
  • Other than communication progress routines, it is allowed to call all other communication routines from the callback in the struct.
  • +
  • The callback is thread safe with respect to the worker it is invoked on.
  • +
  • It is the user's responsibility to avoid potential dead lock accessing different worker.
  • +
+
+ +
+
+ +

◆ ucp_wakeup_event_t

+ +
+
+ + + + +
typedef enum ucp_wakeup_event_types ucp_wakeup_event_t
+
+

The enumeration allows specifying which events are expected on wakeup. Empty events are possible for any type of event except for UCP_WAKEUP_TX and UCP_WAKEUP_RX.

+
Note
Send completions are reported by POLLIN-like events (see poll man page). Since outgoing operations can be initiated at any time, UCP does not generate POLLOUT-like events, although it must be noted that outgoing operations may be queued depending upon resource availability.
+ +
+
+

Enumeration Type Documentation

+ +

◆ ucp_worker_params_field

+ +
+
+ + + + +
enum ucp_worker_params_field
+
+

The enumeration allows specifying which fields in ucp_worker_params_t are present. It is used to enable backward compatibility support.

+ + + + + + + + + + +
Enumerator
UCP_WORKER_PARAM_FIELD_THREAD_MODE 

UCP thread mode

+
UCP_WORKER_PARAM_FIELD_CPU_MASK 

Worker's CPU bitmap

+
UCP_WORKER_PARAM_FIELD_EVENTS 

Worker's events bitmap

+
UCP_WORKER_PARAM_FIELD_USER_DATA 

User data

+
UCP_WORKER_PARAM_FIELD_EVENT_FD 

External event file descriptor

+
UCP_WORKER_PARAM_FIELD_FLAGS 

Worker flags

+
UCP_WORKER_PARAM_FIELD_NAME 

Worker name

+
UCP_WORKER_PARAM_FIELD_AM_ALIGNMENT 

Alignment of active messages on the receiver

+
UCP_WORKER_PARAM_FIELD_CLIENT_ID 

Client id

+
+ +
+
+ +

◆ ucp_worker_flags_t

+ +
+
+ + + + +
enum ucp_worker_flags_t
+
+

This enumeration allows specifying flags for ucp_worker_params_t::flags, which is used as parameter for ucp_worker_create.

+ + +
Enumerator
UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK 

Do not print warnings about request leaks

+
+ +
+
+ +

◆ ucp_listener_params_field

+ +
+
+ + + + +
enum ucp_listener_params_field
+
+

The enumeration allows specifying which fields in ucp_listener_params_t are present. It is used to enable backward compatibility support.

+ + + + +
Enumerator
UCP_LISTENER_PARAM_FIELD_SOCK_ADDR 

Sock address and length.

+
UCP_LISTENER_PARAM_FIELD_ACCEPT_HANDLER 

User's callback and argument for handling the creation of an endpoint. User's callback and argument for handling the incoming connection request.

+
UCP_LISTENER_PARAM_FIELD_CONN_HANDLER 
+ +
+
+ +

◆ ucp_worker_address_flags_t

+ +
+
+ + + + +
enum ucp_worker_address_flags_t
+
+

The enumeration list describes possible UCP worker address flags, indicating what needs to be included to the worker address returned by ucp_worker_query() routine.

+ + +
Enumerator
UCP_WORKER_ADDRESS_FLAG_NET_ONLY 

Pack addresses of network devices only. Using such shortened addresses for the remote node peers will reduce the amount of wireup data being exchanged during connection establishment phase.

+
+ +
+
+ +

◆ ucp_worker_attr_field

+ +
+
+ + + + +
enum ucp_worker_attr_field
+
+

The enumeration allows specifying which fields in ucp_worker_attr_t are present. It is used to enable backward compatibility support.

+ + + + + + + +
Enumerator
UCP_WORKER_ATTR_FIELD_THREAD_MODE 

UCP thread mode

+
UCP_WORKER_ATTR_FIELD_ADDRESS 

UCP address

+
UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS 

UCP address flags

+
UCP_WORKER_ATTR_FIELD_MAX_AM_HEADER 

Maximum header size used by UCP AM API

+
UCP_WORKER_ATTR_FIELD_NAME 

UCP worker name

+
UCP_WORKER_ATTR_FIELD_MAX_INFO_STRING 

Maximum size of info string

+
+ +
+
+ +

◆ ucp_worker_address_attr_field

+ +
+
+

The enumeration allows specifying which fields in ucp_worker_address_attr_t are present. It is used to enable backward compatibility support.

+ + +
Enumerator
UCP_WORKER_ADDRESS_ATTR_FIELD_UID 

Unique id of the worker

+
+ +
+
+ +

◆ ucp_listener_attr_field

+ +
+
+ + + + +
enum ucp_listener_attr_field
+
+

The enumeration allows specifying which fields in ucp_listener_attr_t are present. It is used to enable backward compatibility support.

+ + +
Enumerator
UCP_LISTENER_ATTR_FIELD_SOCKADDR 

Sockaddr used for listening

+
+ +
+
+ +

◆ ucp_conn_request_attr_field

+ +
+
+ + + + +
enum ucp_conn_request_attr_field
+
+

The enumeration allows specifying which fields in ucp_conn_request_attr_t are present. It is used to enable backward compatibility support.

+ + + +
Enumerator
UCP_CONN_REQUEST_ATTR_FIELD_CLIENT_ADDR 

Client's address

+
UCP_CONN_REQUEST_ATTR_FIELD_CLIENT_ID 

Remote client id

+
+ +
+
+ +

◆ ucp_am_cb_flags

+ +
+
+ + + + +
enum ucp_am_cb_flags
+
+

Flags that indicate how to handle UCP Active Messages.

+ + + +
Enumerator
UCP_AM_FLAG_WHOLE_MSG 

Indicates that the entire message will be handled in one callback.

+
UCP_AM_FLAG_PERSISTENT_DATA 

Guarantees that the specified ucp_am_recv_callback_t callback, will always be called with UCP_AM_RECV_ATTR_FLAG_DATA flag set, so the data will be accessible outside the callback, until ucp_am_data_release is called.

+
+ +
+
+ +

◆ ucp_send_am_flags

+ +
+
+ + + + +
enum ucp_send_am_flags
+
+

Flags dictate the behavior of ucp_am_send_nb and ucp_am_send_nbx routines.

+ + + + + + +
Enumerator
UCP_AM_SEND_FLAG_REPLY 

Force relevant reply endpoint to be passed to the data callback on the receiver.

+
UCP_AM_SEND_FLAG_EAGER 

Force UCP to use only eager protocol for AM sends.

+
UCP_AM_SEND_FLAG_RNDV 

Force UCP to use only rendezvous protocol for AM sends.

+
UCP_AM_SEND_FLAG_COPY_HEADER 

The flag indicates that the header should be copied to an internal buffer in case it's needed after the send function returns. If this flag is specified, the header can be released immediately after the send function returns, even if the non-blocking send request is not completed.

+
UCP_AM_SEND_REPLY 

Backward compatibility.

+
+ +
+
+ +

◆ ucp_wakeup_event_types

+ +
+
+ + + + +
enum ucp_wakeup_event_types
+
+

The enumeration allows specifying which events are expected on wakeup. Empty events are possible for any type of event except for UCP_WAKEUP_TX and UCP_WAKEUP_RX.

+
Note
Send completions are reported by POLLIN-like events (see poll man page). Since outgoing operations can be initiated at any time, UCP does not generate POLLOUT-like events, although it must be noted that outgoing operations may be queued depending upon resource availability.
+ + + + + + + + +
Enumerator
UCP_WAKEUP_RMA 

Remote memory access send completion

+
UCP_WAKEUP_AMO 

Atomic operation send completion

+
UCP_WAKEUP_TAG_SEND 

Tag send completion
+

+
UCP_WAKEUP_TAG_RECV 

Tag receive completion

+
UCP_WAKEUP_TX 

This event type will generate an event on completion of any outgoing operation (complete or partial, according to the underlying protocol) for any type of transfer (send, atomic, or RMA).

+
UCP_WAKEUP_RX 

This event type will generate an event on completion of any receive operation (complete or partial, according to the underlying protocol).

+
UCP_WAKEUP_EDGE 

Use edge-triggered wakeup. The event file descriptor will be signaled only for new events, rather than existing ones.

+
+ +
+
+

Function Documentation

+ +

◆ ucp_worker_create()

+ +
+
+ + + + + + + + + + + + + + + + +
ucs_status_t ucp_worker_create (ucp_context_h context,
const ucp_worker_params_t * params,
ucp_worker_h * worker_p )
+
+

This routine allocates and initializes a worker object. Each worker is associated with one and only one application context. In the same time, an application context can create multiple workers in order to enable concurrent access to communication resources. For example, application can allocate a dedicated worker for each application thread, where every worker can be progressed independently of others.

+
Note
The worker object is allocated within context of the calling thread
+
Parameters
+ + + + +
[in]contextHandle to UCP application context.
[in]paramsUser defined ucp_worker_params_t configurations for the UCP worker.
[out]worker_pA pointer to the worker object allocated by the UCP library
+
+
+
Returns
Error code as defined by ucs_status_t
+
Examples
ucp_client_server.c, and ucp_hello_world.c.
+
+ +
+
+ +

◆ ucp_worker_destroy()

+ +
+
+ + + + + + + +
void ucp_worker_destroy (ucp_worker_h worker)
+
+

This routine releases the resources associated with a UCP worker.

+
Warning
Once the UCP worker destroy the worker handle cannot be used with any UCP routine.
+

The destroy process releases and shuts down all resources associated with the worker.

+
Parameters
+ + +
[in]workerWorker object to destroy.
+
+
+
Examples
ucp_client_server.c, and ucp_hello_world.c.
+
+ +
+
+ +

◆ ucp_worker_query()

+ +
+
+ + + + + + + + + + + +
ucs_status_t ucp_worker_query (ucp_worker_h worker,
ucp_worker_attr_t * attr )
+
+

This routine fetches information about the worker.

+
Parameters
+ + + +
[in]workerWorker object to query.
[out]attrFilled with attributes of worker.
+
+
+
Returns
Error code as defined by ucs_status_t
+
Examples
ucp_hello_world.c.
+
+ +
+
+ +

◆ ucp_worker_print_info()

+ +
+
+ + + + + + + + + + + +
void ucp_worker_print_info (ucp_worker_h worker,
FILE * stream )
+
+

This routine prints information about the protocols being used, thresholds, UCT transport methods, and other useful information associated with the worker.

+
Parameters
+ + + +
[in]workerWorker object to print information for.
[in]streamOutput stream to print the information to.
+
+
+ +
+
+ +

◆ ucp_worker_release_address()

+ +
+
+ + + + + + + + + + + +
void ucp_worker_release_address (ucp_worker_h worker,
ucp_address_t * address )
+
+

This routine release an address handle associated within the worker object.

+
Warning
Once the address released the address handle cannot be used with any UCP routine.
+
Parameters
+ + + +
[in]workerWorker object that is associated with the address object.
[in]addressAddress to release; the address object has to be allocated using ucp_worker_query() routine.
+
+
+
Examples
ucp_hello_world.c.
+
+ +
+
+ +

◆ ucp_worker_address_query()

+ +
+
+ + + + + + + + + + + +
ucs_status_t ucp_worker_address_query (ucp_address_t * address,
ucp_worker_address_attr_t * attr )
+
+

This routine fetches information about the worker address. The address can be either of local or remote worker.

+
Parameters
+ + + +
[in]addressWorker address to query.
[out]attrFilled with attributes of the worker address.
+
+
+
Returns
Error code as defined by ucs_status_t.
+ +
+
+ +

◆ ucp_worker_progress()

+ +
+
+ + + + + + + +
unsigned ucp_worker_progress (ucp_worker_h worker)
+
+

This routine explicitly progresses all communication operations on a worker.

+
Note
    +
  • Typically, request wait and test routines call this routine to progress any outstanding operations.
  • +
  • Transport layers, implementing asynchronous progress using threads, require callbacks and other user code to be thread safe.
  • +
  • The state of communication can be advanced (progressed) by blocking routines. Nevertheless, the non-blocking routines can not be used for communication progress.
  • +
+
+
Parameters
+ + +
[in]workerWorker to progress.
+
+
+
Returns
Non-zero if any communication was progressed, zero otherwise.
+
Examples
ucp_client_server.c, and ucp_hello_world.c.
+
+ +
+
+ +

◆ ucp_stream_worker_poll()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
ssize_t ucp_stream_worker_poll (ucp_worker_h worker,
ucp_stream_poll_ep_t * poll_eps,
size_t max_eps,
unsigned flags )
+
+

This non-blocking routine returns endpoints on a worker which are ready to consume streaming data. The ready endpoints are placed in poll_eps array, and the function return value indicates how many are there.

+
Parameters
+ + + + + +
[in]workerWorker to poll.
[out]poll_epsPointer to array of endpoints, should be allocated by user.
[in]max_epsMaximum number of endpoints that should be filled in poll_eps.
[in]flagsReserved for future use.
+
+
+
Returns
Negative value indicates an error according to ucs_status_t. On success, non-negative value (less or equal max_eps) indicates actual number of endpoints filled in poll_eps array.
+ +
+
+ +

◆ ucp_listener_create()

+ +
+
+ + + + + + + + + + + + + + + + +
ucs_status_t ucp_listener_create (ucp_worker_h worker,
const ucp_listener_params_t * params,
ucp_listener_h * listener_p )
+
+

This routine creates a new listener object that is bound to a specific local address. The listener will listen to incoming connection requests. After receiving a request from the remote peer, an endpoint to this peer will be created - either right away or by calling ucp_ep_create, as specified by the callback type in ucp_listener_params_t. The user's callback will be invoked once the endpoint is created.

+
Parameters
+ + + + +
[in]workerWorker object to create the listener on.
[in]paramsUser defined ucp_listener_params_t configurations for the ucp_listener_h.
[out]listener_pA handle to the created listener, can be released by calling ucp_listener_destroy
+
+
+
Returns
Error code as defined by ucs_status_t
+
Note
ucp_listener_params_t::conn_handler or ucp_listener_params_t::accept_handler must be provided to be able to handle incoming connections.
+
Examples
ucp_client_server.c.
+
+ +
+
+ +

◆ ucp_listener_destroy()

+ +
+
+ + + + + + + +
void ucp_listener_destroy (ucp_listener_h listener)
+
+

This routine unbinds the worker from the given handle and stops listening for incoming connection requests on it.

+
Parameters
+ + +
[in]listenerA handle to the listener to stop listening on.
+
+
+
Examples
ucp_client_server.c.
+
+ +
+
+ +

◆ ucp_listener_query()

+ +
+
+ + + + + + + + + + + +
ucs_status_t ucp_listener_query (ucp_listener_h listener,
ucp_listener_attr_t * attr )
+
+

This routine fetches information about the listener.

+
Parameters
+ + + +
[in]listenerlistener object to query.
[out]attrFilled with attributes of the listener.
+
+
+
Returns
Error code as defined by ucs_status_t
+
Examples
ucp_client_server.c.
+
+ +
+
+ +

◆ ucp_conn_request_query()

+ +
+
+ + + + + + + + + + + +
ucs_status_t ucp_conn_request_query (ucp_conn_request_h conn_request,
ucp_conn_request_attr_t * attr )
+
+

This routine fetches information about the connection request.

+
Parameters
+ + + +
[in]conn_requestconnection request object to query.
[out]attrFilled with attributes of the connection request.
+
+
+
Returns
Error code as defined by ucs_status_t
+
Examples
ucp_client_server.c.
+
+ +
+
+ +

◆ ucp_listener_reject()

+ +
+
+ + + + + + + + + + + +
ucs_status_t ucp_listener_reject (ucp_listener_h listener,
ucp_conn_request_h conn_request )
+
+

Reject the incoming connection request and release associated resources. If the remote initiator endpoint has set an ucp_ep_params_t::err_handler, it will be invoked with status UCS_ERR_REJECTED.

+
Parameters
+ + + +
[in]listenerHandle to the listener on which the connection request was received.
[in]conn_requestHandle to the connection request to reject.
+
+
+
Returns
Error code as defined by ucs_status_t
+
Examples
ucp_client_server.c.
+
+ +
+
+ +

◆ ucp_worker_set_am_recv_handler()

+ +
+
+ + + + + + + + + + + +
ucs_status_t ucp_worker_set_am_recv_handler (ucp_worker_h worker,
const ucp_am_handler_param_t * param )
+
+

This routine installs a user defined callback to handle incoming Active Messages with a specific id. This callback is called whenever an Active Message that was sent from the remote peer by ucp_am_send_nbx is received on this worker.

+
Warning
Handlers set by this function are not compatible with ucp_am_send_nb routine.
+
Parameters
+ + + +
[in]workerUCP worker on which to set the Active Message handler.
[in]paramActive Message handler parameters, as defined by ucp_am_handler_param_t.
+
+
+
Returns
error code if the worker does not support Active Messages or requested callback flags.
+
Examples
ucp_client_server.c.
+
+ +
+
+ +

◆ ucp_worker_fence()

+ +
+
+ + + + + + + +
ucs_status_t ucp_worker_fence (ucp_worker_h worker)
+
+

This routine ensures ordering of non-blocking communication operations on the UCP worker. Communication operations issued on a particular endpoint created on the worker prior to this call are guaranteed to be completed before any communication operations issued on the same endpoint after this call.

+
Note
The primary difference between ucp_worker_fence() and the ucp_worker_flush_nb() is the fact the fence routine does not guarantee completion of the operations on the call return but only ensures the order between communication operations. The flush operation on return guarantees that all operations are completed and corresponding memory regions were updated.
+
Parameters
+ + +
[in]workerUCP worker.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_worker_flush_nbx()

+ +
+
+ + + + + + + + + + + +
ucs_status_ptr_t ucp_worker_flush_nbx (ucp_worker_h worker,
const ucp_request_param_t * param )
+
+

This routine flushes all outstanding AMO and RMA communications on the worker. All the AMO and RMA operations issued on the worker prior to this call are completed both at the origin and at the target when this call returns.

+
Note
For description of the differences between flush and fence operations please see ucp_worker_fence()
+
Parameters
+ + + +
[in]workerUCP worker.
[in]paramOperation parameters, see ucp_request_param_t
+
+
+
Returns
NULL - The flush operation was completed immediately.
+
+UCS_PTR_IS_ERR(_ptr) - The flush operation failed.
+
+otherwise - Flush operation was scheduled and can be completed in any point in time. The request handle is returned to the application in order to track progress.
+ +
+
+ +

◆ ucp_worker_flush()

+ +
+
+ + + + + + + +
ucs_status_t ucp_worker_flush (ucp_worker_h worker)
+
+
Deprecated
Replaced by ucp_worker_flush_nb. The following example implements the same functionality using ucp_worker_flush_nb :
+
ucs_status_t worker_flush(ucp_worker_h worker)
+
{
+
void *request = ucp_worker_flush_nb(worker);
+
if (request == NULL) {
+
return UCS_OK;
+
} else if (UCS_PTR_IS_ERR(request)) {
+
return UCS_PTR_STATUS(request);
+
} else {
+
ucs_status_t status;
+
do {
+ +
status = ucp_request_check_status(request);
+
} while (status == UCS_INPROGRESS);
+ +
return status;
+
}
+
}
+
ucs_status_t ucp_request_check_status(void *request)
Check the status of non-blocking request.
+
void ucp_request_release(void *request)
+
unsigned ucp_worker_progress(ucp_worker_h worker)
Progress all communications on a specific worker.
+
struct ucp_worker * ucp_worker_h
UCP Worker.
Definition ucp_def.h:246
+
ucs_status_ptr_t ucp_worker_flush_nb(ucp_worker_h worker, unsigned flags, ucp_send_callback_t cb)
Flush outstanding AMO and RMA operations on the worker.
+
ucs_status_t
Status codes.
Definition status.h:45
+
@ UCS_OK
Definition status.h:47
+
@ UCS_INPROGRESS
Definition status.h:50
+

This routine flushes all outstanding AMO and RMA communications on the worker. All the AMO and RMA operations issued on the worker prior to this call are completed both at the origin and at the target when this call returns.

+
Note
For description of the differences between flush and fence operations please see ucp_worker_fence()
+
Parameters
+ + +
[in]workerUCP worker.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_worker_get_address()

+ +
+
+ + + + + + + + + + + + + + + + +
ucs_status_t ucp_worker_get_address (ucp_worker_h worker,
ucp_address_t ** address_p,
size_t * address_length_p )
+
+
Deprecated
Use ucp_worker_query with the flag UCP_WORKER_ATTR_FIELD_ADDRESS in order to obtain the worker address.
+

This routine returns the address of the worker object. This address can be passed to remote instances of the UCP library in order to connect to this worker. The memory for the address handle is allocated by this function, and must be released by using ucp_worker_release_address() routine.

+
Parameters
+ + + + +
[in]workerWorker object whose address to return.
[out]address_pA pointer to the worker address.
[out]address_length_pThe size in bytes of the address.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ ucp_worker_set_am_handler()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t ucp_worker_set_am_handler (ucp_worker_h worker,
uint16_t id,
ucp_am_callback_t cb,
void * arg,
uint32_t flags )
+
+
Deprecated
Use ucp_worker_set_am_recv_handler instead.
+

This routine installs a user defined callback to handle incoming Active Messages with a specific id. This callback is called whenever an Active Message that was sent from the remote peer by ucp_am_send_nb is received on this worker.

+
Parameters
+ + + + + + +
[in]workerUCP worker on which to set the Active Message handler.
[in]idActive Message id.
[in]cbActive Message callback. NULL to clear.
[in]argActive Message argument, which will be passed in to every invocation of the callback as the arg argument.
[in]flagsDictates how an Active Message is handled on the remote endpoint. Currently only UCP_AM_FLAG_WHOLE_MSG is supported, which indicates the callback will not be invoked until all data has arrived.
+
+
+
Returns
error code if the worker does not support Active Messages or requested callback flags.
+ +
+
+ +

◆ ucp_worker_flush_nb()

+ +
+
+ + + + + + + + + + + + + + + + +
ucs_status_ptr_t ucp_worker_flush_nb (ucp_worker_h worker,
unsigned flags,
ucp_send_callback_t cb )
+
+
Deprecated
Use ucp_worker_flush_nbx instead.
+

This routine flushes all outstanding AMO and RMA communications on the worker. All the AMO and RMA operations issued on the worker prior to this call are completed both at the origin and at the target when this call returns.

+
Note
For description of the differences between flush and fence operations please see ucp_worker_fence()
+
Parameters
+ + + + +
[in]workerUCP worker.
[in]flagsFlags for flush operation. Reserved for future use.
[in]cbCallback which will be called when the flush operation completes.
+
+
+
Returns
NULL - The flush operation was completed immediately.
+
+UCS_PTR_IS_ERR(_ptr) - The flush operation failed.
+
+otherwise - Flush operation was scheduled and can be completed in any point in time. The request handle is returned to the application in order to track progress. The application is responsible for releasing the handle using ucp_request_free() routine.
+ +
+
+
+
+ + + + diff --git a/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__am__handler__param.js b/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__am__handler__param.js new file mode 100644 index 00000000000..33cb7f1b25e --- /dev/null +++ b/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__am__handler__param.js @@ -0,0 +1,8 @@ +var group___u_c_p___w_o_r_k_e_r_structucp__am__handler__param = +[ + [ "field_mask", "group___u_c_p___w_o_r_k_e_r.html#a8f31d53e411769961286865cb9332f6f", null ], + [ "id", "group___u_c_p___w_o_r_k_e_r.html#ad0c6157f387e18cb4d92a37a638274af", null ], + [ "flags", "group___u_c_p___w_o_r_k_e_r.html#a061115b2dc01fb803ae8082bd41f8730", null ], + [ "cb", "group___u_c_p___w_o_r_k_e_r.html#acd54cdefba3f3f5e145dfe2360485659", null ], + [ "arg", "group___u_c_p___w_o_r_k_e_r.html#ae1670a4926d8528fb1ec1cd3f461f13a", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__am__recv__param.js b/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__am__recv__param.js new file mode 100644 index 00000000000..801c160dd67 --- /dev/null +++ b/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__am__recv__param.js @@ -0,0 +1,5 @@ +var group___u_c_p___w_o_r_k_e_r_structucp__am__recv__param = +[ + [ "recv_attr", "group___u_c_p___w_o_r_k_e_r.html#a53a8777a31faf7e65289bcc1d710fb19", null ], + [ "reply_ep", "group___u_c_p___w_o_r_k_e_r.html#a5e4629812b7b7737beb6f7f7332b7d7f", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__conn__request__attr.js b/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__conn__request__attr.js new file mode 100644 index 00000000000..62261d0ede3 --- /dev/null +++ b/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__conn__request__attr.js @@ -0,0 +1,6 @@ +var group___u_c_p___w_o_r_k_e_r_structucp__conn__request__attr = +[ + [ "field_mask", "group___u_c_p___w_o_r_k_e_r.html#ad6a97d8268992c34631ac773a6c2148b", null ], + [ "client_address", "group___u_c_p___w_o_r_k_e_r.html#a8ca1dc70d395335dc9f8fe20e9de1a0d", null ], + [ "client_id", "group___u_c_p___w_o_r_k_e_r.html#aff4d88d6fd3b2613e058bbcf43d0815b", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__listener__accept__handler.js b/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__listener__accept__handler.js new file mode 100644 index 00000000000..31c8a78984f --- /dev/null +++ b/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__listener__accept__handler.js @@ -0,0 +1,5 @@ +var group___u_c_p___w_o_r_k_e_r_structucp__listener__accept__handler = +[ + [ "cb", "group___u_c_p___w_o_r_k_e_r.html#a3017ef77fb807d87b60667df14f6c0b0", null ], + [ "arg", "group___u_c_p___w_o_r_k_e_r.html#a05ba12e5d6e6c2b3caef35975644ce85", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__listener__attr.js b/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__listener__attr.js new file mode 100644 index 00000000000..fc4318d531a --- /dev/null +++ b/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__listener__attr.js @@ -0,0 +1,5 @@ +var group___u_c_p___w_o_r_k_e_r_structucp__listener__attr = +[ + [ "field_mask", "group___u_c_p___w_o_r_k_e_r.html#aaaa6353f56fd585d7c83c363380703f4", null ], + [ "sockaddr", "group___u_c_p___w_o_r_k_e_r.html#affcc213cd4305412937974eefb95bc32", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__listener__conn__handler.js b/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__listener__conn__handler.js new file mode 100644 index 00000000000..86bf53b0d7f --- /dev/null +++ b/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__listener__conn__handler.js @@ -0,0 +1,5 @@ +var group___u_c_p___w_o_r_k_e_r_structucp__listener__conn__handler = +[ + [ "cb", "group___u_c_p___w_o_r_k_e_r.html#a55ac5ba9e07ca64d55e22730038a4018", null ], + [ "arg", "group___u_c_p___w_o_r_k_e_r.html#ae84882c5fbe486b118460662afe395ec", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__listener__params.js b/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__listener__params.js new file mode 100644 index 00000000000..4c5199a2c5a --- /dev/null +++ b/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__listener__params.js @@ -0,0 +1,7 @@ +var group___u_c_p___w_o_r_k_e_r_structucp__listener__params = +[ + [ "field_mask", "group___u_c_p___w_o_r_k_e_r.html#afb01e3b0d3c0a04cef0cde4f849fcc1d", null ], + [ "sockaddr", "group___u_c_p___w_o_r_k_e_r.html#a88be57709393e7bf27d10d8a5238b544", null ], + [ "accept_handler", "group___u_c_p___w_o_r_k_e_r.html#a17487f0e8e3102519d7b512c77efdb1f", null ], + [ "conn_handler", "group___u_c_p___w_o_r_k_e_r.html#a0694aacde5fff09dc75e556e8116098a", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__worker__address__attr.js b/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__worker__address__attr.js new file mode 100644 index 00000000000..aab098d0c70 --- /dev/null +++ b/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__worker__address__attr.js @@ -0,0 +1,5 @@ +var group___u_c_p___w_o_r_k_e_r_structucp__worker__address__attr = +[ + [ "field_mask", "group___u_c_p___w_o_r_k_e_r.html#a596a9aee8bfbd1c232c6d63549c75f08", null ], + [ "worker_uid", "group___u_c_p___w_o_r_k_e_r.html#a682d3477655dc66072e03530d95239f2", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__worker__attr.js b/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__worker__attr.js new file mode 100644 index 00000000000..c004a460cbc --- /dev/null +++ b/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__worker__attr.js @@ -0,0 +1,11 @@ +var group___u_c_p___w_o_r_k_e_r_structucp__worker__attr = +[ + [ "field_mask", "group___u_c_p___w_o_r_k_e_r.html#af0f34f82bba00221aa22ec54fa5efc0f", null ], + [ "thread_mode", "group___u_c_p___w_o_r_k_e_r.html#abf2b8b0c74946fbd1791a21369236678", null ], + [ "address_flags", "group___u_c_p___w_o_r_k_e_r.html#a6c288e285b8c870ec576f1a939519799", null ], + [ "address", "group___u_c_p___w_o_r_k_e_r.html#a0863e78ee73ef351311c54d95b6c8fa5", null ], + [ "address_length", "group___u_c_p___w_o_r_k_e_r.html#a7b0ad8e7e5c8d4c4c4931e769ca0fe6f", null ], + [ "max_am_header", "group___u_c_p___w_o_r_k_e_r.html#a7678aa8d4fb18b0d6e2a0276b03e2cb4", null ], + [ "name", "group___u_c_p___w_o_r_k_e_r.html#a3123aa88fefa33c972da4c2bda3bebee", null ], + [ "max_debug_string", "group___u_c_p___w_o_r_k_e_r.html#a79406f6545efcaefffaa34ca99bfdc04", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__worker__params.js b/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__worker__params.js new file mode 100644 index 00000000000..a852ea03a81 --- /dev/null +++ b/api/v1.17/html/group___u_c_p___w_o_r_k_e_r_structucp__worker__params.js @@ -0,0 +1,13 @@ +var group___u_c_p___w_o_r_k_e_r_structucp__worker__params = +[ + [ "field_mask", "group___u_c_p___w_o_r_k_e_r.html#a33863ec848e47f79d2e14181fe2aa921", null ], + [ "thread_mode", "group___u_c_p___w_o_r_k_e_r.html#a790642ea681ddd2b0935ad62f70e4ef1", null ], + [ "cpu_mask", "group___u_c_p___w_o_r_k_e_r.html#afc8f70f3ff12f36ea34ad40ff12de61e", null ], + [ "events", "group___u_c_p___w_o_r_k_e_r.html#a89b9add865222b57caee81874704ba89", null ], + [ "user_data", "group___u_c_p___w_o_r_k_e_r.html#a2c277d353e134219265887c4f5339159", null ], + [ "event_fd", "group___u_c_p___w_o_r_k_e_r.html#aaeaf0e7ec196ed72ee2b52183f8d1d7d", null ], + [ "flags", "group___u_c_p___w_o_r_k_e_r.html#adbd9725024f5138a693196f11dab124c", null ], + [ "name", "group___u_c_p___w_o_r_k_e_r.html#a7ea9a6700ec1393aaa95c4b1e1df04e1", null ], + [ "am_alignment", "group___u_c_p___w_o_r_k_e_r.html#aab378fafe0b474381edbe25023910eb4", null ], + [ "client_id", "group___u_c_p___w_o_r_k_e_r.html#a41afbbfba922c2bdc4f35e2c4ecfcaa4", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_s___a_p_i.html b/api/v1.17/html/group___u_c_s___a_p_i.html new file mode 100644 index 00000000000..2c36082dbe3 --- /dev/null +++ b/api/v1.17/html/group___u_c_s___a_p_i.html @@ -0,0 +1,118 @@ + + + + + + + +UCX: Unified Communication Services (UCS) API + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Unified Communication Services (UCS) API
+
+
+ + + + +

+Topics

 UCS Communication Resource
 
+

Detailed Description

+

This section describes UCS API.

+
+
+ + + + diff --git a/api/v1.17/html/group___u_c_s___r_e_s_o_u_r_c_e.html b/api/v1.17/html/group___u_c_s___r_e_s_o_u_r_c_e.html new file mode 100644 index 00000000000..04799872ca0 --- /dev/null +++ b/api/v1.17/html/group___u_c_s___r_e_s_o_u_r_c_e.html @@ -0,0 +1,742 @@ + + + + + + + +UCX: UCS Communication Resource + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ + + + +

+Data Structures

struct  ucs_sock_addr
 
+ + + + + + + + + + + + + +

+Typedefs

typedef void(* ucs_async_event_cb_t) (int id, ucs_event_set_types_t events, void *arg)
 
typedef struct ucs_sock_addr ucs_sock_addr_t
 
typedef enum ucs_memory_type ucs_memory_type_t
 Memory types.
 
typedef unsigned long ucs_time_t
 
typedef void * ucs_status_ptr_t
 Status pointer.
 
+ + + + + + + + + + + + +

+Enumerations

enum  ucs_callbackq_flags { UCS_CALLBACKQ_FLAG_FAST = UCS_BIT(0) +, UCS_CALLBACKQ_FLAG_ONESHOT = UCS_BIT(1) + }
 
enum  ucs_memory_type {
+  UCS_MEMORY_TYPE_HOST +, UCS_MEMORY_TYPE_CUDA +, UCS_MEMORY_TYPE_CUDA_MANAGED +, UCS_MEMORY_TYPE_ROCM +,
+  UCS_MEMORY_TYPE_ROCM_MANAGED +, UCS_MEMORY_TYPE_RDMA +, UCS_MEMORY_TYPE_ZE_HOST +, UCS_MEMORY_TYPE_ZE_DEVICE +,
+  UCS_MEMORY_TYPE_ZE_MANAGED +, UCS_MEMORY_TYPE_LAST +, UCS_MEMORY_TYPE_UNKNOWN = UCS_MEMORY_TYPE_LAST +
+ }
 Memory types. More...
 
enum  ucs_status_t {
+  UCS_OK = 0 +, UCS_INPROGRESS = 1 +, UCS_ERR_NO_MESSAGE = -1 +, UCS_ERR_NO_RESOURCE = -2 +,
+  UCS_ERR_IO_ERROR = -3 +, UCS_ERR_NO_MEMORY = -4 +, UCS_ERR_INVALID_PARAM = -5 +, UCS_ERR_UNREACHABLE = -6 +,
+  UCS_ERR_INVALID_ADDR = -7 +, UCS_ERR_NOT_IMPLEMENTED = -8 +, UCS_ERR_MESSAGE_TRUNCATED = -9 +, UCS_ERR_NO_PROGRESS = -10 +,
+  UCS_ERR_BUFFER_TOO_SMALL = -11 +, UCS_ERR_NO_ELEM = -12 +, UCS_ERR_SOME_CONNECTS_FAILED = -13 +, UCS_ERR_NO_DEVICE = -14 +,
+  UCS_ERR_BUSY = -15 +, UCS_ERR_CANCELED = -16 +, UCS_ERR_SHMEM_SEGMENT = -17 +, UCS_ERR_ALREADY_EXISTS = -18 +,
+  UCS_ERR_OUT_OF_RANGE = -19 +, UCS_ERR_TIMED_OUT = -20 +, UCS_ERR_EXCEEDS_LIMIT = -21 +, UCS_ERR_UNSUPPORTED = -22 +,
+  UCS_ERR_REJECTED = -23 +, UCS_ERR_NOT_CONNECTED = -24 +, UCS_ERR_CONNECTION_RESET = -25 +, UCS_ERR_FIRST_LINK_FAILURE = -40 +,
+  UCS_ERR_LAST_LINK_FAILURE = -59 +, UCS_ERR_FIRST_ENDPOINT_FAILURE = -60 +, UCS_ERR_ENDPOINT_TIMEOUT = -80 +, UCS_ERR_LAST_ENDPOINT_FAILURE = -89 +,
+  UCS_ERR_LAST = -100 +
+ }
 Status codes. More...
 
enum  ucs_thread_mode_t { UCS_THREAD_MODE_SINGLE +, UCS_THREAD_MODE_SERIALIZED +, UCS_THREAD_MODE_MULTI +, UCS_THREAD_MODE_LAST + }
 Thread sharing mode. More...
 
+ + + + + + + + + + + + + + + + + +

+Functions

ucs_status_t ucs_async_set_event_handler (ucs_async_mode_t mode, int event_fd, ucs_event_set_types_t events, ucs_async_event_cb_t cb, void *arg, ucs_async_context_t *async)
 
ucs_status_t ucs_async_add_timer (ucs_async_mode_t mode, ucs_time_t interval, ucs_async_event_cb_t cb, void *arg, ucs_async_context_t *async, int *timer_id_p)
 
ucs_status_t ucs_async_remove_handler (int id, int sync)
 
ucs_status_t ucs_async_modify_handler (int fd, ucs_event_set_types_t events)
 
ucs_status_t ucs_async_context_create (ucs_async_mode_t mode, ucs_async_context_t **async_p)
 Create an asynchronous execution context.
 
void ucs_async_context_destroy (ucs_async_context_t *async)
 Destroy the asynchronous execution context.
 
void ucs_async_poll (ucs_async_context_t *async)
 
+

Detailed Description

+

This section describes a concept of the Communication Resource and routines associated with the concept.

+

Data Structure Documentation

+ +

◆ ucs_sock_addr

+ +
+
+ + + + +
struct ucs_sock_addr
+
+

BSD socket address specification.

+
+ + + + + + + +
Data Fields
+const struct sockaddr * +addr +

Pointer to socket address

+
+socklen_t +addrlen +

Address length

+
+ +
+
+

Typedef Documentation

+ +

◆ ucs_async_event_cb_t

+ +
+
+ + + + +
typedef void(* ucs_async_event_cb_t) (int id, ucs_event_set_types_t events, void *arg)
+
+

Async event callback.

+
Parameters
+ + + + +
idEvent id (timer or file descriptor).
eventsThe events that triggered the callback.
argUser-defined argument.
+
+
+ +
+
+ +

◆ ucs_sock_addr_t

+ +
+
+ + + + +
typedef struct ucs_sock_addr ucs_sock_addr_t
+
+

BSD socket address specification.

+ +
+
+ +

◆ ucs_memory_type_t

+ +
+
+ + + + +
typedef enum ucs_memory_type ucs_memory_type_t
+
+

List of supported memory types.

+ +
+
+ +

◆ ucs_time_t

+ +
+
+ + + + +
typedef unsigned long ucs_time_t
+
+

UCS time units. These are not necessarily aligned with metric time units. MUST compare short time values with UCS_SHORT_TIME_CMP to handle wrap-around.

+ +
+
+ +

◆ ucs_status_ptr_t

+ +
+
+ + + + +
typedef void* ucs_status_ptr_t
+
+

A pointer can represent one of these values:

    +
  • NULL / UCS_OK
  • +
  • Error code pointer (UCS_ERR_xx)
  • +
  • Valid pointer
  • +
+ +
+
+

Enumeration Type Documentation

+ +

◆ ucs_callbackq_flags

+ +
+
+ + + + +
enum ucs_callbackq_flags
+
+

Copyright (c) NVIDIA CORPORATION & AFFILIATES, 2023. ALL RIGHTS RESERVED.

+

See file LICENSE for terms.

+

Callback backward compatibility flags

+ + + +
Enumerator
UCS_CALLBACKQ_FLAG_FAST 

Fast-path (best effort)

+
UCS_CALLBACKQ_FLAG_ONESHOT 

Call the callback only once (cannot be used with FAST)

+
+ +
+
+ +

◆ ucs_memory_type

+ +
+
+ + + + +
enum ucs_memory_type
+
+

List of supported memory types.

+ + + + + + + + + + + + +
Enumerator
UCS_MEMORY_TYPE_HOST 

Default system memory

+
UCS_MEMORY_TYPE_CUDA 

NVIDIA CUDA memory

+
UCS_MEMORY_TYPE_CUDA_MANAGED 

NVIDIA CUDA managed (or unified) memory

+
UCS_MEMORY_TYPE_ROCM 

AMD ROCM memory

+
UCS_MEMORY_TYPE_ROCM_MANAGED 

AMD ROCM managed system memory

+
UCS_MEMORY_TYPE_RDMA 

RDMA device memory

+
UCS_MEMORY_TYPE_ZE_HOST 

Intel ZE memory (USM host)

+
UCS_MEMORY_TYPE_ZE_DEVICE 

Intel ZE memory (USM device)

+
UCS_MEMORY_TYPE_ZE_MANAGED 

Intel ZE managed memory (USM shared)

+
UCS_MEMORY_TYPE_LAST 
UCS_MEMORY_TYPE_UNKNOWN 
+ +
+
+ +

◆ ucs_status_t

+ +
+
+ + + + +
enum ucs_status_t
+
+
Note
In order to evaluate the necessary steps to recover from a certain error, all error codes which can be returned by the external API are grouped by the largest entity permanently effected by the error. Each group ranges between its UCS_ERR_FIRST_<name> and UCS_ERR_LAST_<name> enum values. For example, if a link fails it may be sufficient to destroy (and possibly replace) it, in contrast to an endpoint-level error.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Enumerator
UCS_OK 
UCS_INPROGRESS 
UCS_ERR_NO_MESSAGE 
UCS_ERR_NO_RESOURCE 
UCS_ERR_IO_ERROR 
UCS_ERR_NO_MEMORY 
UCS_ERR_INVALID_PARAM 
UCS_ERR_UNREACHABLE 
UCS_ERR_INVALID_ADDR 
UCS_ERR_NOT_IMPLEMENTED 
UCS_ERR_MESSAGE_TRUNCATED 
UCS_ERR_NO_PROGRESS 
UCS_ERR_BUFFER_TOO_SMALL 
UCS_ERR_NO_ELEM 
UCS_ERR_SOME_CONNECTS_FAILED 
UCS_ERR_NO_DEVICE 
UCS_ERR_BUSY 
UCS_ERR_CANCELED 
UCS_ERR_SHMEM_SEGMENT 
UCS_ERR_ALREADY_EXISTS 
UCS_ERR_OUT_OF_RANGE 
UCS_ERR_TIMED_OUT 
UCS_ERR_EXCEEDS_LIMIT 
UCS_ERR_UNSUPPORTED 
UCS_ERR_REJECTED 
UCS_ERR_NOT_CONNECTED 
UCS_ERR_CONNECTION_RESET 
UCS_ERR_FIRST_LINK_FAILURE 
UCS_ERR_LAST_LINK_FAILURE 
UCS_ERR_FIRST_ENDPOINT_FAILURE 
UCS_ERR_ENDPOINT_TIMEOUT 
UCS_ERR_LAST_ENDPOINT_FAILURE 
UCS_ERR_LAST 
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ ucs_thread_mode_t

+ +
+
+ + + + +
enum ucs_thread_mode_t
+
+

Specifies thread sharing mode of an object.

+ + + + + +
Enumerator
UCS_THREAD_MODE_SINGLE 

Only the master thread can access (i.e. the thread that initialized the context; multiple threads may exist and never access)

+
UCS_THREAD_MODE_SERIALIZED 

Multiple threads can access, but only one at a time

+
UCS_THREAD_MODE_MULTI 

Multiple threads can access concurrently

+
UCS_THREAD_MODE_LAST 
+ +
+
+

Function Documentation

+ +

◆ ucs_async_set_event_handler()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t ucs_async_set_event_handler (ucs_async_mode_t mode,
int event_fd,
ucs_event_set_types_t events,
ucs_async_event_cb_t cb,
void * arg,
ucs_async_context_t * async )
+
+

Register a file descriptor for monitoring (call handler upon events). Every fd can have only one handler.

+
Parameters
+ + + + + + + +
modeThread or signal.
event_fdFile descriptor to set handler for.
eventsEvents to wait on (UCS_EVENT_SET_EVxxx bits).
cbCallback function to execute.
argArgument to callback.
asyncAsync context to which events are delivered. If NULL, safety is up to the user.
+
+
+
Returns
Error code as defined by ucs_status_t.
+ +
+
+ +

◆ ucs_async_add_timer()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t ucs_async_add_timer (ucs_async_mode_t mode,
ucs_time_t interval,
ucs_async_event_cb_t cb,
void * arg,
ucs_async_context_t * async,
int * timer_id_p )
+
+

Add timer handler.

+
Parameters
+ + + + + + + +
modeThread or signal.
intervalTimer interval.
cbCallback function to execute.
argArgument to callback.
asyncAsync context to which events are delivered. If NULL, safety is up to the user.
timer_id_pFilled with timer id.
+
+
+
Returns
Error code as defined by ucs_status_t.
+ +
+
+ +

◆ ucs_async_remove_handler()

+ +
+
+ + + + + + + + + + + +
ucs_status_t ucs_async_remove_handler (int id,
int sync )
+
+

Remove an event handler (Timer or event file).

+
Parameters
+ + + +
idTimer/FD to remove.
syncIf nonzero, wait until the handler for this event is not running anymore. If called from the context of the callback, the handler will be removed immediately after the current callback returns.
+
+
+
Returns
Error code as defined by ucs_status_t.
+ +
+
+ +

◆ ucs_async_modify_handler()

+ +
+
+ + + + + + + + + + + +
ucs_status_t ucs_async_modify_handler (int fd,
ucs_event_set_types_t events )
+
+

Modify events mask for an existing event handler (event file).

+
Parameters
+ + + +
fdFile descriptor modify events for.
eventsNew set of events to wait on (UCS_EVENT_SET_EVxxx bits).
+
+
+
Returns
Error code as defined by ucs_status_t.
+ +
+
+ +

◆ ucs_async_context_create()

+ +
+
+ + + + + + + + + + + +
ucs_status_t ucs_async_context_create (ucs_async_mode_t mode,
ucs_async_context_t ** async_p )
+
+

Allocate and initialize an asynchronous execution context. This can be used to ensure safe event delivery.

+
Parameters
+ + + +
modeIndicates whether to use signals or polling threads for waiting.
async_pEvent context pointer to initialize.
+
+
+
Returns
Error code as defined by ucs_status_t.
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ ucs_async_context_destroy()

+ +
+
+ + + + + + + +
void ucs_async_context_destroy (ucs_async_context_t * async)
+
+

Clean up the async context, and release system resources if possible. The context memory released.

+
Parameters
+ + +
asyncAsynchronous context to clean up.
+
+
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ ucs_async_poll()

+ +
+
+ + + + + + + +
void ucs_async_poll (ucs_async_context_t * async)
+
+

Poll on async context.

+
Parameters
+ + +
asyncAsync context to poll on. NULL polls on all.
+
+
+ +
+
+
+
+ + + + diff --git a/api/v1.17/html/group___u_c_s___r_e_s_o_u_r_c_e_structucs__sock__addr.js b/api/v1.17/html/group___u_c_s___r_e_s_o_u_r_c_e_structucs__sock__addr.js new file mode 100644 index 00000000000..678b4b9c9df --- /dev/null +++ b/api/v1.17/html/group___u_c_s___r_e_s_o_u_r_c_e_structucs__sock__addr.js @@ -0,0 +1,5 @@ +var group___u_c_s___r_e_s_o_u_r_c_e_structucs__sock__addr = +[ + [ "addr", "group___u_c_s___r_e_s_o_u_r_c_e.html#a6294db86dc9327058b8a31cb4af87edb", null ], + [ "addrlen", "group___u_c_s___r_e_s_o_u_r_c_e.html#ac86eaa6362c3345d05c75bb4508ff2f1", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___a_m.html b/api/v1.17/html/group___u_c_t___a_m.html new file mode 100644 index 00000000000..dd7b817d25d --- /dev/null +++ b/api/v1.17/html/group___u_c_t___a_m.html @@ -0,0 +1,575 @@ + + + + + + + +UCX: UCT Active messages + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ + + + + + + + +

+Typedefs

typedef ucs_status_t(* uct_am_callback_t) (void *arg, void *data, size_t length, unsigned flags)
 Callback to process incoming active message.
 
typedef void(* uct_am_tracer_t) (void *arg, uct_am_trace_type_t type, uint8_t id, const void *data, size_t length, char *buffer, size_t max)
 Callback to trace active messages.
 
+ + + + + + + +

+Enumerations

enum  uct_msg_flags { UCT_SEND_FLAG_SIGNALED = UCS_BIT(0) +, UCT_SEND_FLAG_PEER_CHECK = UCS_BIT(1) + }
 Flags for active message send operation. More...
 
enum  uct_am_trace_type {
+  UCT_AM_TRACE_TYPE_SEND +, UCT_AM_TRACE_TYPE_RECV +, UCT_AM_TRACE_TYPE_SEND_DROP +, UCT_AM_TRACE_TYPE_RECV_DROP +,
+  UCT_AM_TRACE_TYPE_LAST +
+ }
 Trace types for active message tracer. More...
 
+ + + + + + + + + + + + + + + + + + + + +

+Functions

ucs_status_t uct_iface_set_am_handler (uct_iface_h iface, uint8_t id, uct_am_callback_t cb, void *arg, uint32_t flags)
 Set active message handler for the interface.
 
ucs_status_t uct_iface_set_am_tracer (uct_iface_h iface, uct_am_tracer_t tracer, void *arg)
 Set active message tracer for the interface.
 
void uct_iface_release_desc (void *desc)
 Release AM descriptor.
 
ucs_status_t uct_ep_am_short (uct_ep_h ep, uint8_t id, uint64_t header, const void *payload, unsigned length)
 
ucs_status_t uct_ep_am_short_iov (uct_ep_h ep, uint8_t id, const uct_iov_t *iov, size_t iovcnt)
 Short io-vector send operation.
 
ssize_t uct_ep_am_bcopy (uct_ep_h ep, uint8_t id, uct_pack_callback_t pack_cb, void *arg, unsigned flags)
 
ucs_status_t uct_ep_am_zcopy (uct_ep_h ep, uint8_t id, const void *header, unsigned header_length, const uct_iov_t *iov, size_t iovcnt, unsigned flags, uct_completion_t *comp)
 Send active message while avoiding local memory copy.
 
+

Detailed Description

+

Defines active message functions.

+

Typedef Documentation

+ +

◆ uct_am_callback_t

+ +
+
+ + + + +
typedef ucs_status_t(* uct_am_callback_t) (void *arg, void *data, size_t length, unsigned flags)
+
+

When the callback is called, flags indicates how data should be handled. If flags contain UCT_CB_PARAM_FLAG_DESC value, it means data is part of a descriptor which must be released later by uct_iface_release_desc by the user if the callback returns UCS_INPROGRESS.

+
Parameters
+ + + + + +
[in]argUser-defined argument.
[in]dataPoints to the received data. This may be a part of a descriptor which may be released later.
[in]lengthLength of data.
[in]flagsMask with uct_cb_param_flags
+
+
+
Note
This callback could be set and released by uct_iface_set_am_handler function.
+
Return values
+ + + +
UCS_OK- descriptor was consumed, and can be released by the caller.
UCS_INPROGRESS- descriptor is owned by the callee, and would be released later. Supported only if flags contain UCT_CB_PARAM_FLAG_DESC value. Otherwise, this is an error.
+
+
+ +
+
+ +

◆ uct_am_tracer_t

+ +
+
+ + + + +
typedef void(* uct_am_tracer_t) (void *arg, uct_am_trace_type_t type, uint8_t id, const void *data, size_t length, char *buffer, size_t max)
+
+

Writes a string which represents active message contents into 'buffer'.

+
Parameters
+ + + + + + + + +
[in]argUser-defined argument.
[in]typeMessage type.
[in]idActive message id.
[in]dataPoints to the received data.
[in]lengthLength of data.
[out]bufferFilled with a debug information string.
[in]maxMaximal length of the string.
+
+
+ +
+
+

Enumeration Type Documentation

+ +

◆ uct_msg_flags

+ +
+
+ + + + +
enum uct_msg_flags
+
+ + + +
Enumerator
UCT_SEND_FLAG_SIGNALED 

Trigger UCT_EVENT_RECV_SIG event on remote side. Make best effort attempt to avoid triggering UCT_EVENT_RECV event. Ignored if not supported by interface.

+
UCT_SEND_FLAG_PEER_CHECK 

Forces checking connectivity to a peer. If the connection is not alive, an error callback will be invoked. If the flag is not set, there is no guarantee that a connectivity error could be detected.
+

+
+ +
+
+ +

◆ uct_am_trace_type

+ +
+
+ + + + +
enum uct_am_trace_type
+
+ + + + + + +
Enumerator
UCT_AM_TRACE_TYPE_SEND 
UCT_AM_TRACE_TYPE_RECV 
UCT_AM_TRACE_TYPE_SEND_DROP 
UCT_AM_TRACE_TYPE_RECV_DROP 
UCT_AM_TRACE_TYPE_LAST 
+ +
+
+

Function Documentation

+ +

◆ uct_iface_set_am_handler()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_iface_set_am_handler (uct_iface_h iface,
uint8_t id,
uct_am_callback_t cb,
void * arg,
uint32_t flags )
+
+

Only one handler can be set of each active message ID, and setting a handler replaces the previous value. If cb == NULL, the current handler is removed.

+
Parameters
+ + + + + + +
[in]ifaceInterface to set the active message handler for.
[in]idActive message id. Must be 0..UCT_AM_ID_MAX-1.
[in]cbActive message callback. NULL to clear.
[in]argActive message argument.
[in]flagsRequired callback flags
+
+
+
Returns
error code if the interface does not support active messages or requested callback flags
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_iface_set_am_tracer()

+ +
+
+ + + + + + + + + + + + + + + + +
ucs_status_t uct_iface_set_am_tracer (uct_iface_h iface,
uct_am_tracer_t tracer,
void * arg )
+
+

Sets a function which dumps active message debug information to a buffer, which is printed every time an active message is sent or received, when data tracing is on. Without the tracer, only transport-level information is printed.

+
Parameters
+ + + + +
[in]ifaceInterface to set the active message tracer for.
[in]tracerActive message tracer. NULL to clear.
[in]argTracer custom argument.
+
+
+ +
+
+ +

◆ uct_iface_release_desc()

+ +
+
+ + + + + + + +
void uct_iface_release_desc (void * desc)
+
+

Release active message descriptor desc, which was passed to the active message callback, and owned by the callee.

+
Parameters
+ + +
[in]descDescriptor to release.
+
+
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_ep_am_short()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_ep_am_short (uct_ep_h ep,
uint8_t id,
uint64_t header,
const void * payload,
unsigned length )
+
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_ep_am_short_iov()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_ep_am_short_iov (uct_ep_h ep,
uint8_t id,
const uct_iov_t * iov,
size_t iovcnt )
+
+

This routine sends a message using short protocol. The input data in iov array of uct_iov_t structures is sent to remote side to contiguous buffer keeping the order of the data in the array.

+
Parameters
+ + + + + +
[in]epDestination endpoint handle.
[in]idActive message id. Must be in range 0..UCT_AM_ID_MAX-1.
[in]iovPoints to an array of uct_iov_t structures. The iov pointer must be a valid address of an array of uct_iov_t structures. A particular structure pointer must be a valid address. A NULL terminated array is not required. stride and count fields in uct_iov_t structure are ignored in current implementation. The total size of the data buffers in the array is limited by uct_iface_attr::cap::am::max_short.
[in]iovcntSize of the iov data uct_iov_t structures array. If iovcnt is zero, the data is considered empty. iovcnt is limited by uct_iface_attr::cap::am::max_iov.
+
+
+
Returns
UCS_OK Operation completed successfully.
+
+UCS_ERR_NO_RESOURCE Could not start the operation due to lack of send resources.
+
+otherwise Error code.
+ +
+
+ +

◆ uct_ep_am_bcopy()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ssize_t uct_ep_am_bcopy (uct_ep_h ep,
uint8_t id,
uct_pack_callback_t pack_cb,
void * arg,
unsigned flags )
+
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_ep_am_zcopy()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_ep_am_zcopy (uct_ep_h ep,
uint8_t id,
const void * header,
unsigned header_length,
const uct_iov_t * iov,
size_t iovcnt,
unsigned flags,
uct_completion_t * comp )
+
+

The input data in iov array of uct_iov_t structures sent to remote side ("gather output"). Buffers in iov are processed in array order. This means that the function complete iov[0] before proceeding to iov[1], and so on.

+
Parameters
+ + + + + + + + + +
[in]epDestination endpoint handle.
[in]idActive message id. Must be in range 0..UCT_AM_ID_MAX-1.
[in]headerActive message header.
[in]header_lengthActive message header length in bytes.
[in]iovPoints to an array of uct_iov_t structures. The iov pointer must be a valid address of an array of uct_iov_t structures. A particular structure pointer must be a valid address. A NULL terminated array is not required.
[in]iovcntSize of the iov data uct_iov_t structures array. If iovcnt is zero, the data is considered empty. iovcnt is limited by uct_iface_attr::cap::am::max_iov.
[in]flagsActive message flags, see uct_msg_flags.
[in]compCompletion handle as defined by uct_completion_t.
+
+
+
Returns
UCS_OK Operation completed successfully.
+
+UCS_INPROGRESS Some communication operations are still in progress. If non-NULL comp is provided, it will be updated upon completion of these operations.
+
+UCS_ERR_NO_RESOURCE Could not start the operation due to lack of send resources.
+
Note
If the operation returns UCS_INPROGRESS, the memory buffers pointed to by iov array must not be modified until the operation is completed by comp. header can be released or changed.
+
Examples
uct_hello_world.c.
+
+ +
+
+
+
+ + + + diff --git a/api/v1.17/html/group___u_c_t___a_m_o.html b/api/v1.17/html/group___u_c_t___a_m_o.html new file mode 100644 index 00000000000..61ca4e61a6e --- /dev/null +++ b/api/v1.17/html/group___u_c_t___a_m_o.html @@ -0,0 +1,385 @@ + + + + + + + +UCX: UCT Atomic operations + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ + + + + + + + + + + + + + +

+Functions

ucs_status_t uct_ep_atomic_cswap64 (uct_ep_h ep, uint64_t compare, uint64_t swap, uint64_t remote_addr, uct_rkey_t rkey, uint64_t *result, uct_completion_t *comp)
 
ucs_status_t uct_ep_atomic_cswap32 (uct_ep_h ep, uint32_t compare, uint32_t swap, uint64_t remote_addr, uct_rkey_t rkey, uint32_t *result, uct_completion_t *comp)
 
ucs_status_t uct_ep_atomic32_post (uct_ep_h ep, uct_atomic_op_t opcode, uint32_t value, uint64_t remote_addr, uct_rkey_t rkey)
 
ucs_status_t uct_ep_atomic64_post (uct_ep_h ep, uct_atomic_op_t opcode, uint64_t value, uint64_t remote_addr, uct_rkey_t rkey)
 
ucs_status_t uct_ep_atomic32_fetch (uct_ep_h ep, uct_atomic_op_t opcode, uint32_t value, uint32_t *result, uint64_t remote_addr, uct_rkey_t rkey, uct_completion_t *comp)
 
ucs_status_t uct_ep_atomic64_fetch (uct_ep_h ep, uct_atomic_op_t opcode, uint64_t value, uint64_t *result, uint64_t remote_addr, uct_rkey_t rkey, uct_completion_t *comp)
 
+

Detailed Description

+

Defines atomic operations.

+

Function Documentation

+ +

◆ uct_ep_atomic_cswap64()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_ep_atomic_cswap64 (uct_ep_h ep,
uint64_t compare,
uint64_t swap,
uint64_t remote_addr,
uct_rkey_t rkey,
uint64_t * result,
uct_completion_t * comp )
+
+ +
+
+ +

◆ uct_ep_atomic_cswap32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_ep_atomic_cswap32 (uct_ep_h ep,
uint32_t compare,
uint32_t swap,
uint64_t remote_addr,
uct_rkey_t rkey,
uint32_t * result,
uct_completion_t * comp )
+
+ +
+
+ +

◆ uct_ep_atomic32_post()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_ep_atomic32_post (uct_ep_h ep,
uct_atomic_op_t opcode,
uint32_t value,
uint64_t remote_addr,
uct_rkey_t rkey )
+
+ +
+
+ +

◆ uct_ep_atomic64_post()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_ep_atomic64_post (uct_ep_h ep,
uct_atomic_op_t opcode,
uint64_t value,
uint64_t remote_addr,
uct_rkey_t rkey )
+
+ +
+
+ +

◆ uct_ep_atomic32_fetch()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_ep_atomic32_fetch (uct_ep_h ep,
uct_atomic_op_t opcode,
uint32_t value,
uint32_t * result,
uint64_t remote_addr,
uct_rkey_t rkey,
uct_completion_t * comp )
+
+ +
+
+ +

◆ uct_ep_atomic64_fetch()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_ep_atomic64_fetch (uct_ep_h ep,
uct_atomic_op_t opcode,
uint64_t value,
uint64_t * result,
uint64_t remote_addr,
uct_rkey_t rkey,
uct_completion_t * comp )
+
+ +
+
+
+
+ + + + diff --git a/api/v1.17/html/group___u_c_t___a_p_i.html b/api/v1.17/html/group___u_c_t___a_p_i.html new file mode 100644 index 00000000000..d41f221a1a8 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___a_p_i.html @@ -0,0 +1,132 @@ + + + + + + + +UCX: Unified Communication Transport (UCT) API + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Unified Communication Transport (UCT) API
+
+
+ + + + + + + + + + + + + + + + + + +

+Topics

 UCT Communication Resource
 
 UCT Communication Context
 
 UCT Memory Domain
 
 UCT Active messages
 
 UCT Remote memory access operations
 
 UCT Atomic operations
 
 UCT Tag matching operations
 
 UCT client-server operations
 
+

Detailed Description

+

This section describes UCT API.

+
+
+ + + + diff --git a/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html b/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html new file mode 100644 index 00000000000..af2511160db --- /dev/null +++ b/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html @@ -0,0 +1,1568 @@ + + + + + + + +UCX: UCT client-server operations + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
UCT client-server operations
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Data Structures

struct  uct_ep_connect_params
 Parameters for connecting a UCT endpoint by uct_ep_connect. More...
 
struct  uct_cm_attr
 Connection manager attributes, capabilities and limitations. More...
 
struct  uct_listener_attr
 UCT listener attributes, capabilities and limitations. More...
 
struct  uct_listener_params
 Parameters for creating a listener object uct_listener_h by uct_listener_create. More...
 
struct  uct_cm_ep_priv_data_pack_args
 Arguments to the client-server private data pack callback. More...
 
struct  uct_cm_ep_resolve_args
 Arguments to the client-server resolved callback. More...
 
struct  uct_cm_remote_data
 Data received from the remote peer. More...
 
struct  uct_cm_listener_conn_request_args
 Arguments to the listener's connection request callback. More...
 
struct  uct_cm_ep_client_connect_args
 Arguments to the client's connect callback. More...
 
struct  uct_cm_ep_server_conn_notify_args
 Arguments to the server's notify callback. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef struct uct_cm_ep_priv_data_pack_args uct_cm_ep_priv_data_pack_args_t
 Arguments to the client-server private data pack callback.
 
typedef struct uct_cm_ep_resolve_args uct_cm_ep_resolve_args_t
 Arguments to the client-server resolved callback.
 
typedef struct uct_cm_remote_data uct_cm_remote_data_t
 Data received from the remote peer.
 
typedef struct uct_cm_listener_conn_request_args uct_cm_listener_conn_request_args_t
 Arguments to the listener's connection request callback.
 
typedef struct uct_cm_ep_client_connect_args uct_cm_ep_client_connect_args_t
 Arguments to the client's connect callback.
 
typedef struct uct_cm_ep_server_conn_notify_args uct_cm_ep_server_conn_notify_args_t
 Arguments to the server's notify callback.
 
typedef void(* uct_sockaddr_conn_request_callback_t) (uct_iface_h iface, void *arg, uct_conn_request_h conn_request, const void *conn_priv_data, size_t length)
 Callback to process an incoming connection request on the server side.
 
typedef void(* uct_cm_listener_conn_request_callback_t) (uct_listener_h listener, void *arg, const uct_cm_listener_conn_request_args_t *conn_req_args)
 Callback to process an incoming connection request on the server side listener in a connection manager.
 
typedef void(* uct_cm_ep_server_conn_notify_callback_t) (uct_ep_h ep, void *arg, const uct_cm_ep_server_conn_notify_args_t *connect_args)
 Callback to process an incoming connection establishment acknowledgment on the server side listener, from the client, which indicates that the client side is connected. The callback also notifies the server side of a local error on a not-yet-connected endpoint.
 
typedef void(* uct_cm_ep_client_connect_callback_t) (uct_ep_h ep, void *arg, const uct_cm_ep_client_connect_args_t *connect_args)
 Callback to process an incoming connection response on the client side from the server or handle a local error on a not-yet-connected endpoint.
 
typedef void(* uct_ep_disconnect_cb_t) (uct_ep_h ep, void *arg)
 Callback to handle the disconnection of the remote peer.
 
typedef ssize_t(* uct_cm_ep_priv_data_pack_callback_t) (void *arg, const uct_cm_ep_priv_data_pack_args_t *pack_args, void *priv_data)
 Callback to fill the user's private data in a client-server flow.
 
typedef ucs_status_t(* uct_cm_ep_resolve_callback_t) (void *user_data, const uct_cm_ep_resolve_args_t *resolve_args)
 Callback to notify that the client side endpoint is bound to a local device.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Enumerations

enum  uct_cm_attr_field { UCT_CM_ATTR_FIELD_MAX_CONN_PRIV = UCS_BIT(0) + }
 UCT connection manager attributes field mask. More...
 
enum  uct_listener_attr_field { UCT_LISTENER_ATTR_FIELD_SOCKADDR = UCS_BIT(0) + }
 UCT listener attributes field mask. More...
 
enum  uct_listener_params_field { UCT_LISTENER_PARAM_FIELD_BACKLOG = UCS_BIT(0) +, UCT_LISTENER_PARAM_FIELD_CONN_REQUEST_CB = UCS_BIT(1) +, UCT_LISTENER_PARAM_FIELD_USER_DATA = UCS_BIT(2) + }
 UCT listener created by uct_listener_create parameters field mask. More...
 
enum  uct_ep_connect_params_field { UCT_EP_CONNECT_PARAM_FIELD_PRIVATE_DATA = UCS_BIT(0) +, UCT_EP_CONNECT_PARAM_FIELD_PRIVATE_DATA_LENGTH = UCS_BIT(1) + }
 UCT endpoint connected by uct_ep_connect parameters field mask. More...
 
enum  uct_cm_ep_priv_data_pack_args_field { UCT_CM_EP_PRIV_DATA_PACK_ARGS_FIELD_DEVICE_NAME = UCS_BIT(0) + }
 Client-Server private data pack callback arguments field mask. More...
 
enum  uct_cm_ep_resolve_args_field { UCT_CM_EP_RESOLVE_ARGS_FIELD_DEV_NAME = UCS_BIT(0) +, UCT_CM_EP_RESOLVE_ARGS_FIELD_STATUS = UCS_BIT(1) + }
 Client-Server resolve callback arguments field mask. More...
 
enum  uct_cm_remote_data_field { UCT_CM_REMOTE_DATA_FIELD_DEV_ADDR = UCS_BIT(0) +, UCT_CM_REMOTE_DATA_FIELD_DEV_ADDR_LENGTH = UCS_BIT(1) +, UCT_CM_REMOTE_DATA_FIELD_CONN_PRIV_DATA = UCS_BIT(2) +, UCT_CM_REMOTE_DATA_FIELD_CONN_PRIV_DATA_LENGTH = UCS_BIT(3) + }
 Remote data attributes field mask. More...
 
enum  uct_cm_listener_conn_request_args_field { UCT_CM_LISTENER_CONN_REQUEST_ARGS_FIELD_DEV_NAME = UCS_BIT(0) +, UCT_CM_LISTENER_CONN_REQUEST_ARGS_FIELD_CONN_REQUEST = UCS_BIT(1) +, UCT_CM_LISTENER_CONN_REQUEST_ARGS_FIELD_REMOTE_DATA = UCS_BIT(2) +, UCT_CM_LISTENER_CONN_REQUEST_ARGS_FIELD_CLIENT_ADDR = UCS_BIT(3) + }
 Listener's connection request callback arguments field mask. More...
 
enum  uct_cm_ep_client_connect_args_field { UCT_CM_EP_CLIENT_CONNECT_ARGS_FIELD_REMOTE_DATA = UCS_BIT(0) +, UCT_CM_EP_CLIENT_CONNECT_ARGS_FIELD_STATUS = UCS_BIT(1) + }
 Field mask flags for client-side connection established callback. More...
 
enum  uct_cm_ep_server_conn_notify_args_field { UCT_CM_EP_SERVER_CONN_NOTIFY_ARGS_FIELD_STATUS = UCS_BIT(0) + }
 Field mask flags for server-side connection established notification callback. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

ucs_status_t uct_iface_accept (uct_iface_h iface, uct_conn_request_h conn_request)
 Accept connection request.
 
ucs_status_t uct_iface_reject (uct_iface_h iface, uct_conn_request_h conn_request)
 Reject connection request. Will invoke an error handler uct_error_handler_t on the remote transport interface, if set.
 
ucs_status_t uct_ep_connect (uct_ep_h ep, const uct_ep_connect_params_t *params)
 Connect a client side endpoint after it is bound to a local network device, i.e. uct_ep_params_t::cm_resolve_cb was invoked.
 
ucs_status_t uct_ep_disconnect (uct_ep_h ep, unsigned flags)
 Initiate a disconnection of an endpoint connected to a sockaddr by a connection manager uct_cm_h.
 
ucs_status_t uct_cm_open (uct_component_h component, uct_worker_h worker, const uct_cm_config_t *config, uct_cm_h *cm_p)
 Open a connection manager.
 
void uct_cm_close (uct_cm_h cm)
 Close a connection manager.
 
ucs_status_t uct_cm_query (uct_cm_h cm, uct_cm_attr_t *cm_attr)
 Get connection manager attributes.
 
ucs_status_t uct_cm_config_read (uct_component_h component, const char *env_prefix, const char *filename, uct_cm_config_t **config_p)
 Read the configuration for a connection manager.
 
ucs_status_t uct_cm_client_ep_conn_notify (uct_ep_h ep)
 Notify the server about client-side connection establishment.
 
ucs_status_t uct_listener_create (uct_cm_h cm, const struct sockaddr *saddr, socklen_t socklen, const uct_listener_params_t *params, uct_listener_h *listener_p)
 Create a new transport listener object.
 
void uct_listener_destroy (uct_listener_h listener)
 Destroy a transport listener.
 
ucs_status_t uct_listener_reject (uct_listener_h listener, uct_conn_request_h conn_request)
 Reject a connection request.
 
ucs_status_t uct_listener_query (uct_listener_h listener, uct_listener_attr_t *listener_attr)
 Get attributes specific to a particular listener.
 
+

Detailed Description

+

Defines client-server operations. The client-server API allows the connection establishment between an active side - a client, and its peer - the passive side - a server. The connection can be established through a UCT transport that supports listening and connecting via IP address and port (listening can also be on INADDR_ANY).

+

The following is a general overview of the operations on the server side:

+

Connecting: uct_cm_open Open a connection manager. uct_listener_create Create a listener on the CM and start listening on a given IP,port / INADDR_ANY. uct_cm_listener_conn_request_callback_t This callback is invoked by the UCT transport to handle an incoming connection request from a client. Accept or reject the client's connection request. uct_ep_create Connect to the client by creating an endpoint if the request is accepted. The server creates a new endpoint for every connection request that it accepts. uct_cm_ep_server_conn_notify_callback_t This callback is invoked by the UCT transport to handle the connection notification from the client.

Note
The private data which the server should send to the client can be either provided directly to uct_ep_create, or filled by uct_cm_ep_priv_data_pack_callback_t provided to uct_ep_create.
+
+In order to reject a connection request, can either call uct_listener_reject or return failure status as defined by ucs_status_t from uct_cm_ep_priv_data_pack_callback_t.
+

Disconnecting: uct_ep_disconnect Disconnect the server's endpoint from the client. Can be called when initiating a disconnect or when receiving a disconnect notification from the remote side. uct_ep_disconnect_cb_t This callback is invoked by the UCT transport when the client side calls uct_ep_disconnect as well. uct_ep_destroy Destroy the endpoint connected to the remote peer. If this function is called before the endpoint was disconnected, the uct_ep_disconnect_cb_t will not be invoked.

+

Destroying the server's resources: uct_listener_destroy Destroy the listener object. uct_cm_close Close the connection manager.

+

The following is a general overview of the operations on the client side:

+

Connecting: uct_cm_open Open a connection manager. uct_ep_create Create an endpoint for establishing a connection to the server. uct_cm_ep_resolve_callback_t This callback is invoked on the client side of the connection manager, after the remote server address was resolved to the local device to be used for connection establishment. uct_ep_connect This function should be called on the client side, in order to send private data and resume connection establishment, following an address-resolved notification via uct_cm_ep_resolve_callback_t. uct_cm_ep_client_connect_callback_t This callback is invoked by the UCT transport to handle a connection response from the server. After invoking this callback, the UCT transport will finalize the client's connection to the server. uct_cm_client_ep_conn_notify After the client's connection establishment is completed, the client should call this function in which it sends a notification message to the server stating that it (the client) is connected. The notification message that is sent depends on the transport's implementation.

+

Disconnecting: uct_ep_disconnect Disconnect the client's endpoint from the server. Can be called when initiating a disconnect or when receiving a disconnect notification from the remote side. uct_ep_disconnect_cb_t This callback is invoked by the UCT transport when the server side calls uct_ep_disconnect as well. uct_ep_destroy Destroy the endpoint connected to the remote peer.

+

Destroying the client's resources: uct_cm_close Close the connection manager.

+

Data Structure Documentation

+ +

◆ uct_ep_connect_params

+ +
+
+ + + + +
struct uct_ep_connect_params
+
+
+ + + + + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from uct_ep_connect_params_field. Fields not specified by this mask will be ignored.

+
+const void * +private_data +

User's private data to be passed from client to server.

+
+size_t +private_data_length +

Length of uct_ep_connect_params::private_data, the maximal allowed value is indicated by the uct_cm_attr::max_conn_priv.

+
+ +
+
+ +

◆ uct_cm_attr

+ +
+
+ + + + +
struct uct_cm_attr
+
+
+ + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from uct_cm_attr_field. Fields not specified by this mask will be ignored.

+
+size_t +max_conn_priv +

Max size of the connection manager's private data used for connection establishment with sockaddr.

+
+ +
+
+ +

◆ uct_listener_attr

+ +
+
+ + + + +
struct uct_listener_attr
+
+
+ + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from uct_listener_attr_field. Fields not specified by this mask will be ignored.

+
+struct sockaddr_storage +sockaddr +

Sockaddr on which this listener is listening.

+
+ +
+
+ +

◆ uct_listener_params

+ +
+
+ + + + +
struct uct_listener_params
+
+
+ + + + + + + + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from uct_listener_params_field. Fields not specified by this mask will be ignored.

+
+int +backlog +

Backlog of incoming connection requests. If specified, must be a positive value. If not specified, each CM component will use its maximal allowed value, based on the system's setting.

+
+uct_cm_listener_conn_request_callback_t +conn_request_cb +

Callback function for handling incoming connection requests.

+
+void * +user_data +

User data associated with the listener.

+
+ +
+
+ +

◆ uct_cm_ep_priv_data_pack_args

+ +
+
+ + + + +
struct uct_cm_ep_priv_data_pack_args
+
+

Used with the client-server API on a connection manager.

+
+ + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from uct_cm_ep_priv_data_pack_args_field. Fields not specified by this mask should not be accessed by the callback.

+
+char +dev_name[UCT_DEVICE_NAME_MAX] +

Device name. This routine may fill the user's private data according to the given device name. The device name that is passed to this routine, corresponds to uct_tl_resource_desc_t::dev_name as returned from uct_md_query_tl_resources.

+
+ +
+
+ +

◆ uct_cm_ep_resolve_args

+ +
+
+ + + + +
struct uct_cm_ep_resolve_args
+
+

Used with the client-server API on a connection manager.

+
+ + + + + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from uct_cm_ep_resolve_args_field. Fields not specified by this mask should not be accessed by the callback.

+
+char +dev_name[UCT_DEVICE_NAME_MAX] +

Device name indicates the device that the endpoint was bound to during address and route resolution. The device name that is passed to this callback corresponds to uct_tl_resource_desc_t::dev_name as returned from uct_md_query_tl_resources.

+
+ucs_status_t +status +

Indicates address resolution status: UCS_OK - address of the remote server was resolved successfully. UCS_ERR_UNREACHABLE - the remote server is unreachable. Otherwise - indicates an internal connection establishment error on the local (client) side.

+
+ +
+
+ +

◆ uct_cm_remote_data

+ +
+
+ + + + +
struct uct_cm_remote_data
+
+

The remote peer's device address, the data received from it and their lengths. Used with the client-server API on a connection manager.

+
+ + + + + + + + + + + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from uct_cm_remote_data_field. Fields not specified by this mask will be ignored.

+
+const uct_device_addr_t * +dev_addr +

Device address of the remote peer.

+
+size_t +dev_addr_length +

Length of the remote device address.

+
+const void * +conn_priv_data +

Pointer to the received data. This is the private data that was passed to uct_ep_params_t::sockaddr_pack_cb.

+
+size_t +conn_priv_data_length +

Length of the received data from the peer.

+
+ +
+
+ +

◆ uct_cm_listener_conn_request_args

+ +
+
+ + + + +
struct uct_cm_listener_conn_request_args
+
+

The local device name, connection request handle and the data the client sent. Used with the client-server API on a connection manager.

+
+ + + + + + + + + + + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from uct_cm_listener_conn_request_args_field. Fields not specified by this mask should not be accessed by the callback.

+
+char +dev_name[UCT_DEVICE_NAME_MAX] +

Local device name which handles the incoming connection request.

+
+uct_conn_request_h +conn_request +

Connection request handle. Can be passed to this callback from the transport and will be used by it to accept or reject the connection request from the client.

+
+const uct_cm_remote_data_t * +remote_data +

Remote data from the client.

+
+ucs_sock_addr_t +client_address +

Client's address.

+
+ +
+
+ +

◆ uct_cm_ep_client_connect_args

+ +
+
+ + + + +
struct uct_cm_ep_client_connect_args
+
+

Used with the client-server API on a connection manager.

+
+ + + + + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from uct_cm_ep_client_connect_args_field. Fields not specified by this mask should not be accessed by the callback.

+
+const uct_cm_remote_data_t * +remote_data +

Remote data from the server.

+
+ucs_status_t +status +

Indicates the connection establishment response from the remote server: UCS_OK - the remote server accepted the connection request. UCS_ERR_REJECTED - the remote server rejected the connection request. UCS_ERR_CONNECTION_RESET - the server's connection was reset during the connection establishment to the client. Otherwise - indicates an internal connection establishment error on the local (client) side.

+
+ +
+
+ +

◆ uct_cm_ep_server_conn_notify_args

+ +
+
+ + + + +
struct uct_cm_ep_server_conn_notify_args
+
+

Used with the client-server API on a connection manager.

+
+ + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from uct_cm_ep_server_conn_notify_args_field. Fields not specified by this mask should not be accessed by the callback.

+
+ucs_status_t +status +

Indicates the client's ucs_status_t status: UCS_OK - the client completed its connection establishment and called uct_cm_client_ep_conn_notify UCS_ERR_CONNECTION_RESET - the client's connection was reset during the connection establishment to the server. Otherwise - indicates an internal connection establishment error on the local (server) side.

+
+ +
+
+

Typedef Documentation

+ +

◆ uct_cm_ep_priv_data_pack_args_t

+ +
+
+

Used with the client-server API on a connection manager.

+ +
+
+ +

◆ uct_cm_ep_resolve_args_t

+ +
+
+

Used with the client-server API on a connection manager.

+ +
+
+ +

◆ uct_cm_remote_data_t

+ +
+
+ + + + +
typedef struct uct_cm_remote_data uct_cm_remote_data_t
+
+

The remote peer's device address, the data received from it and their lengths. Used with the client-server API on a connection manager.

+ +
+
+ +

◆ uct_cm_listener_conn_request_args_t

+ +
+
+

The local device name, connection request handle and the data the client sent. Used with the client-server API on a connection manager.

+ +
+
+ +

◆ uct_cm_ep_client_connect_args_t

+ +
+
+

Used with the client-server API on a connection manager.

+ +
+
+ +

◆ uct_cm_ep_server_conn_notify_args_t

+ +
+
+

Used with the client-server API on a connection manager.

+ +
+
+ +

◆ uct_sockaddr_conn_request_callback_t

+ +
+
+ + + + +
typedef void(* uct_sockaddr_conn_request_callback_t) (uct_iface_h iface, void *arg, uct_conn_request_h conn_request, const void *conn_priv_data, size_t length)
+
+

This callback routine will be invoked on the server side upon receiving an incoming connection request. It should be set by the server side while initializing an interface. Incoming data is placed inside the conn_priv_data buffer. This callback has to be thread safe. Other than communication progress routines, it is allowed to call other UCT communication routines from this callback.

+
Parameters
+ + + + + + +
[in]ifaceTransport interface.
[in]argUser defined argument for this callback.
[in]conn_requestTransport level connection request. The user should accept or reject the request by calling uct_iface_accept or uct_iface_reject routines respectively. conn_request should not be used outside the scope of this callback.
[in]conn_priv_dataPoints to the received data. This is the private data that was passed to the uct_ep_params_t::sockaddr_pack_cb on the client side.
[in]lengthLength of the received data.
+
+
+ +
+
+ +

◆ uct_cm_listener_conn_request_callback_t

+ +
+
+ + + + +
typedef void(* uct_cm_listener_conn_request_callback_t) (uct_listener_h listener, void *arg, const uct_cm_listener_conn_request_args_t *conn_req_args)
+
+

This callback routine will be invoked on the server side upon receiving an incoming connection request. It should be set by the server side while initializing a listener in a connection manager. This callback has to be thread safe. Other than communication progress routines, it is allowed to call other UCT communication routines from this callback.

+
Parameters
+ + + + +
[in]listenerTransport listener.
[in]argUser argument for this callback as defined in uct_listener_params_t::user_data
[in]conn_req_argsListener's arguments to handle the connection request from the client.
+
+
+ +
+
+ +

◆ uct_cm_ep_server_conn_notify_callback_t

+ +
+
+ + + + +
typedef void(* uct_cm_ep_server_conn_notify_callback_t) (uct_ep_h ep, void *arg, const uct_cm_ep_server_conn_notify_args_t *connect_args)
+
+

This callback routine will be invoked on the server side upon receiving an incoming connection establishment acknowledgment from the client, which is sent from it once the client is connected to the server. Used to connect the server side to the client or handle an error from it - depending on the status field. This callback will also be invoked in the event of an internal local error with a failed uct_cm_ep_server_conn_notify_args::status if the endpoint was not connected yet. This callback has to be thread safe. Other than communication progress routines, it is permissible to call other UCT communication routines from this callback.

+
Parameters
+ + + + +
[in]epTransport endpoint.
[in]argUser argument for this callback as defined in uct_ep_params_t::user_data
[in]connect_argsServer's connect callback arguments.
+
+
+ +
+
+ +

◆ uct_cm_ep_client_connect_callback_t

+ +
+
+ + + + +
typedef void(* uct_cm_ep_client_connect_callback_t) (uct_ep_h ep, void *arg, const uct_cm_ep_client_connect_args_t *connect_args)
+
+

This callback routine will be invoked on the client side upon receiving an incoming connection response from the server. Used to connect the client side to the server or handle an error from it - depending on the status field. This callback will also be invoked in the event of an internal local error with a failed uct_cm_ep_client_connect_args::status if the endpoint was not connected yet. This callback has to be thread safe. Other than communication progress routines, it is permissible to call other UCT communication routines from this callback.

+
Parameters
+ + + + +
[in]epTransport endpoint.
[in]argUser argument for this callback as defined in uct_ep_params_t::user_data.
[in]connect_argsClient's connect callback arguments
+
+
+ +
+
+ +

◆ uct_ep_disconnect_cb_t

+ +
+
+ + + + +
typedef void(* uct_ep_disconnect_cb_t) (uct_ep_h ep, void *arg)
+
+

This callback routine will be invoked on the client and server sides upon a disconnect of the remote peer. It will disconnect the given endpoint from the remote peer. This callback won't be invoked if the endpoint was not connected to the remote peer yet. This callback has to be thread safe. Other than communication progress routines, it is permissible to call other UCT communication routines from this callback.

+
Parameters
+ + + +
[in]epTransport endpoint to disconnect.
[in]argUser argument for this callback as defined in uct_ep_params_t::user_data.
+
+
+ +
+
+ +

◆ uct_cm_ep_priv_data_pack_callback_t

+ +
+
+ + + + +
typedef ssize_t(* uct_cm_ep_priv_data_pack_callback_t) (void *arg, const uct_cm_ep_priv_data_pack_args_t *pack_args, void *priv_data)
+
+

This callback routine will be invoked on the client side, before sending the transport's connection request to the server, or on the server side before sending a connection response to the client. This callback routine can be set when creating an endpoint. The user's private data should be placed inside the priv_data buffer to be sent to the remote side. The maximal allowed length of the private data is indicated by the field max_conn_priv inside uct_iface_attr or inside uct_cm_attr when using a connection manager. Communication progress routines should not be called from this callback. It is allowed to call other UCT communication routines from this callback.

+
Parameters
+ + + + +
[in]argUser defined argument for this callback.
[in]pack_argsHandle for the the private data packing.
[out]priv_dataUser's private data to be passed to the remote side.
+
+
+
Returns
Negative value indicates an error according to ucs_status_t. On success, a non-negative value indicates actual number of bytes written to the priv_data buffer.
+ +
+
+ +

◆ uct_cm_ep_resolve_callback_t

+ +
+
+ + + + +
typedef ucs_status_t(* uct_cm_ep_resolve_callback_t) (void *user_data, const uct_cm_ep_resolve_args_t *resolve_args)
+
+

This callback routine will be invoked, when the client side endpoint is bound to a local device. The callback routine can be set when creating an endpoint. Communication progress routines should not be called from this callback. It is allowed to call other UCT communication routines from this callback.

+
Parameters
+ + + +
[in]user_dataUser argument as defined in uct_ep_params_t::user_data.
[in]resolve_argsHandle for the extra arguments provided by the transport.
+
+
+
Returns
UCS_OK on success or error as defined in ucs_status_t.
+ +
+
+

Enumeration Type Documentation

+ +

◆ uct_cm_attr_field

+ +
+
+ + + + +
enum uct_cm_attr_field
+
+

The enumeration allows specifying which fields in uct_cm_attr_t are present, for backward compatibility support.

+ + +
Enumerator
UCT_CM_ATTR_FIELD_MAX_CONN_PRIV 

Enables uct_cm_attr::max_conn_priv

+
+ +
+
+ +

◆ uct_listener_attr_field

+ +
+
+ + + + +
enum uct_listener_attr_field
+
+

The enumeration allows specifying which fields in uct_listener_attr_t are present, for backward compatibility support.

+ + +
Enumerator
UCT_LISTENER_ATTR_FIELD_SOCKADDR 

Enables uct_listener_attr::sockaddr

+
+ +
+
+ +

◆ uct_listener_params_field

+ +
+
+ + + + +
enum uct_listener_params_field
+
+

The enumeration allows specifying which fields in uct_listener_params_t are present, for backward compatibility support.

+ + + + +
Enumerator
UCT_LISTENER_PARAM_FIELD_BACKLOG 

Enables uct_listener_params::backlog

+
UCT_LISTENER_PARAM_FIELD_CONN_REQUEST_CB 

Enables uct_listener_params::conn_request_cb

+
UCT_LISTENER_PARAM_FIELD_USER_DATA 

Enables uct_listener_params::user_data

+
+ +
+
+ +

◆ uct_ep_connect_params_field

+ +
+
+ + + + +
enum uct_ep_connect_params_field
+
+

The enumeration allows specifying which fields in uct_ep_connect_params_t are present, for backward compatibility support.

+ + + +
Enumerator
UCT_EP_CONNECT_PARAM_FIELD_PRIVATE_DATA 

Enables uct_ep_connect_params::private_data

+
UCT_EP_CONNECT_PARAM_FIELD_PRIVATE_DATA_LENGTH 

Enables uct_ep_connect_params::private_data_length

+
+ +
+
+ +

◆ uct_cm_ep_priv_data_pack_args_field

+ +
+
+

The enumeration allows specifying which fields in uct_cm_ep_priv_data_pack_args are present, for backward compatibility support.

+ + +
Enumerator
UCT_CM_EP_PRIV_DATA_PACK_ARGS_FIELD_DEVICE_NAME 

Enables uct_cm_ep_priv_data_pack_args::dev_name Indicates that dev_name field in uct_cm_ep_priv_data_pack_args_t is valid.

+
+ +
+
+ +

◆ uct_cm_ep_resolve_args_field

+ +
+
+

The enumeration allows specifying which fields in uct_cm_ep_resolve_args are present, for backward compatibility support.

+ + + +
Enumerator
UCT_CM_EP_RESOLVE_ARGS_FIELD_DEV_NAME 

Indicates that uct_cm_ep_resolve_args::dev_name is valid.

+
UCT_CM_EP_RESOLVE_ARGS_FIELD_STATUS 

Indicates that uct_cm_ep_resolve_args::status is valid.

+
+ +
+
+ +

◆ uct_cm_remote_data_field

+ +
+
+ + + + +
enum uct_cm_remote_data_field
+
+

The enumeration allows specifying which fields in uct_cm_remote_data are present, for backward compatibility support.

+ + + + + +
Enumerator
UCT_CM_REMOTE_DATA_FIELD_DEV_ADDR 

Enables uct_cm_remote_data::dev_addr

+
UCT_CM_REMOTE_DATA_FIELD_DEV_ADDR_LENGTH 

Enables uct_cm_remote_data::dev_addr_length

+
UCT_CM_REMOTE_DATA_FIELD_CONN_PRIV_DATA 

Enables uct_cm_remote_data::conn_priv_data

+
UCT_CM_REMOTE_DATA_FIELD_CONN_PRIV_DATA_LENGTH 

Enables uct_cm_remote_data::conn_priv_data_length

+
+ +
+
+ +

◆ uct_cm_listener_conn_request_args_field

+ +
+
+

The enumeration allows specifying which fields in uct_cm_listener_conn_request_args are present, for backward compatibility support.

+ + + + + +
Enumerator
UCT_CM_LISTENER_CONN_REQUEST_ARGS_FIELD_DEV_NAME 

Enables uct_cm_listener_conn_request_args::dev_name Indicates that dev_name field in uct_cm_listener_conn_request_args_t is valid.

+
UCT_CM_LISTENER_CONN_REQUEST_ARGS_FIELD_CONN_REQUEST 

Enables uct_cm_listener_conn_request_args::conn_request Indicates that conn_request field in uct_cm_listener_conn_request_args_t is valid.

+
UCT_CM_LISTENER_CONN_REQUEST_ARGS_FIELD_REMOTE_DATA 

Enables uct_cm_listener_conn_request_args::remote_data Indicates that remote_data field in uct_cm_listener_conn_request_args_t is valid.

+
UCT_CM_LISTENER_CONN_REQUEST_ARGS_FIELD_CLIENT_ADDR 

Enables uct_cm_listener_conn_request_args::client_address Indicates that client_address field in uct_cm_listener_conn_request_args_t is valid.

+
+ +
+
+ +

◆ uct_cm_ep_client_connect_args_field

+ +
+
+

The enumeration allows specifying which fields in uct_cm_ep_client_connect_args are present, for backward compatibility support.

+ + + +
Enumerator
UCT_CM_EP_CLIENT_CONNECT_ARGS_FIELD_REMOTE_DATA 

Enables uct_cm_ep_client_connect_args::remote_data

+
UCT_CM_EP_CLIENT_CONNECT_ARGS_FIELD_STATUS 

Enables uct_cm_ep_client_connect_args::status

+
+ +
+
+ +

◆ uct_cm_ep_server_conn_notify_args_field

+ +
+
+

The enumeration allows specifying which fields in uct_cm_ep_server_conn_notify_args are present, for backward compatibility support.

+ + +
Enumerator
UCT_CM_EP_SERVER_CONN_NOTIFY_ARGS_FIELD_STATUS 

Enables uct_cm_ep_server_conn_notify_args::status Indicates that status field in uct_cm_ep_server_conn_notify_args_t is valid.

+
+ +
+
+

Function Documentation

+ +

◆ uct_iface_accept()

+ +
+
+ + + + + + + + + + + +
ucs_status_t uct_iface_accept (uct_iface_h iface,
uct_conn_request_h conn_request )
+
+
Parameters
+ + + +
[in]ifaceTransport interface which generated connection request conn_request.
[in]conn_requestConnection establishment request passed as parameter of uct_sockaddr_conn_request_callback_t.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ uct_iface_reject()

+ +
+
+ + + + + + + + + + + +
ucs_status_t uct_iface_reject (uct_iface_h iface,
uct_conn_request_h conn_request )
+
+
Parameters
+ + + +
[in]ifaceInterface which generated connection establishment request conn_request.
[in]conn_requestConnection establishment request passed as parameter of uct_sockaddr_conn_request_callback_t.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ uct_ep_connect()

+ +
+
+ + + + + + + + + + + +
ucs_status_t uct_ep_connect (uct_ep_h ep,
const uct_ep_connect_params_t * params )
+
+

This non-blocking routine establishes connection of the client side endpoint and sends private data to the peer.

+
Parameters
+ + + +
[in]epEndpoint to connect.
[in]paramsParameters as defined in uct_ep_connect_params_t.
+
+
+
Returns
UCS_OK Operation has been initiated successfully. Other error codes as defined by ucs_status_t.
+ +
+
+ +

◆ uct_ep_disconnect()

+ +
+
+ + + + + + + + + + + +
ucs_status_t uct_ep_disconnect (uct_ep_h ep,
unsigned flags )
+
+

This non-blocking routine will send a disconnect notification on the endpoint, so that uct_ep_disconnect_cb_t will be called on the remote peer. The remote side should also call this routine when handling the initiator's disconnect. After a call to this function, the given endpoint may not be used for communications anymore. The uct_ep_flush / uct_iface_flush routines will guarantee that the disconnect notification is delivered to the remote peer. uct_ep_destroy should be called on this endpoint after invoking this routine and uct_ep_params::disconnect_cb was called.

+
Parameters
+ + + +
[in]epEndpoint to disconnect.
[in]flagsReserved for future use.
+
+
+
Returns
UCS_OK Operation has completed successfully. UCS_ERR_BUSY The ep is not connected yet (either uct_cm_ep_client_connect_callback_t or uct_cm_ep_server_conn_notify_callback_t was not invoked). UCS_INPROGRESS The disconnect request has been initiated, but the remote peer has not yet responded to this request, and consequently the registered callback uct_ep_disconnect_cb_t has not been invoked to handle the request. UCS_ERR_NOT_CONNECTED The ep is disconnected locally and remotely. Other error codes as defined by ucs_status_t .
+ +
+
+ +

◆ uct_cm_open()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_cm_open (uct_component_h component,
uct_worker_h worker,
const uct_cm_config_t * config,
uct_cm_h * cm_p )
+
+

Open a connection manager. All client server connection establishment operations are performed in the context of a specific connection manager.

Note
This is an alternative API for uct_iface_open_mode::UCT_IFACE_OPEN_MODE_SOCKADDR_SERVER and uct_iface_open_mode::UCT_IFACE_OPEN_MODE_SOCKADDR_CLIENT .
+
Parameters
+ + + + + +
[in]componentComponent on which to open the connection manager, as returned from uct_query_components.
[in]workerWorker on which to open the connection manager.
[in]configCM configuration options. Either obtained from uct_cm_config_read() function, or pointer to CM-specific structure that extends uct_cm_config_t.
[out]cm_pFilled with a handle to the connection manager.
+
+
+
Returns
Error code.
+ +
+
+ +

◆ uct_cm_close()

+ +
+
+ + + + + + + +
void uct_cm_close (uct_cm_h cm)
+
+
Parameters
+ + +
[in]cmConnection manager to close.
+
+
+ +
+
+ +

◆ uct_cm_query()

+ +
+
+ + + + + + + + + + + +
ucs_status_t uct_cm_query (uct_cm_h cm,
uct_cm_attr_t * cm_attr )
+
+

This routine queries the cm for its attributes uct_cm_attr_t.

+
Parameters
+ + + +
[in]cmConnection manager to query.
[out]cm_attrFilled with connection manager attributes.
+
+
+ +
+
+ +

◆ uct_cm_config_read()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_cm_config_read (uct_component_h component,
const char * env_prefix,
const char * filename,
uct_cm_config_t ** config_p )
+
+
Parameters
+ + + + + +
[in]componentRead the configuration of the connection manager on this component.
[in]env_prefixIf non-NULL, search for environment variables starting with this UCT_<prefix>_. Otherwise, search for environment variables starting with just UCT_.
[in]filenameIf non-NULL, read configuration from this file. If the file does not exist, or exists but cannot be opened or read, it will be ignored.
[out]config_pFilled with a pointer to the configuration.
+
+
+
Returns
Error code.
+ +
+
+ +

◆ uct_cm_client_ep_conn_notify()

+ +
+
+ + + + + + + +
ucs_status_t uct_cm_client_ep_conn_notify (uct_ep_h ep)
+
+

This routine should be called on the client side after the client completed establishing its connection to the server. The routine will send a notification message to the server indicating that the client is connected.

+
Parameters
+ + +
[in]epThe connected endpoint on the client side.
+
+
+
Returns
Error code.
+ +
+
+ +

◆ uct_listener_create()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_listener_create (uct_cm_h cm,
const struct sockaddr * saddr,
socklen_t socklen,
const uct_listener_params_t * params,
uct_listener_h * listener_p )
+
+

This routine creates a new listener on the given CM which will start listening on a given sockaddr.

+
Parameters
+ + + + + + +
[in]cmConnection manager on which to open the listener. This cm should not be closed as long as there are open listeners on it.
[in]saddrThe socket address to listen on.
[in]socklenThe saddr length.
[in]paramsUser defined uct_listener_params_t configurations for the listener_p.
[out]listener_pFilled with handle to the new listener.
+
+
+
Returns
Error code.
+ +
+
+ +

◆ uct_listener_destroy()

+ +
+
+ + + + + + + +
void uct_listener_destroy (uct_listener_h listener)
+
+
Parameters
+ + +
[in]listenerListener to destroy.
+
+
+ +
+
+ +

◆ uct_listener_reject()

+ +
+
+ + + + + + + + + + + +
ucs_status_t uct_listener_reject (uct_listener_h listener,
uct_conn_request_h conn_request )
+
+

This routine can be invoked on the server side. It rejects a connection request from the client.

+
Parameters
+ + + +
[in]listenerListener which will reject the connection request.
[in]conn_requestConnection establishment request passed as parameter of uct_cm_listener_conn_request_callback_t in uct_cm_listener_conn_request_args_t::conn_request.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+ +

◆ uct_listener_query()

+ +
+
+ + + + + + + + + + + +
ucs_status_t uct_listener_query (uct_listener_h listener,
uct_listener_attr_t * listener_attr )
+
+

This routine queries the listener for its attributes uct_listener_attr_t.

+
Parameters
+ + + +
[in]listenerListener object to query.
[out]listener_attrFilled with attributes of the listener.
+
+
+
Returns
Error code as defined by ucs_status_t
+ +
+
+
+
+ + + + diff --git a/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__attr.js b/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__attr.js new file mode 100644 index 00000000000..b3779ea2ee2 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__attr.js @@ -0,0 +1,5 @@ +var group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__attr = +[ + [ "field_mask", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a384bf8b975a0d90b7117f4e393684e3d", null ], + [ "max_conn_priv", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#adb462d4f30c639f7fb5a8a7d9702ddcf", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__ep__client__connect__args.js b/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__ep__client__connect__args.js new file mode 100644 index 00000000000..16f84b7347e --- /dev/null +++ b/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__ep__client__connect__args.js @@ -0,0 +1,6 @@ +var group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__ep__client__connect__args = +[ + [ "field_mask", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a07453861a47b7c717f6e89356f75398e", null ], + [ "remote_data", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#adebf71af7948cb58f3724d1b0c4151bb", null ], + [ "status", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ab34b457dd1e16034378445aeac010d4b", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__ep__priv__data__pack__args.js b/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__ep__priv__data__pack__args.js new file mode 100644 index 00000000000..21ee899ec5c --- /dev/null +++ b/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__ep__priv__data__pack__args.js @@ -0,0 +1,5 @@ +var group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__ep__priv__data__pack__args = +[ + [ "field_mask", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a2c613c2ce5d4a428c87a0d83849875ca", null ], + [ "dev_name", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a10c637e00793a55862826870bfe6499d", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__ep__resolve__args.js b/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__ep__resolve__args.js new file mode 100644 index 00000000000..157908b115f --- /dev/null +++ b/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__ep__resolve__args.js @@ -0,0 +1,6 @@ +var group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__ep__resolve__args = +[ + [ "field_mask", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#abca562cc9e4c45a606ae464815d6cf1a", null ], + [ "dev_name", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#af750fc4d3be08d8dcd81f452b1ba5ab4", null ], + [ "status", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#afc75b0697e4624831532a20013eb4c98", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__ep__server__conn__notify__args.js b/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__ep__server__conn__notify__args.js new file mode 100644 index 00000000000..89db85964cb --- /dev/null +++ b/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__ep__server__conn__notify__args.js @@ -0,0 +1,5 @@ +var group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__ep__server__conn__notify__args = +[ + [ "field_mask", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a96b97f088ce727e04b1de822227b3283", null ], + [ "status", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a0deb70821df070090ebef30cb70b66c2", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__listener__conn__request__args.js b/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__listener__conn__request__args.js new file mode 100644 index 00000000000..388c84c886a --- /dev/null +++ b/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__listener__conn__request__args.js @@ -0,0 +1,8 @@ +var group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__listener__conn__request__args = +[ + [ "field_mask", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ad79f7025c8f43a961b3f8d0501b45188", null ], + [ "dev_name", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a718770a6c8d147fadd63490c029de6d2", null ], + [ "conn_request", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#aec2a2194a329ef66262756de423a3cb2", null ], + [ "remote_data", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a333308d1c7eda2e28111dbe05b288746", null ], + [ "client_address", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ab9e98cce78462e28a6593a891f2aa3bc", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__remote__data.js b/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__remote__data.js new file mode 100644 index 00000000000..a6649d3ab85 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__remote__data.js @@ -0,0 +1,8 @@ +var group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__cm__remote__data = +[ + [ "field_mask", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#af27cfe2f1146f9e7f8481d192728640e", null ], + [ "dev_addr", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ada382f435e44b388e3e29b16a04c3808", null ], + [ "dev_addr_length", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a05768f24babff9b522b4845dc2672c55", null ], + [ "conn_priv_data", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a3557ea63ebf0f959c06ad78a592cd311", null ], + [ "conn_priv_data_length", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ad68a816000641cdaab8b7bae782c005d", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__ep__connect__params.js b/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__ep__connect__params.js new file mode 100644 index 00000000000..6d78b798614 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__ep__connect__params.js @@ -0,0 +1,6 @@ +var group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__ep__connect__params = +[ + [ "field_mask", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a360893687dea33e2451afc89b89cf858", null ], + [ "private_data", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#affe9b0a217e8e706f08da5b2efee3665", null ], + [ "private_data_length", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a3db99efa74cecf7060aad87e73922572", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__listener__attr.js b/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__listener__attr.js new file mode 100644 index 00000000000..3f276c79f92 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__listener__attr.js @@ -0,0 +1,5 @@ +var group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__listener__attr = +[ + [ "field_mask", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#abd499e7b852c6af527c8db5a010040b6", null ], + [ "sockaddr", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a8cc6f13deda40a11ae98cae547869342", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__listener__params.js b/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__listener__params.js new file mode 100644 index 00000000000..1f47af577b5 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__listener__params.js @@ -0,0 +1,7 @@ +var group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r_structuct__listener__params = +[ + [ "field_mask", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a2106149ec63faa5e1aebe7c7b1f941d6", null ], + [ "backlog", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a31658aea3303489537ffd68ecbd52f9c", null ], + [ "conn_request_cb", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a84a1de42f58965886c5d457480be3b2d", null ], + [ "user_data", "group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a8a9d41566f96e942418c48139ccede90", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___c_o_n_t_e_x_t.html b/api/v1.17/html/group___u_c_t___c_o_n_t_e_x_t.html new file mode 100644 index 00000000000..04e1e649141 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___c_o_n_t_e_x_t.html @@ -0,0 +1,433 @@ + + + + + + + +UCX: UCT Communication Context + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ + + + + +

+Enumerations

enum  uct_alloc_method_t {
+  UCT_ALLOC_METHOD_THP +, UCT_ALLOC_METHOD_MD +, UCT_ALLOC_METHOD_HEAP +, UCT_ALLOC_METHOD_MMAP +,
+  UCT_ALLOC_METHOD_HUGE +, UCT_ALLOC_METHOD_LAST +, UCT_ALLOC_METHOD_DEFAULT = UCT_ALLOC_METHOD_LAST +
+ }
 Memory allocation methods. More...
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Functions

ucs_status_t uct_worker_create (ucs_async_context_t *async, ucs_thread_mode_t thread_mode, uct_worker_h *worker_p)
 Create a worker object.
 
void uct_worker_destroy (uct_worker_h worker)
 Destroy a worker object.
 
void uct_worker_progress_register_safe (uct_worker_h worker, ucs_callback_t func, void *arg, unsigned flags, uct_worker_cb_id_t *id_p)
 Add a slow path callback function to a worker progress.
 
void uct_worker_progress_unregister_safe (uct_worker_h worker, uct_worker_cb_id_t *id_p)
 Remove a slow path callback function from worker's progress.
 
ucs_status_t uct_config_get (void *config, const char *name, char *value, size_t max)
 Get value by name from interface configuration (uct_iface_config_t), memory domain configuration (uct_md_config_t) or connection manager configuration (uct_cm_config_t).
 
ucs_status_t uct_config_modify (void *config, const char *name, const char *value)
 Modify interface configuration (uct_iface_config_t), memory domain configuration (uct_md_config_t) or connection manager configuration (uct_cm_config_t).
 
unsigned uct_worker_progress (uct_worker_h worker)
 Explicit progress for UCT worker.
 
+

Detailed Description

+

UCT context abstracts all the resources required for network communication. It is designed to enable either share or isolate resources for multiple programming models used by an application.

+

This section provides a detailed description of this concept and routines associated with it.

+

Enumeration Type Documentation

+ +

◆ uct_alloc_method_t

+ +
+
+ + + + +
enum uct_alloc_method_t
+
+ + + + + + + + +
Enumerator
UCT_ALLOC_METHOD_THP 

Allocate from OS using libc allocator with Transparent Huge Pages enabled

+
UCT_ALLOC_METHOD_MD 

Allocate using memory domain

+
UCT_ALLOC_METHOD_HEAP 

Allocate from heap using libc allocator

+
UCT_ALLOC_METHOD_MMAP 

Allocate from OS using mmap() syscall

+
UCT_ALLOC_METHOD_HUGE 

Allocate huge pages

+
UCT_ALLOC_METHOD_LAST 
UCT_ALLOC_METHOD_DEFAULT 

Use default method

+
+ +
+
+

Function Documentation

+ +

◆ uct_worker_create()

+ +
+
+ + + + + + + + + + + + + + + + +
ucs_status_t uct_worker_create (ucs_async_context_t * async,
ucs_thread_mode_t thread_mode,
uct_worker_h * worker_p )
+
+

The worker represents a progress engine. Multiple progress engines can be created in an application, for example to be used by multiple threads. Transports can allocate separate communication resources for every worker, so that every worker can be progressed independently of others.

+
Parameters
+ + + + +
[in]asyncContext for async event handlers. Must not be NULL.
[in]thread_modeThread access mode to the worker and all interfaces and endpoints associated with it.
[out]worker_pFilled with a pointer to the worker object.
+
+
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_worker_destroy()

+ +
+
+ + + + + + + +
void uct_worker_destroy (uct_worker_h worker)
+
+
Parameters
+ + +
[in]workerWorker object to destroy.
+
+
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_worker_progress_register_safe()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
void uct_worker_progress_register_safe (uct_worker_h worker,
ucs_callback_t func,
void * arg,
unsigned flags,
uct_worker_cb_id_t * id_p )
+
+

If *id_p is equal to UCS_CALLBACKQ_ID_NULL, this function will add a callback which will be invoked every time progress is made on the worker. *id_p will be updated with an id which refers to this callback and can be used in uct_worker_progress_unregister_safe to remove it from the progress path.

+
Parameters
+ + + + + + +
[in]workerHandle to the worker whose progress should invoke the callback.
[in]funcPointer to the callback function.
[in]argArgument for the callback function.
[in]flagsCallback flags, see ucs_callbackq_flags.
[in,out]id_pPoints to a location to store a callback identifier. If *id_p is equal to UCS_CALLBACKQ_ID_NULL, a callback will be added and *id_p will be replaced with a callback identifier which can be subsequently used to remove the callback. Otherwise, no callback will be added and *id_p will be left unchanged.
+
+
+
Note
This function is thread safe.
+ +
+
+ +

◆ uct_worker_progress_unregister_safe()

+ +
+
+ + + + + + + + + + + +
void uct_worker_progress_unregister_safe (uct_worker_h worker,
uct_worker_cb_id_t * id_p )
+
+

If *id_p is not equal to UCS_CALLBACKQ_ID_NULL, remove a callback which was previously added by uct_worker_progress_register_safe. *id_p will be reset to UCS_CALLBACKQ_ID_NULL.

+
Parameters
+ + + +
[in]workerHandle to the worker whose progress should invoke the callback.
[in,out]id_pPoints to a callback identifier which indicates the callback to remove. If *id_p is not equal to UCS_CALLBACKQ_ID_NULL, the callback will be removed and *id_p will be reset to UCS_CALLBACKQ_ID_NULL. If *id_p is equal to UCS_CALLBACKQ_ID_NULL, no operation will be performed and *id_p will be left unchanged.
+
+
+
Note
This function is thread safe.
+ +
+
+ +

◆ uct_config_get()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_config_get (void * config,
const char * name,
char * value,
size_t max )
+
+
Parameters
+ + + + + +
[in]configConfiguration to get from.
[in]nameConfiguration variable name.
[out]valuePointer to get value. Should be allocated/freed by caller.
[in]maxAvailable memory space at value pointer.
+
+
+
Returns
UCS_OK if found, otherwise UCS_ERR_INVALID_PARAM or UCS_ERR_NO_ELEM if error.
+ +
+
+ +

◆ uct_config_modify()

+ +
+
+ + + + + + + + + + + + + + + + +
ucs_status_t uct_config_modify (void * config,
const char * name,
const char * value )
+
+
Parameters
+ + + + +
[in]configConfiguration to modify.
[in]nameConfiguration variable name.
[in]valueValue to set.
+
+
+
Returns
Error code.
+ +
+
+ +

◆ uct_worker_progress()

+ +
+
+ + + + + + + +
unsigned uct_worker_progress (uct_worker_h worker)
+
+

This routine explicitly progresses any outstanding communication operations and active message requests.

+
Note
    +
  • In the current implementation, users MUST call this routine to receive the active message requests.
  • +
+
+
Parameters
+ + +
[in]workerHandle to worker.
+
+
+
Returns
Nonzero if any communication was progressed, zero otherwise.
+
Examples
uct_hello_world.c.
+
+ +
+
+
+
+ + + + diff --git a/api/v1.17/html/group___u_c_t___m_d.html b/api/v1.17/html/group___u_c_t___m_d.html new file mode 100644 index 00000000000..1aa3251fc0b --- /dev/null +++ b/api/v1.17/html/group___u_c_t___m_d.html @@ -0,0 +1,1418 @@ + + + + + + + +UCX: UCT Memory Domain + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + +

+Data Structures

struct  uct_md_attr
 Memory domain attributes. More...
 
struct  uct_md_mem_attr
 Memory domain attributes. More...
 
struct  uct_allocated_memory
 Describes a memory allocated by UCT. More...
 
struct  uct_rkey_bundle
 Remote key with its type. More...
 
struct  uct_mem_alloc_params_t
 Parameters for allocating memory using uct_mem_alloc. More...
 
struct  uct_md_attr.cap
 
struct  uct_mem_alloc_params_t.mds
 
+ + + + + + + + + + + + + +

+Typedefs

typedef enum uct_md_mem_attr_field uct_md_mem_attr_field_t
 UCT MD memory attributes field mask.
 
typedef struct uct_md_mem_attr uct_md_mem_attr_t
 Memory domain attributes.
 
typedef struct uct_allocated_memory uct_allocated_memory_t
 Describes a memory allocated by UCT.
 
typedef struct uct_rkey_bundle uct_rkey_bundle_t
 Remote key with its type.
 
+ + + + + + + + + + + + + + + + + + + +

+Enumerations

enum  uct_sockaddr_accessibility_t { UCT_SOCKADDR_ACC_LOCAL +, UCT_SOCKADDR_ACC_REMOTE + }
 Socket address accessibility type. More...
 
enum  {
+  UCT_MD_FLAG_ALLOC = UCS_BIT(0) +, UCT_MD_FLAG_REG = UCS_BIT(1) +, UCT_MD_FLAG_NEED_MEMH = UCS_BIT(2) +, UCT_MD_FLAG_NEED_RKEY = UCS_BIT(3) +,
+  UCT_MD_FLAG_ADVISE = UCS_BIT(4) +, UCT_MD_FLAG_FIXED = UCS_BIT(5) +, UCT_MD_FLAG_RKEY_PTR = UCS_BIT(6) +, UCT_MD_FLAG_SOCKADDR = UCS_BIT(7) +,
+  UCT_MD_FLAG_INVALIDATE = UCS_BIT(8) +, UCT_MD_FLAG_EXPORTED_MKEY = UCS_BIT(9) +, UCT_MD_FLAG_REG_DMABUF = UCS_BIT(10) +, UCT_MD_FLAG_LAST = UCS_BIT(11) +
+ }
 Memory domain capability flags. More...
 
enum  uct_md_mem_flags {
+  UCT_MD_MEM_FLAG_NONBLOCK = UCS_BIT(0) +, UCT_MD_MEM_FLAG_FIXED = UCS_BIT(1) +, UCT_MD_MEM_FLAG_LOCK = UCS_BIT(2) +, UCT_MD_MEM_FLAG_HIDE_ERRORS = UCS_BIT(3) +,
+  UCT_MD_MEM_ACCESS_REMOTE_PUT = UCS_BIT(5) +, UCT_MD_MEM_ACCESS_REMOTE_GET = UCS_BIT(6) +, UCT_MD_MEM_ACCESS_REMOTE_ATOMIC = UCS_BIT(7) +, UCT_MD_MEM_ACCESS_LOCAL_READ = UCS_BIT(8) +,
+  UCT_MD_MEM_ACCESS_LOCAL_WRITE = UCS_BIT(9) +, UCT_MD_MEM_SYMMETRIC_RKEY = UCS_BIT(10) +, UCT_MD_MEM_ACCESS_ALL +, UCT_MD_MEM_ACCESS_RMA +
+ }
 Memory allocation/registration flags. More...
 
enum  uct_mem_advice_t { UCT_MADV_NORMAL = 0 +, UCT_MADV_WILLNEED + }
 list of UCT memory use advice More...
 
enum  uct_md_mem_attr_field {
+  UCT_MD_MEM_ATTR_FIELD_MEM_TYPE = UCS_BIT(0) +, UCT_MD_MEM_ATTR_FIELD_SYS_DEV = UCS_BIT(1) +, UCT_MD_MEM_ATTR_FIELD_BASE_ADDRESS = UCS_BIT(2) +, UCT_MD_MEM_ATTR_FIELD_ALLOC_LENGTH = UCS_BIT(3) +,
+  UCT_MD_MEM_ATTR_FIELD_DMABUF_FD = UCS_BIT(4) +, UCT_MD_MEM_ATTR_FIELD_DMABUF_OFFSET = UCS_BIT(5) +
+ }
 UCT MD memory attributes field mask. More...
 
enum  uct_mem_alloc_params_field_t {
+  UCT_MEM_ALLOC_PARAM_FIELD_FLAGS = UCS_BIT(0) +, UCT_MEM_ALLOC_PARAM_FIELD_ADDRESS = UCS_BIT(1) +, UCT_MEM_ALLOC_PARAM_FIELD_MEM_TYPE = UCS_BIT(2) +, UCT_MEM_ALLOC_PARAM_FIELD_MDS = UCS_BIT(3) +,
+  UCT_MEM_ALLOC_PARAM_FIELD_NAME = UCS_BIT(4) +
+ }
 UCT allocation parameters specification field mask. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

ucs_status_t uct_md_mem_query (uct_md_h md, const void *address, size_t length, uct_md_mem_attr_t *mem_attr)
 Query attributes of a given pointer.
 
ucs_status_t uct_md_query (uct_md_h md, uct_md_attr_t *md_attr)
 Query for memory domain attributes.
 
ucs_status_t uct_md_mem_advise (uct_md_h md, uct_mem_h memh, void *addr, size_t length, uct_mem_advice_t advice)
 Give advice about the use of memory.
 
ucs_status_t uct_md_mem_reg (uct_md_h md, void *address, size_t length, unsigned flags, uct_mem_h *memh_p)
 Register memory for zero-copy sends and remote access.
 
ucs_status_t uct_md_mem_dereg (uct_md_h md, uct_mem_h memh)
 Undo the operation of uct_md_mem_reg().
 
ucs_status_t uct_md_detect_memory_type (uct_md_h md, const void *addr, size_t length, ucs_memory_type_t *mem_type_p)
 Detect memory type.
 
ucs_status_t uct_mem_alloc (size_t length, const uct_alloc_method_t *methods, unsigned num_methods, const uct_mem_alloc_params_t *params, uct_allocated_memory_t *mem)
 Allocate memory for zero-copy communications and remote access.
 
ucs_status_t uct_mem_free (const uct_allocated_memory_t *mem)
 Release allocated memory.
 
ucs_status_t uct_md_config_read (uct_component_h component, const char *env_prefix, const char *filename, uct_md_config_t **config_p)
 Read the configuration for a memory domain.
 
int uct_md_is_sockaddr_accessible (uct_md_h md, const ucs_sock_addr_t *sockaddr, uct_sockaddr_accessibility_t mode)
 Check if remote sock address is accessible from the memory domain.
 
ucs_status_t uct_md_mkey_pack (uct_md_h md, uct_mem_h memh, void *rkey_buffer)
 Pack a remote key.
 
ucs_status_t uct_rkey_unpack (uct_component_h component, const void *rkey_buffer, uct_rkey_bundle_t *rkey_ob)
 Unpack a remote key.
 
ucs_status_t uct_rkey_ptr (uct_component_h component, uct_rkey_bundle_t *rkey_ob, uint64_t remote_addr, void **addr_p)
 Get a local pointer to remote memory.
 
ucs_status_t uct_rkey_release (uct_component_h component, const uct_rkey_bundle_t *rkey_ob)
 Release a remote key.
 
+

Detailed Description

+

The Memory Domain abstracts resources required for network communication, which typically includes memory, transport mechanisms, compute and network resources. It is an isolation mechanism that can be employed by the applications for isolating resources between multiple programming models. The attributes of the Memory Domain are defined by the structure uct_md_attr(). The communication and memory operations are defined in the context of Memory Domain.

+

Data Structure Documentation

+ +

◆ uct_md_attr

+ +
+
+ + + + +
struct uct_md_attr
+
+

This structure defines the attributes of a Memory Domain which includes maximum memory that can be allocated, credentials required for accessing the memory, CPU mask indicating the proximity of CPUs, and bitmaps indicating the types of memory (CPU/CUDA/ROCM) that can be detected, allocated and accessed.

+
Examples
uct_hello_world.c.
+
+
+ + + + + + + + + + + + + + + + +
Data Fields
+struct uct_md_attr.cap +cap +
+ucs_linear_func_t +reg_cost +

Memory registration cost estimation (time,seconds) as a linear function of the buffer size.

+
+char +component_name[UCT_COMPONENT_NAME_MAX] +

Component name

+
+size_t +rkey_packed_size +

Size of buffer needed for packed rkey

+
+ucs_cpu_set_t +local_cpus +

Mask of CPUs near the resource

+
+ +
+
+ +

◆ uct_md_mem_attr

+ +
+
+ + + + +
struct uct_md_mem_attr
+
+

This structure defines the attributes of a memory pointer which may include the memory type of the pointer, and the system device that backs the pointer depending on the bit fields populated in field_mask.

+
+ + + + + + + + + + + + + + + + + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from uct_md_mem_attr_field_t.

+
+ucs_memory_type_t +mem_type +

The type of memory. E.g. CPU/GPU memory or some other valid type. If the md does not support sys_dev query, then UCS_MEMORY_TYPE_UNKNOWN is returned.

+
+ucs_sys_device_t +sys_dev +

Index of the system device on which the buffer resides. eg: NUMA/GPU If the md does not support sys_dev query, then UCS_SYS_DEVICE_ID_UNKNOWN is returned.

+
+void * +base_address +

Base address of the allocation to which the provided buffer belongs to. If the md not support base address query, then the pointer passed to uct_md_mem_query is returned as is.

+
+size_t +alloc_length +

Length of the whole allocation to which the provided buffer belongs to. If the md not support querying allocation length, then the length passed to uct_md_mem_query is returned as is.

+
+int +dmabuf_fd +

Dmabuf file descriptor to expose memory regions across devices. Refer (https://01.org/linuxgraphics/gfx-docs/drm/driver-api/dma-buf.html). If the md does not support querying the fd object associated with the region, then dmabuf_fd is set to UCT_DMABUF_FD_INVALID by uct_md_mem_query(). It is the responsibility of the user to close the returned fd using close (2) when it's no longer needed.

+
+size_t +dmabuf_offset +

Offset of the given address from the start of the memory region (identified by dmabuf_fd) backing the memory region being queried.

+
+ +
+
+ +

◆ uct_allocated_memory

+ +
+
+ + + + +
struct uct_allocated_memory
+
+

This structure describes the memory block which includes the address, size, and Memory Domain used for allocation. This structure is passed to interface and the memory is allocated by memory allocation functions uct_mem_alloc.

+
+ + + + + + + + + + + + + + + + + + + +
Data Fields
+void * +address +

Address of allocated memory

+
+size_t +length +

Real size of allocated memory

+
+uct_alloc_method_t +method +

Method used to allocate the memory

+
+ucs_memory_type_t +mem_type +

type of allocated memory

+
+uct_md_h +md +

if method==MD: MD used to allocate the memory

+
+uct_mem_h +memh +

if method==MD: MD memory handle

+
+ +
+
+ +

◆ uct_rkey_bundle

+ +
+
+ + + + +
struct uct_rkey_bundle
+
+

This structure describes the credentials (typically key) and information required to access the remote memory by the communication interfaces.

+
+ + + + + + + + + + +
Data Fields
+uct_rkey_t +rkey +

Remote key descriptor, passed to RMA functions

+
+void * +handle +

Handle, used internally for releasing the key

+
+void * +type +

Remote key type

+
+ +
+
+ +

◆ uct_mem_alloc_params_t

+ +
+
+ + + + +
struct uct_mem_alloc_params_t
+
+
+ + + + + + + + + + + + + + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from uct_mem_alloc_params_field_t. Fields not specified in this mask will be ignored.

+
+unsigned +flags +

Memory allocation flags, see uct_md_mem_flags If UCT_MEM_ALLOC_PARAM_FIELD_FLAGS is not specified in field_mask, then (UCT_MD_MEM_ACCESS_LOCAL_READ | UCT_MD_MEM_ACCESS_LOCAL_WRITE) is used by default.

+
+void * +address +

If address is NULL, the underlying allocation routine will choose the address at which to create the mapping. If address is non-NULL and UCT_MD_MEM_FLAG_FIXED is not set, the address will be interpreted as a hint as to where to establish the mapping. If address is non-NULL and UCT_MD_MEM_FLAG_FIXED is set, then the specified address is interpreted as a requirement. In this case, if the mapping to the exact address cannot be made, the allocation request fails.

+
+ucs_memory_type_t +mem_type +

Type of memory to be allocated.

+
+struct uct_mem_alloc_params_t.mds +mds +
+const char * +name +

Name of the allocated region, used to track memory usage for debugging and profiling. If UCT_MEM_ALLOC_PARAM_FIELD_NAME is not specified in field_mask, then "anonymous-uct_mem_alloc" is used by default.

+
+ +
+
+ +

◆ uct_md_attr.cap

+ +
+
+ + + + +
struct uct_md_attr.cap
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
Data Fields
+uint64_t +max_alloc +

Maximal allocation size

+
+size_t +max_reg +

Maximal registration size

+
+uint64_t +flags +

UCT_MD_FLAG_xx

+
+uint64_t +reg_mem_types +

Bitmap of memory types that Memory Domain can be registered with

+
+uint64_t +detect_mem_types +

Bitmap of memory types that Memory Domain can detect if address belongs to it

+
+uint64_t +alloc_mem_types +

Bitmap of memory types that Memory Domain can allocate memory on

+
+uint64_t +access_mem_types +

Memory types that Memory Domain can access

+
+ +
+
+ +

◆ uct_mem_alloc_params_t.mds

+ +
+
+ + + + +
struct uct_mem_alloc_params_t.mds
+
+
+ + + + + + + +
Data Fields
+const uct_md_h * +mds +

Array of memory domains to attempt to allocate the memory with, for MD allocation method.

+
+unsigned +count +

Length of 'mds' array. May be empty, in such case 'mds' may be NULL, and MD allocation method will be skipped.

+
+ +
+
+

Typedef Documentation

+ +

◆ uct_md_mem_attr_field_t

+ +
+
+

The enumeration allows specifying which fields in uct_md_mem_attr_t are present.

+ +
+
+ +

◆ uct_md_mem_attr_t

+ +
+
+ + + + +
typedef struct uct_md_mem_attr uct_md_mem_attr_t
+
+

This structure defines the attributes of a memory pointer which may include the memory type of the pointer, and the system device that backs the pointer depending on the bit fields populated in field_mask.

+ +
+
+ +

◆ uct_allocated_memory_t

+ +
+
+ + + + +
typedef struct uct_allocated_memory uct_allocated_memory_t
+
+

This structure describes the memory block which includes the address, size, and Memory Domain used for allocation. This structure is passed to interface and the memory is allocated by memory allocation functions uct_mem_alloc.

+ +
+
+ +

◆ uct_rkey_bundle_t

+ +
+
+ + + + +
typedef struct uct_rkey_bundle uct_rkey_bundle_t
+
+

This structure describes the credentials (typically key) and information required to access the remote memory by the communication interfaces.

+ +
+
+

Enumeration Type Documentation

+ +

◆ uct_sockaddr_accessibility_t

+ +
+
+ + + +
Enumerator
UCT_SOCKADDR_ACC_LOCAL 

Check if local address exists. Address should belong to a local network interface

+
UCT_SOCKADDR_ACC_REMOTE 

Check if remote address can be reached. Address is routable from one of the local network interfaces

+
+ +
+
+ +

◆ anonymous enum

+ +
+
+ + + + +
anonymous enum
+
+ + + + + + + + + + + + + +
Enumerator
UCT_MD_FLAG_ALLOC 

MD supports memory allocation

+
UCT_MD_FLAG_REG 

MD supports memory registration

+
UCT_MD_FLAG_NEED_MEMH 

The transport needs a valid local memory handle for zero-copy operations

+
UCT_MD_FLAG_NEED_RKEY 

The transport needs a valid remote memory key for remote memory operations

+
UCT_MD_FLAG_ADVISE 

MD supports memory advice

+
UCT_MD_FLAG_FIXED 

MD supports memory allocation with fixed address

+
UCT_MD_FLAG_RKEY_PTR 

MD supports direct access to remote memory via a pointer that is returned by uct_rkey_ptr.

Note
This flag is deprecated and replaced by UCT_COMPONENT_FLAG_RKEY_PTR.
+
UCT_MD_FLAG_SOCKADDR 

MD support for client-server connection establishment via sockaddr

+
UCT_MD_FLAG_INVALIDATE 

MD supports memory invalidation.

Note
This flag is equivalent to the combination of UCT_MD_FLAG_INVALIDATE_RMA and UCT_MD_FLAG_INVALIDATE_AMO for uct_md_attr_v2_t.flags
+
UCT_MD_FLAG_EXPORTED_MKEY 

MD supports exporting memory keys with another process using the same device or attaching to an exported memory key.

+
UCT_MD_FLAG_REG_DMABUF 

MD supports registering a dmabuf file descriptor.

+
UCT_MD_FLAG_LAST 

The enum must not be extended. Any additional flags must be defined in API v2 uct_md_flags_v2_t.

+
+ +
+
+ +

◆ uct_md_mem_flags

+ +
+
+ + + + +
enum uct_md_mem_flags
+
+ + + + + + + + + + + + + +
Enumerator
UCT_MD_MEM_FLAG_NONBLOCK 

Hint to perform non-blocking allocation/registration: page mapping may be deferred until it is accessed by the CPU or a transport.

+
UCT_MD_MEM_FLAG_FIXED 

Place the mapping at exactly defined address.

+
UCT_MD_MEM_FLAG_LOCK 

Registered memory should be locked. May incur extra cost for registration, but memory access is usually faster.

+
UCT_MD_MEM_FLAG_HIDE_ERRORS 

Hide errors on memory registration. In some cases registration failure is not an error (e. g. for merged memory regions).

+
UCT_MD_MEM_ACCESS_REMOTE_PUT 

Enable remote put access.

+
UCT_MD_MEM_ACCESS_REMOTE_GET 

Enable remote get access.

+
UCT_MD_MEM_ACCESS_REMOTE_ATOMIC 

Enable remote atomic access.

+
UCT_MD_MEM_ACCESS_LOCAL_READ 

Enable local read access.

+
UCT_MD_MEM_ACCESS_LOCAL_WRITE 

Enable local write access.

+
UCT_MD_MEM_SYMMETRIC_RKEY 

Register the memory region so its remote access key would likely be equal to remote access keys received from other peers, when compared with uct_rkey_compare. This flag is a hint. When remote access keys received from different peers are compared equal, they can be used interchangeably, avoiding the need to keep all of them in memory.

+
UCT_MD_MEM_ACCESS_ALL 

Enable local and remote access for all operations.

+
UCT_MD_MEM_ACCESS_RMA 

Enable local and remote access for put and get operations.

+
+ +
+
+ +

◆ uct_mem_advice_t

+ +
+
+ + + + +
enum uct_mem_advice_t
+
+ + + +
Enumerator
UCT_MADV_NORMAL 

No special treatment

+
UCT_MADV_WILLNEED 

can be used on the memory mapped with UCT_MD_MEM_FLAG_NONBLOCK to speed up memory mapping and to avoid page faults when the memory is accessed for the first time.

+
+ +
+
+ +

◆ uct_md_mem_attr_field

+ +
+
+ + + + +
enum uct_md_mem_attr_field
+
+

The enumeration allows specifying which fields in uct_md_mem_attr_t are present.

+ + + + + + + +
Enumerator
UCT_MD_MEM_ATTR_FIELD_MEM_TYPE 

Indicate if memory type is populated. E.g. CPU/GPU

+
UCT_MD_MEM_ATTR_FIELD_SYS_DEV 

Indicate if details of system device backing the pointer are populated. For example: GPU device, NUMA domain, etc.

+
UCT_MD_MEM_ATTR_FIELD_BASE_ADDRESS 

Request base address of the allocation to which the buffer belongs.

+
UCT_MD_MEM_ATTR_FIELD_ALLOC_LENGTH 

Request the whole length of the allocation to which the buffer belongs.

+
UCT_MD_MEM_ATTR_FIELD_DMABUF_FD 

Request a cross-device dmabuf file descriptor that represents a memory region, and can be used to register the region with another memory domain.

+
UCT_MD_MEM_ATTR_FIELD_DMABUF_OFFSET 

Request the offset of the provided virtual address relative to the beginning of its backing dmabuf region.

+
+ +
+
+ +

◆ uct_mem_alloc_params_field_t

+ +
+
+

The enumeration allows specifying which fields in uct_mem_alloc_params_t are present.

+ + + + + + +
Enumerator
UCT_MEM_ALLOC_PARAM_FIELD_FLAGS 

Enables uct_mem_alloc_params_t::flags

+
UCT_MEM_ALLOC_PARAM_FIELD_ADDRESS 

Enables uct_mem_alloc_params_t::address

+
UCT_MEM_ALLOC_PARAM_FIELD_MEM_TYPE 

Enables uct_mem_alloc_params_t::mem_type

+
UCT_MEM_ALLOC_PARAM_FIELD_MDS 

Enables uct_mem_alloc_params_t::mds

+
UCT_MEM_ALLOC_PARAM_FIELD_NAME 

Enables uct_mem_alloc_params_t::name

+
+ +
+
+

Function Documentation

+ +

◆ uct_md_mem_query()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_md_mem_query (uct_md_h md,
const void * address,
size_t length,
uct_md_mem_attr_t * mem_attr )
+
+

Return attributes such as memory type, base address, allocation length, and system device for the given pointer of specific length.

+
Parameters
+ + + + + +
[in]mdMemory domain to run the query on. This function returns an error if the md does not recognize the pointer.
[in]addressThe address of the pointer. Must be non-NULL else UCS_ERR_INVALID_PARAM error is returned.
[in]lengthLength of the memory region to examine. Must be nonzero else UCS_ERR_INVALID_PARAM error is returned.
[in,out]mem_attrIf successful, filled with ptr attributes.
+
+
+
Returns
UCS_OK if at least one attribute is successfully queried otherwise an error code as defined by ucs_status_t is returned.
+ +
+
+ +

◆ uct_md_query()

+ +
+
+ + + + + + + + + + + +
ucs_status_t uct_md_query (uct_md_h md,
uct_md_attr_t * md_attr )
+
+
Parameters
+ + + +
[in]mdMemory domain to query.
[out]md_attrFilled with memory domain attributes.
+
+
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_md_mem_advise()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_md_mem_advise (uct_md_h md,
uct_mem_h memh,
void * addr,
size_t length,
uct_mem_advice_t advice )
+
+

This routine advises the UCT about how to handle memory range beginning at address and size of length bytes. This call does not influence the semantics of the application, but may influence its performance. The advice may be ignored.

+
Parameters
+ + + + + + +
[in]mdMemory domain memory was allocated or registered on.
[in]memhMemory handle, as returned from uct_mem_alloc
[in]addrMemory base address. Memory range must belong to the memh
[in]lengthLength of memory to advise. Must be >0.
[in]adviceMemory use advice as defined in the uct_mem_advice_t list
+
+
+ +
+
+ +

◆ uct_md_mem_reg()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_md_mem_reg (uct_md_h md,
void * address,
size_t length,
unsigned flags,
uct_mem_h * memh_p )
+
+

Register memory on the memory domain. In order to use this function, MD must support UCT_MD_FLAG_REG flag.

+
Parameters
+ + + + + + +
[in]mdMemory domain to register memory on.
[in]addressMemory to register.
[in]lengthSize of memory to register. Must be >0.
[in]flagsMemory allocation flags, see uct_md_mem_flags.
[out]memh_pFilled with handle for allocated region.
+
+
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_md_mem_dereg()

+ +
+
+ + + + + + + + + + + +
ucs_status_t uct_md_mem_dereg (uct_md_h md,
uct_mem_h memh )
+
+
Parameters
+ + + +
[in]mdMemory domain which was used to register the memory.
[in]memhLocal access key to memory region.
+
+
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_md_detect_memory_type()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_md_detect_memory_type (uct_md_h md,
const void * addr,
size_t length,
ucs_memory_type_t * mem_type_p )
+
+
Parameters
+ + + + + +
[in]mdMemory domain to detect memory type
[in]addrMemory address to detect.
[in]lengthSize of memory
[out]mem_type_pFilled with memory type of the address range if function succeeds
+
+
+
Returns
UCS_OK If memory type is successfully detected UCS_ERR_INVALID_ADDR If failed to detect memory type
+ +
+
+ +

◆ uct_mem_alloc()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_mem_alloc (size_t length,
const uct_alloc_method_t * methods,
unsigned num_methods,
const uct_mem_alloc_params_t * params,
uct_allocated_memory_t * mem )
+
+

Allocate potentially registered memory.

+
Parameters
+ + + + + + +
[in]lengthThe minimal size to allocate. The actual size may be larger, for example because of alignment restrictions. Must be >0.
[in]methodsArray of memory allocation methods to attempt. Each of the provided allocation methods will be tried in array order, to perform the allocation, until one succeeds. Whenever the MD method is encountered, each of the provided MDs will be tried in array order, to allocate the memory, until one succeeds, or they are exhausted. In this case the next allocation method from the initial list will be attempted.
[in]num_methodsLength of 'methods' array.
[in]paramsMemory allocation characteristics, see uct_mem_alloc_params_t.
[out]memIn case of success, filled with information about the allocated memory. uct_allocated_memory_t
+
+
+ +
+
+ +

◆ uct_mem_free()

+ +
+
+ + + + + + + +
ucs_status_t uct_mem_free (const uct_allocated_memory_t * mem)
+
+

Release the memory allocated by uct_mem_alloc.

+
Parameters
+ + +
[in]memDescription of allocated memory, as returned from uct_mem_alloc.
+
+
+ +
+
+ +

◆ uct_md_config_read()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_md_config_read (uct_component_h component,
const char * env_prefix,
const char * filename,
uct_md_config_t ** config_p )
+
+
Parameters
+ + + + + +
[in]componentRead the configuration of this component.
[in]env_prefixIf non-NULL, search for environment variables starting with this UCT_<prefix>_. Otherwise, search for environment variables starting with just UCT_.
[in]filenameIf non-NULL, read configuration from this file. If the file does not exist, it will be ignored.
[out]config_pFilled with a pointer to the configuration.
+
+
+
Returns
Error code.
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_md_is_sockaddr_accessible()

+ +
+
+ + + + + + + + + + + + + + + + +
int uct_md_is_sockaddr_accessible (uct_md_h md,
const ucs_sock_addr_t * sockaddr,
uct_sockaddr_accessibility_t mode )
+
+

This function checks if a remote sock address can be accessed from a local memory domain. Accessibility can be checked in local or remote mode.

+
Parameters
+ + + + +
[in]mdMemory domain to check accessibility from. This memory domain must support the UCT_MD_FLAG_SOCKADDR flag.
[in]sockaddrSocket address to check accessibility to.
[in]modeMode for checking accessibility, as defined in uct_sockaddr_accessibility_t. Indicates if accessibility is tested on the server side - for binding to the given sockaddr, or on the client side - for connecting to the given remote peer's sockaddr.
+
+
+
Returns
Nonzero if accessible, 0 if inaccessible.
+ +
+
+ +

◆ uct_md_mkey_pack()

+ +
+
+ + + + + + + + + + + + + + + + +
ucs_status_t uct_md_mkey_pack (uct_md_h md,
uct_mem_h memh,
void * rkey_buffer )
+
+
Parameters
+ + + + +
[in]mdHandle to memory domain.
[in]memhLocal key, whose remote key should be packed.
[out]rkey_bufferFilled with packed remote key.
+
+
+
Returns
Error code.
+ +
+
+ +

◆ uct_rkey_unpack()

+ +
+
+ + + + + + + + + + + + + + + + +
ucs_status_t uct_rkey_unpack (uct_component_h component,
const void * rkey_buffer,
uct_rkey_bundle_t * rkey_ob )
+
+
Parameters
+ + + + +
[in]componentComponent on which to unpack the remote key.
[in]rkey_bufferPacked remote key buffer.
[out]rkey_obFilled with the unpacked remote key and its type.
+
+
+
Note
The remote key must be unpacked with the same component that was used to pack it. For example, if a remote device address on the remote memory domain which was used to pack the key is reachable by a transport on a local component, then that component is eligible to unpack the key. If the remote key buffer cannot be unpacked with the given component, UCS_ERR_INVALID_PARAM will be returned.
+
Returns
Error code.
+ +
+
+ +

◆ uct_rkey_ptr()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_rkey_ptr (uct_component_h component,
uct_rkey_bundle_t * rkey_ob,
uint64_t remote_addr,
void ** addr_p )
+
+

This routine returns a local pointer to the remote memory described by the rkey bundle. The component must support UCT_COMPONENT_FLAG_RKEY_PTR flag.

+
Parameters
+ + + + + +
[in]componentComponent on which to obtain the pointer to the remote key.
[in]rkey_obA remote key bundle as returned by the uct_rkey_unpack function.
[in]remote_addrA remote address within the memory area described by the rkey_ob.
[out]addr_pA pointer that can be used for direct access to the remote memory.
+
+
+
Note
The component used to obtain a local pointer to the remote memory must be the same component that was used to pack the remote key. See notes section for uct_rkey_unpack.
+
Returns
Error code if the remote memory cannot be accessed directly or the remote address is not valid.
+ +
+
+ +

◆ uct_rkey_release()

+ +
+
+ + + + + + + + + + + +
ucs_status_t uct_rkey_release (uct_component_h component,
const uct_rkey_bundle_t * rkey_ob )
+
+
Parameters
+ + + +
[in]componentComponent which was used to unpack the remote key.
[in]rkey_obRemote key to release.
+
+
+ +
+
+
+
+ + + + diff --git a/api/v1.17/html/group___u_c_t___m_d_structuct__allocated__memory.js b/api/v1.17/html/group___u_c_t___m_d_structuct__allocated__memory.js new file mode 100644 index 00000000000..9da55763ed8 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___m_d_structuct__allocated__memory.js @@ -0,0 +1,9 @@ +var group___u_c_t___m_d_structuct__allocated__memory = +[ + [ "address", "group___u_c_t___m_d.html#abd26b6aa42f6d176591f7028317bb887", null ], + [ "length", "group___u_c_t___m_d.html#ae867afdf079a09edbbb03134e9d32489", null ], + [ "method", "group___u_c_t___m_d.html#ac0c1c5a5cd287f176e81650816138a55", null ], + [ "mem_type", "group___u_c_t___m_d.html#ae6002ec224af4efa796246bfce7180fd", null ], + [ "md", "group___u_c_t___m_d.html#afdf7da800a504f0da8f59874d9b71823", null ], + [ "memh", "group___u_c_t___m_d.html#a4b9171caf237f0f2884d548c395e47ea", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___m_d_structuct__md__attr.js b/api/v1.17/html/group___u_c_t___m_d_structuct__md__attr.js new file mode 100644 index 00000000000..46951c6ad69 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___m_d_structuct__md__attr.js @@ -0,0 +1,8 @@ +var group___u_c_t___m_d_structuct__md__attr = +[ + [ "cap", "group___u_c_t___m_d.html#afc943a5af89c1028723bc0046092c067", null ], + [ "reg_cost", "group___u_c_t___m_d.html#aa8e4e4f1f063347094ea721a0ccb8952", null ], + [ "component_name", "group___u_c_t___m_d.html#a1f337f217f10d019529e79d9fe60af5c", null ], + [ "rkey_packed_size", "group___u_c_t___m_d.html#a95f941f6d800ef57a183d1f9c75a221c", null ], + [ "local_cpus", "group___u_c_t___m_d.html#aade634758ea5ea9fc7f64b17d66507d7", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___m_d_structuct__md__attr_8cap.js b/api/v1.17/html/group___u_c_t___m_d_structuct__md__attr_8cap.js new file mode 100644 index 00000000000..7d60643521c --- /dev/null +++ b/api/v1.17/html/group___u_c_t___m_d_structuct__md__attr_8cap.js @@ -0,0 +1,10 @@ +var group___u_c_t___m_d_structuct__md__attr_8cap = +[ + [ "max_alloc", "group___u_c_t___m_d.html#aaa6e5e31be347b4d78f8b7b8da29df67", null ], + [ "max_reg", "group___u_c_t___m_d.html#a5bcc2b523f735533ff4a0d45cf0ece14", null ], + [ "flags", "group___u_c_t___m_d.html#a4e5868d676cb634aa75b125a0f741abf", null ], + [ "reg_mem_types", "group___u_c_t___m_d.html#aac6dbc8bc7d7c4da5fbec837d19b3424", null ], + [ "detect_mem_types", "group___u_c_t___m_d.html#a4920c15760d7c80d94f2458a8db35982", null ], + [ "alloc_mem_types", "group___u_c_t___m_d.html#ab86d86005547ec04bdee8312bce06410", null ], + [ "access_mem_types", "group___u_c_t___m_d.html#aa44843ffc1f73fe1e700622ad6bc4ab5", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___m_d_structuct__md__mem__attr.js b/api/v1.17/html/group___u_c_t___m_d_structuct__md__mem__attr.js new file mode 100644 index 00000000000..d1365ce5402 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___m_d_structuct__md__mem__attr.js @@ -0,0 +1,10 @@ +var group___u_c_t___m_d_structuct__md__mem__attr = +[ + [ "field_mask", "group___u_c_t___m_d.html#a95cf319a4733fed89f7b52b66f82f84a", null ], + [ "mem_type", "group___u_c_t___m_d.html#a9b20dd26a01412d61bea8f5cc4ee02a2", null ], + [ "sys_dev", "group___u_c_t___m_d.html#aacc6d26ea7f15b8cd19cb9b10eb4603c", null ], + [ "base_address", "group___u_c_t___m_d.html#a18678799e605b7caa7cca03e6a5ba368", null ], + [ "alloc_length", "group___u_c_t___m_d.html#aea0d8373ac6c6d4a17eb15627a10b33f", null ], + [ "dmabuf_fd", "group___u_c_t___m_d.html#a84fd9cd1ae1fcdbaa0bd6e5cf8ac32a5", null ], + [ "dmabuf_offset", "group___u_c_t___m_d.html#aa91e5831a71cbe0b19c274178cbb1353", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___m_d_structuct__mem__alloc__params__t.js b/api/v1.17/html/group___u_c_t___m_d_structuct__mem__alloc__params__t.js new file mode 100644 index 00000000000..519cab7ffb8 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___m_d_structuct__mem__alloc__params__t.js @@ -0,0 +1,9 @@ +var group___u_c_t___m_d_structuct__mem__alloc__params__t = +[ + [ "field_mask", "group___u_c_t___m_d.html#ab06683bb31a585ea60b85f6f0f3126c8", null ], + [ "flags", "group___u_c_t___m_d.html#a8180ccc5d99649919a9061c9ebb2504f", null ], + [ "address", "group___u_c_t___m_d.html#a5d1be32ed06a9f67bdf686d1c2ec71fc", null ], + [ "mem_type", "group___u_c_t___m_d.html#ac6a68b6fb669135688c594a58a6e3955", null ], + [ "mds", "group___u_c_t___m_d.html#af682cfb8bc431adcd242433fb61619ac", null ], + [ "name", "group___u_c_t___m_d.html#ad67ee098d7dff61b637e20d67dc184ec", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___m_d_structuct__mem__alloc__params__t_8mds.js b/api/v1.17/html/group___u_c_t___m_d_structuct__mem__alloc__params__t_8mds.js new file mode 100644 index 00000000000..935770f00d5 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___m_d_structuct__mem__alloc__params__t_8mds.js @@ -0,0 +1,5 @@ +var group___u_c_t___m_d_structuct__mem__alloc__params__t_8mds = +[ + [ "mds", "group___u_c_t___m_d.html#a60a114c91c41983174b484e188856fb3", null ], + [ "count", "group___u_c_t___m_d.html#ae2942a04780e223b215eb8b663cf5353", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___m_d_structuct__rkey__bundle.js b/api/v1.17/html/group___u_c_t___m_d_structuct__rkey__bundle.js new file mode 100644 index 00000000000..2e938907b54 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___m_d_structuct__rkey__bundle.js @@ -0,0 +1,6 @@ +var group___u_c_t___m_d_structuct__rkey__bundle = +[ + [ "rkey", "group___u_c_t___m_d.html#a750c92c67b9203752b04894893b91bbc", null ], + [ "handle", "group___u_c_t___m_d.html#ab42e33b02da0cc7023495793fae7f569", null ], + [ "type", "group___u_c_t___m_d.html#ae9d6a73b93fa47d853ff2180fbd273b2", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e.html b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e.html new file mode 100644 index 00000000000..ec96c95e605 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e.html @@ -0,0 +1,4020 @@ + + + + + + + +UCX: UCT Communication Resource + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ + + + + + + + +

+Topics

 UCT interface operations and capabilities
 List of capabilities supported by UCX API.
 
 UCT interface for asynchronous event capabilities
 List of capabilities supported by UCT iface event API.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Data Structures

struct  uct_md_resource_desc
 Memory domain resource descriptor. More...
 
struct  uct_component_attr
 UCT component attributes. More...
 
struct  uct_tl_resource_desc
 Communication resource descriptor. More...
 
struct  uct_iface_attr
 Interface attributes: capabilities and limitations. More...
 
struct  uct_iface_params
 Parameters used for interface creation. More...
 
struct  uct_ep_params
 Parameters for creating a UCT endpoint by uct_ep_create. More...
 
struct  uct_completion
 Completion handle. More...
 
struct  uct_pending_req
 Pending request. More...
 
struct  uct_iov
 Structure for scatter-gather I/O. More...
 
struct  uct_iface_attr.cap
 
struct  uct_iface_attr.cap.put
 
struct  uct_iface_attr.cap.get
 
struct  uct_iface_attr.cap.am
 
struct  uct_iface_attr.cap.tag
 
struct  uct_iface_attr.cap.tag.recv
 
struct  uct_iface_attr.cap.tag.eager
 
struct  uct_iface_attr.cap.tag.rndv
 
struct  uct_iface_attr.cap.atomic32
 
struct  uct_iface_attr.cap.atomic64
 
union  uct_iface_params.mode
 
struct  uct_iface_params.mode.device
 
struct  uct_iface_params.mode.sockaddr
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef struct uct_md_resource_desc uct_md_resource_desc_t
 Memory domain resource descriptor.
 
typedef struct uct_component_attr uct_component_attr_t
 UCT component attributes.
 
typedef struct uct_tl_resource_desc uct_tl_resource_desc_t
 Communication resource descriptor.
 
typedef struct uct_component * uct_component_h
 
typedef struct uct_iface * uct_iface_h
 
typedef struct uct_iface_config uct_iface_config_t
 
typedef struct uct_md_config uct_md_config_t
 
typedef struct uct_cm_config uct_cm_config_t
 
typedef struct uct_ep * uct_ep_h
 
typedef void * uct_mem_h
 
typedef uintptr_t uct_rkey_t
 
typedef struct uct_md * uct_md_h
 Memory domain handler.
 
typedef struct uct_md_ops uct_md_ops_t
 
typedef void * uct_rkey_ctx_h
 
typedef struct uct_iface_attr uct_iface_attr_t
 
typedef struct uct_iface_params uct_iface_params_t
 
typedef struct uct_ep_attr uct_ep_attr_t
 
typedef struct uct_md_attr uct_md_attr_t
 
typedef struct uct_completion uct_completion_t
 
typedef struct uct_pending_req uct_pending_req_t
 
typedef struct uct_worker * uct_worker_h
 
typedef struct uct_md uct_md_t
 
typedef enum uct_am_trace_type uct_am_trace_type_t
 
typedef struct uct_device_addr uct_device_addr_t
 
typedef struct uct_iface_addr uct_iface_addr_t
 
typedef struct uct_ep_addr uct_ep_addr_t
 
typedef struct uct_ep_params uct_ep_params_t
 
typedef struct uct_ep_connect_params uct_ep_connect_params_t
 
typedef struct uct_cm_attr uct_cm_attr_t
 
typedef struct uct_cm uct_cm_t
 
typedef uct_cm_tuct_cm_h
 
typedef struct uct_listener_attr uct_listener_attr_t
 
typedef struct uct_listener * uct_listener_h
 
typedef struct uct_listener_params uct_listener_params_t
 
typedef struct uct_tag_context uct_tag_context_t
 
typedef uint64_t uct_tag_t
 
typedef int uct_worker_cb_id_t
 
typedef void * uct_conn_request_h
 
typedef struct uct_iov uct_iov_t
 Structure for scatter-gather I/O.
 
typedef void(* uct_completion_callback_t) (uct_completion_t *self)
 Callback to process send completion.
 
typedef ucs_status_t(* uct_pending_callback_t) (uct_pending_req_t *self)
 Callback to process pending requests.
 
typedef ucs_status_t(* uct_error_handler_t) (void *arg, uct_ep_h ep, ucs_status_t status)
 Callback to process peer failure.
 
typedef void(* uct_pending_purge_callback_t) (uct_pending_req_t *self, void *arg)
 Callback to purge pending requests.
 
typedef size_t(* uct_pack_callback_t) (void *dest, void *arg)
 Callback for producing data.
 
typedef void(* uct_unpack_callback_t) (void *arg, const void *data, size_t length)
 Callback for consuming data.
 
typedef void(* uct_async_event_cb_t) (void *arg, unsigned flags)
 Callback to process asynchronous events.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Enumerations

enum  uct_component_attr_field { UCT_COMPONENT_ATTR_FIELD_NAME = UCS_BIT(0) +, UCT_COMPONENT_ATTR_FIELD_MD_RESOURCE_COUNT = UCS_BIT(1) +, UCT_COMPONENT_ATTR_FIELD_MD_RESOURCES = UCS_BIT(2) +, UCT_COMPONENT_ATTR_FIELD_FLAGS = UCS_BIT(3) + }
 UCT component attributes field mask. More...
 
enum  { UCT_COMPONENT_FLAG_CM = UCS_BIT(0) +, UCT_COMPONENT_FLAG_RKEY_PTR = UCS_BIT(1) + }
 Capability flags of uct_component_h. More...
 
enum  uct_device_type_t {
+  UCT_DEVICE_TYPE_NET +, UCT_DEVICE_TYPE_SHM +, UCT_DEVICE_TYPE_ACC +, UCT_DEVICE_TYPE_SELF +,
+  UCT_DEVICE_TYPE_LAST +
+ }
 List of UCX device types. More...
 
enum  uct_iface_event_types { UCT_EVENT_SEND_COMP = UCS_BIT(0) +, UCT_EVENT_RECV = UCS_BIT(1) +, UCT_EVENT_RECV_SIG = UCS_BIT(2) + }
 Asynchronous event types. More...
 
enum  uct_flush_flags { UCT_FLUSH_FLAG_LOCAL = 0 +, UCT_FLUSH_FLAG_CANCEL = UCS_BIT(0) +, UCT_FLUSH_FLAG_REMOTE = UCS_BIT(1) + }
 Flush modifiers. More...
 
enum  uct_progress_types { UCT_PROGRESS_SEND = UCS_BIT(0) +, UCT_PROGRESS_RECV = UCS_BIT(1) +, UCT_PROGRESS_THREAD_SAFE = UCS_BIT(7) + }
 UCT progress types. More...
 
enum  uct_cb_flags { UCT_CB_FLAG_RESERVED = UCS_BIT(1) +, UCT_CB_FLAG_ASYNC = UCS_BIT(2) + }
 Callback flags. More...
 
enum  uct_iface_open_mode { UCT_IFACE_OPEN_MODE_DEVICE = UCS_BIT(0) +, UCT_IFACE_OPEN_MODE_SOCKADDR_SERVER = UCS_BIT(1) +, UCT_IFACE_OPEN_MODE_SOCKADDR_CLIENT = UCS_BIT(2) + }
 Mode in which to open the interface. More...
 
enum  uct_iface_params_field {
+  UCT_IFACE_PARAM_FIELD_CPU_MASK = UCS_BIT(0) +, UCT_IFACE_PARAM_FIELD_OPEN_MODE = UCS_BIT(1) +, UCT_IFACE_PARAM_FIELD_DEVICE = UCS_BIT(2) +, UCT_IFACE_PARAM_FIELD_SOCKADDR = UCS_BIT(3) +,
+  UCT_IFACE_PARAM_FIELD_STATS_ROOT = UCS_BIT(4) +, UCT_IFACE_PARAM_FIELD_RX_HEADROOM = UCS_BIT(5) +, UCT_IFACE_PARAM_FIELD_ERR_HANDLER_ARG = UCS_BIT(6) +, UCT_IFACE_PARAM_FIELD_ERR_HANDLER = UCS_BIT(7) +,
+  UCT_IFACE_PARAM_FIELD_ERR_HANDLER_FLAGS = UCS_BIT(8) +, UCT_IFACE_PARAM_FIELD_HW_TM_EAGER_ARG = UCS_BIT(9) +, UCT_IFACE_PARAM_FIELD_HW_TM_EAGER_CB = UCS_BIT(10) +, UCT_IFACE_PARAM_FIELD_HW_TM_RNDV_ARG = UCS_BIT(11) +,
+  UCT_IFACE_PARAM_FIELD_HW_TM_RNDV_CB = UCS_BIT(12) +, UCT_IFACE_PARAM_FIELD_ASYNC_EVENT_ARG = UCS_BIT(13) +, UCT_IFACE_PARAM_FIELD_ASYNC_EVENT_CB = UCS_BIT(14) +, UCT_IFACE_PARAM_FIELD_KEEPALIVE_INTERVAL = UCS_BIT(15) +,
+  UCT_IFACE_PARAM_FIELD_AM_ALIGNMENT = UCS_BIT(16) +, UCT_IFACE_PARAM_FIELD_AM_ALIGN_OFFSET = UCS_BIT(17) +, UCT_IFACE_PARAM_FIELD_FEATURES = UCS_BIT(18) +
+ }
 UCT interface created by uct_iface_open parameters field mask. More...
 
enum  uct_ep_params_field {
+  UCT_EP_PARAM_FIELD_IFACE = UCS_BIT(0) +, UCT_EP_PARAM_FIELD_USER_DATA = UCS_BIT(1) +, UCT_EP_PARAM_FIELD_DEV_ADDR = UCS_BIT(2) +, UCT_EP_PARAM_FIELD_IFACE_ADDR = UCS_BIT(3) +,
+  UCT_EP_PARAM_FIELD_SOCKADDR = UCS_BIT(4) +, UCT_EP_PARAM_FIELD_SOCKADDR_CB_FLAGS = UCS_BIT(5) +, UCT_EP_PARAM_FIELD_SOCKADDR_PACK_CB = UCS_BIT(6) +, UCT_EP_PARAM_FIELD_CM = UCS_BIT(7) +,
+  UCT_EP_PARAM_FIELD_CONN_REQUEST = UCS_BIT(8) +, UCT_EP_PARAM_FIELD_SOCKADDR_CONNECT_CB_CLIENT = UCS_BIT(9) +, UCT_EP_PARAM_FIELD_SOCKADDR_NOTIFY_CB_SERVER = UCS_BIT(10) +, UCT_EP_PARAM_FIELD_SOCKADDR_DISCONNECT_CB = UCS_BIT(11) +,
+  UCT_EP_PARAM_FIELD_PATH_INDEX = UCS_BIT(12) +, UCT_EP_PARAM_FIELD_CM_RESOLVE_CB = UCS_BIT(13) +, UCT_EP_PARAM_FIELD_PRIV_DATA = UCS_BIT(14) +, UCT_EP_PARAM_FIELD_PRIV_DATA_LENGTH = UCS_BIT(15) +,
+  UCT_EP_PARAM_FIELD_LOCAL_SOCKADDR = UCS_BIT(16) +
+ }
 UCT endpoint created by uct_ep_create parameters field mask. More...
 
enum  uct_iface_feature {
+  UCT_IFACE_FEATURE_AM = UCS_BIT(0) +, UCT_IFACE_FEATURE_PUT = UCS_BIT(1) +, UCT_IFACE_FEATURE_GET = UCS_BIT(2) +, UCT_IFACE_FEATURE_AMO32 = UCS_BIT(3) +,
+  UCT_IFACE_FEATURE_AMO64 = UCS_BIT(4) +, UCT_IFACE_FEATURE_TAG = UCS_BIT(5) +, UCT_IFACE_FEATURE_FLUSH_REMOTE = UCS_BIT(6) +, UCT_IFACE_FEATURE_LAST = UCS_BIT(7) +
+ }
 UCT interface configuration features. More...
 
enum  { UCT_TAG_RECV_CB_INLINE_DATA = UCS_BIT(0) + }
 flags of uct_tag_context. More...
 
enum  uct_cb_param_flags { UCT_CB_PARAM_FLAG_DESC = UCS_BIT(0) +, UCT_CB_PARAM_FLAG_FIRST = UCS_BIT(1) +, UCT_CB_PARAM_FLAG_MORE = UCS_BIT(2) + }
 Flags for active message and tag-matching offload callbacks (callback's parameters). More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

ucs_status_t uct_query_components (uct_component_h **components_p, unsigned *num_components_p)
 Query for list of components.
 
void uct_release_component_list (uct_component_h *components)
 Release the list of components returned from uct_query_components.
 
ucs_status_t uct_component_query (uct_component_h component, uct_component_attr_t *component_attr)
 Get component attributes.
 
ucs_status_t uct_md_open (uct_component_h component, const char *md_name, const uct_md_config_t *config, uct_md_h *md_p)
 Open a memory domain.
 
void uct_md_close (uct_md_h md)
 Close a memory domain.
 
ucs_status_t uct_md_query_tl_resources (uct_md_h md, uct_tl_resource_desc_t **resources_p, unsigned *num_resources_p)
 Query for transport resources.
 
void uct_release_tl_resource_list (uct_tl_resource_desc_t *resources)
 Release the list of resources returned from uct_md_query_tl_resources.
 
ucs_status_t uct_md_iface_config_read (uct_md_h md, const char *tl_name, const char *env_prefix, const char *filename, uct_iface_config_t **config_p)
 Read transport-specific interface configuration.
 
void uct_config_release (void *config)
 Release configuration memory returned from uct_md_iface_config_read(), uct_md_config_read(), or from uct_cm_config_read().
 
ucs_status_t uct_iface_open (uct_md_h md, uct_worker_h worker, const uct_iface_params_t *params, const uct_iface_config_t *config, uct_iface_h *iface_p)
 Open a communication interface.
 
void uct_iface_close (uct_iface_h iface)
 Close and destroy an interface.
 
ucs_status_t uct_iface_query (uct_iface_h iface, uct_iface_attr_t *iface_attr)
 Get interface attributes.
 
ucs_status_t uct_iface_get_device_address (uct_iface_h iface, uct_device_addr_t *addr)
 Get address of the device the interface is using.
 
ucs_status_t uct_iface_get_address (uct_iface_h iface, uct_iface_addr_t *addr)
 Get interface address.
 
int uct_iface_is_reachable (const uct_iface_h iface, const uct_device_addr_t *dev_addr, const uct_iface_addr_t *iface_addr)
 Check if remote iface address is reachable.
 
ucs_status_t uct_ep_check (const uct_ep_h ep, unsigned flags, uct_completion_t *comp)
 check if the destination endpoint is alive in respect to UCT library
 
ucs_status_t uct_iface_event_fd_get (uct_iface_h iface, int *fd_p)
 Obtain a notification file descriptor for polling.
 
ucs_status_t uct_iface_event_arm (uct_iface_h iface, unsigned events)
 Turn on event notification for the next event.
 
ucs_status_t uct_iface_mem_alloc (uct_iface_h iface, size_t length, unsigned flags, const char *name, uct_allocated_memory_t *mem)
 Allocate memory which can be used for zero-copy communications.
 
void uct_iface_mem_free (const uct_allocated_memory_t *mem)
 Release memory allocated with uct_iface_mem_alloc().
 
ucs_status_t uct_ep_create (const uct_ep_params_t *params, uct_ep_h *ep_p)
 Create new endpoint.
 
void uct_ep_destroy (uct_ep_h ep)
 Destroy an endpoint.
 
ucs_status_t uct_ep_get_address (uct_ep_h ep, uct_ep_addr_t *addr)
 Get endpoint address.
 
ucs_status_t uct_ep_connect_to_ep (uct_ep_h ep, const uct_device_addr_t *dev_addr, const uct_ep_addr_t *ep_addr)
 Connect endpoint to a remote endpoint.
 
ucs_status_t uct_iface_flush (uct_iface_h iface, unsigned flags, uct_completion_t *comp)
 Flush outstanding communication operations on an interface.
 
ucs_status_t uct_iface_fence (uct_iface_h iface, unsigned flags)
 Ensures ordering of outstanding communications on the interface. Operations issued on the interface prior to this call are guaranteed to be completed before any subsequent communication operations to the same interface which follow the call to fence.
 
ucs_status_t uct_ep_pending_add (uct_ep_h ep, uct_pending_req_t *req, unsigned flags)
 Add a pending request to an endpoint.
 
void uct_ep_pending_purge (uct_ep_h ep, uct_pending_purge_callback_t cb, void *arg)
 Remove all pending requests from an endpoint.
 
ucs_status_t uct_ep_flush (uct_ep_h ep, unsigned flags, uct_completion_t *comp)
 Flush outstanding communication operations on an endpoint.
 
ucs_status_t uct_ep_fence (uct_ep_h ep, unsigned flags)
 Ensures ordering of outstanding communications on the endpoint. Operations issued on the endpoint prior to this call are guaranteed to be completed before any subsequent communication operations to the same endpoint which follow the call to fence.
 
void uct_iface_progress_enable (uct_iface_h iface, unsigned flags)
 Enable synchronous progress for the interface.
 
void uct_iface_progress_disable (uct_iface_h iface, unsigned flags)
 Disable synchronous progress for the interface.
 
unsigned uct_iface_progress (uct_iface_h iface)
 Perform a progress on an interface.
 
static UCS_F_ALWAYS_INLINE void uct_completion_update_status (uct_completion_t *comp, ucs_status_t status)
 Update status of UCT completion handle.
 
+

Detailed Description

+

This section describes a concept of the Communication Resource and routines associated with the concept.

+

Data Structure Documentation

+ +

◆ uct_md_resource_desc

+ +
+
+ + + + +
struct uct_md_resource_desc
+
+

This structure describes a memory domain resource.

+
+ + + + +
Data Fields
+char +md_name[UCT_MD_NAME_MAX] +

Memory domain name

+
+ +
+
+ +

◆ uct_component_attr

+ +
+
+ + + + +
struct uct_component_attr
+
+

This structure defines the attributes for UCT component. It is used for uct_component_query

+
Examples
uct_hello_world.c.
+
+
+ + + + + + + + + + + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from uct_component_attr_field. Fields not specified in this mask will be ignored. Provides ABI compatibility with respect to adding new fields.

+
+char +name[UCT_COMPONENT_NAME_MAX] +

Component name

+
+unsigned +md_resource_count +

Number of memory-domain resources

+
+uct_md_resource_desc_t * +md_resources +

Array of memory domain resources. When used, it should be initialized prior to calling uct_component_query with a pointer to an array, which is large enough to hold all memory domain resource entries. After the call, this array will be filled with information about existing memory domain resources. In order to allocate this array, you can call uct_component_query twice: The first time would only obtain the amount of entries required, by specifying UCT_COMPONENT_ATTR_FIELD_MD_RESOURCE_COUNT in field_mask. Then the array could be allocated with the returned number of entries, and passed to a second call to uct_component_query, this time setting field_mask to UCT_COMPONENT_ATTR_FIELD_MD_RESOURCES.

+
+uint64_t +flags +

Flags as defined by UCT_COMPONENT_FLAG_xx.

+
+ +
+
+ +

◆ uct_tl_resource_desc

+ +
+
+ + + + +
struct uct_tl_resource_desc
+
+

Resource descriptor is an object representing the network resource. Resource descriptor could represent a stand-alone communication resource such as an HCA port, network interface, or multiple resources such as multiple network interfaces or communication ports. It could also represent virtual communication resources that are defined over a single physical network interface.

+
Examples
uct_hello_world.c.
+
+
+ + + + + + + + + + + + + +
Data Fields
+char +tl_name[UCT_TL_NAME_MAX] +

Transport name

+
+char +dev_name[UCT_DEVICE_NAME_MAX] +

Hardware device name

+
+uct_device_type_t +dev_type +

The device represented by this resource (e.g. UCT_DEVICE_TYPE_NET for a network interface)

+
+ucs_sys_device_t +sys_device +

The identifier associated with the device bus_id as captured in ucs_sys_bus_id_t struct

+
+ +
+
+ +

◆ uct_iface_attr

+ +
+
+ + + + +
struct uct_iface_attr
+
+
Examples
uct_hello_world.c.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Data Fields
+struct uct_iface_attr.cap +cap +

Interface capabilities

+
+size_t +device_addr_len +

Size of device address

+
+size_t +iface_addr_len +

Size of interface address

+
+size_t +ep_addr_len +

Size of endpoint address

+
+size_t +max_conn_priv +

Max size of the iface's private data. used for connection establishment with sockaddr

+
+struct sockaddr_storage +listen_sockaddr +

Sockaddr on which this iface is listening.

+
+double +overhead +

Message overhead, seconds

+
+uct_ppn_bandwidth_t +bandwidth +

Bandwidth model

+
+ucs_linear_func_t +latency +

Latency as function of number of active endpoints

+
+uint8_t +priority +

Priority of device

+
+size_t +max_num_eps +

Maximum number of endpoints

+
+unsigned +dev_num_paths +

How many network paths can be utilized on the device used by this interface for optimal performance. Endpoints that connect to the same remote address but use different paths can potentially achieve higher total bandwidth compared to using only a single endpoint.

+
+ +
+
+ +

◆ uct_iface_params

+ +
+
+ + + + +
struct uct_iface_params
+
+

This structure should be allocated by the user and should be passed to uct_iface_open. User has to initialize all fields of this structure.

+
Examples
uct_hello_world.c.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from uct_iface_params_field. Fields not specified in this mask will be ignored.

+
+ucs_cpu_set_t +cpu_mask +

Mask of CPUs to use for resources

+
+uint64_t +open_mode +

Interface open mode bitmap. uct_iface_open_mode

+
+union uct_iface_params.mode +mode +

Mode-specific parameters

+
+ucs_stats_node_t * +stats_root +

Root in the statistics tree. Can be NULL. If non NULL, it will be a root of uct_iface object in the statistics tree.

+
+size_t +rx_headroom +

How much bytes to reserve before the receive segment.

+
+void * +err_handler_arg +

Custom argument of err_handler.

+
+uct_error_handler_t +err_handler +

The callback to handle transport level error.

+
+uint32_t +err_handler_flags +

Callback flags to indicate where the err_handler callback can be invoked from. uct_cb_flags

+
+void * +eager_arg +

These callbacks are only relevant for HW Tag Matching

+
+uct_tag_unexp_eager_cb_t +eager_cb +

Callback for tag matching unexpected eager messages

+
+void * +rndv_arg +
+uct_tag_unexp_rndv_cb_t +rndv_cb +

Callback for tag matching unexpected rndv messages

+
+void * +async_event_arg +
+uct_async_event_cb_t +async_event_cb +

Callback for asynchronous event handling. The callback will be invoked from UCT transport when there are new events to be read by user if the iface has UCT_IFACE_FLAG_EVENT_ASYNC_CB capability

+
+ucs_time_t +keepalive_interval +
+size_t +am_alignment +

Desired alignment for Active Messages on the receiver. Note that only data received in the UCT descriptor can be aligned (i.e. UCT_CB_PARAM_FLAG_DESC flag is provided in the Active Message handler callback). The provided value must be power of 2. The default value is 1.

+
+size_t +am_align_offset +

Offset in the Active Message receive buffer, which should be aligned to the am_alignment boundary. Note this parameter has no effect without setting am_alignment parameter. The provided value must be less than the given am_alignment value. The default value is 0.

+

+-+ pointer to data in uct_am_callback_t | | + alignment boundary | | v v +----------------—+ | align | | | offset | | +----------------—+

+
+uint64_t +features +

UCT features that are used for interface initialization.

+
+ +
+
+ +

◆ uct_ep_params

+ +
+
+ + + + +
struct uct_ep_params
+
+
Examples
uct_hello_world.c.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Data Fields
+uint64_t +field_mask +

Mask of valid fields in this structure, using bits from uct_ep_params_field. Fields not specified by this mask will be ignored.

+
+uct_iface_h +iface +

Interface to create the endpoint on. Either iface or cm field must be initialized but not both.

+
+void * +user_data +

User data associated with the endpoint.

+
+const uct_device_addr_t * +dev_addr +

The device address to connect to on the remote peer. This must be defined together with uct_ep_params_t::iface_addr to create an endpoint connected to a remote interface.

+
+const uct_iface_addr_t * +iface_addr +

This specifies the remote address to use when creating an endpoint that is connected to a remote interface.

Note
This requires UCT_IFACE_FLAG_CONNECT_TO_IFACE capability.
+
+const ucs_sock_addr_t * +sockaddr +

The sockaddr to connect to on the remote peer. If set, uct_ep_create will create an endpoint for a connection to the remote peer, specified by its socket address.

Note
The interface in this routine requires the UCT_IFACE_FLAG_CONNECT_TO_SOCKADDR capability.
+
+uint32_t +sockaddr_cb_flags +

uct_cb_flags to indicate uct_ep_params_t::sockaddr_pack_cb, uct_ep_params_t::sockaddr_cb_client, uct_ep_params_t::sockaddr_cb_server, uct_ep_params_t::disconnect_cb and uct_ep_params_t::cm_resolve_cb behavior. If none from these are not set, this field will be ignored.

+
+uct_cm_ep_priv_data_pack_callback_t +sockaddr_pack_cb +

Callback that will be used for filling the user's private data to be delivered to the remote peer by the callback on the server or client side. This field is only valid if uct_ep_params_t::sockaddr is set.

Note
It is never guaranteed that the callback will be called. If, for example, the endpoint goes into error state before issuing the connection request, the callback will not be invoked.
+
+Can not be set together with uct_ep_params_t::private_data or uct_ep_params_t::cm_resolve_cb.
+
+uct_cm_h +cm +

The connection manager object as created by uct_cm_open. Either cm or iface field must be initialized but not both.

+
+uct_conn_request_h +conn_request +

Connection request that was passed to uct_cm_listener_conn_request_args_t::conn_request.

Note
After a call to uct_ep_create, params.conn_request is consumed and should not be used anymore, even if the call returns with an error.
+
+uct_cm_ep_client_connect_callback_t +sockaddr_cb_client +

Callback that will be invoked when the endpoint on the client side is being connected to the server by a connection manager uct_cm_h .

+
+uct_cm_ep_server_conn_notify_callback_t +sockaddr_cb_server +

Callback that will be invoked when the endpoint on the server side is being connected to a client by a connection manager uct_cm_h .

+
+uct_ep_disconnect_cb_t +disconnect_cb +

Callback that will be invoked when the endpoint is disconnected.

+
+unsigned +path_index +

Index of the path which the endpoint should use, must be in the range 0..(uct_iface_attr_t::dev_num_paths - 1).

+
+uct_cm_ep_resolve_callback_t +cm_resolve_cb +

This callback is invoked when the remote server address provided in field uct_ep_params_t::sockaddr is resolved to the local device to be used for connection establishment.

Note
This field is mutually exclusive with uct_ep_params::sockaddr_pack_cb.
+
+const void * +private_data +

Private data to be passed from server to client. Can be used only along with uct_ep_params::conn_request.

Note
This field is mutually exclusive with uct_ep_params::sockaddr_pack_cb.
+
+size_t +private_data_length +

Length of uct_ep_params::private_data, the maximal allowed value is indicated by the uct_cm_attr::max_conn_priv.

+
+const ucs_sock_addr_t * +local_sockaddr +

The sockaddr to bind locally. If set, uct_ep_create will create an endpoint binding to this local sockaddr.

Note
The interface in this routine requires the UCT_IFACE_FLAG_CONNECT_TO_SOCKADDR capability.
+
+ +
+
+ +

◆ uct_completion

+ +
+
+ + + + +
struct uct_completion
+
+

This structure should be allocated by the user and can be passed to communication primitives. The user must initialize all fields of the structure. If the operation returns UCS_INPROGRESS, this structure will be in use by the transport until the operation completes. When the operation completes, "count" field is decremented by 1, and whenever it reaches 0 - the callback is called.

+

Notes:

    +
  • The same structure can be passed multiple times to communication functions without the need to wait for completion.
  • +
  • If the number of operations is smaller than the initial value of the counter, the callback will not be called at all, so it may be left undefined.
  • +
  • status field is required to track the first time the error occurred, and report it via a callback when count reaches 0.
  • +
+
Examples
uct_hello_world.c.
+
+
+ + + + + + + + + + +
Data Fields
+uct_completion_callback_t +func +

User callback function

+
+int +count +

Completion counter

+
+ucs_status_t +status +

Completion status, this field must be initialized with UCS_OK before first operation is started.

+
+ +
+
+ +

◆ uct_pending_req

+ +
+
+ + + + +
struct uct_pending_req
+
+

This structure should be passed to uct_ep_pending_add() and is used to signal new available resources back to user.

+
+ + + + + + + +
Data Fields
+uct_pending_callback_t +func +

User callback function

+
+char +priv[UCT_PENDING_REQ_PRIV_LEN] +

Used internally by UCT

+
+ +
+
+ +

◆ uct_iov

+ +
+
+ + + + +
struct uct_iov
+
+

Specifies a list of buffers which can be used within a single data transfer function call.

+
 buffer
+ |
+ +-----------+-------+-----------+-------+-----------+
+ |  payload  | empty |  payload  | empty |  payload  |
+ +-----------+-------+-----------+-------+-----------+
+ |<-length-->|       |<-length-->|       |<-length-->|
+ |<---- stride ----->|<---- stride ----->|
+
Note
The sum of lengths in all iov list must be less or equal to max_zcopy of the respective communication operation.
+
+If length or count are zero, the memory pointed to by buffer will not be accessed. Otherwise, buffer must point to valid memory.
+
+If count is one, every iov entry specifies a single contiguous data block
+
+If count > 1, each iov entry specifies a strided block of count elements and distance of stride byte between consecutive elements
+
Examples
uct_hello_world.c.
+
+
+ + + + + + + + + + + + + + + + +
Data Fields
+void * +buffer +

Data buffer

+
+size_t +length +

Length of the payload in bytes

+
+uct_mem_h +memh +

Local memory key descriptor for the data

+
+size_t +stride +

Stride between beginnings of payload elements in the buffer in bytes

+
+unsigned +count +

Number of payload elements in the buffer

+
+ +
+
+ +

◆ uct_iface_attr.cap

+ +
+
+ + + + +
struct uct_iface_attr.cap
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Data Fields
+struct uct_iface_attr.cap.put +put +

Attributes for PUT operations

+
+struct uct_iface_attr.cap.get +get +

Attributes for GET operations

+
+struct uct_iface_attr.cap.am +am +

Attributes for AM operations

+
+struct uct_iface_attr.cap.tag +tag +

Attributes for TAG operations

+
+struct uct_iface_attr.cap.atomic32 +atomic32 +
+struct uct_iface_attr.cap.atomic64 +atomic64 +

Attributes for atomic operations

+
+uint64_t +flags +

Flags from UCT interface operations and capabilities

+
+uint64_t +event_flags +

Flags from UCT interface for asynchronous event capabilities

+
+ +
+
+ +

◆ uct_iface_attr.cap.put

+ +
+
+ + + + +
struct uct_iface_attr.cap.put
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
Data Fields
+size_t +max_short +

Maximal size for put_short

+
+size_t +max_bcopy +

Maximal size for put_bcopy

+
+size_t +min_zcopy +

Minimal size for put_zcopy (total of uct_iov_t::length of the iov parameter)

+
+size_t +max_zcopy +

Maximal size for put_zcopy (total of uct_iov_t::length of the iov parameter)

+
+size_t +opt_zcopy_align +

Optimal alignment for zero-copy buffer address

+
+size_t +align_mtu +

MTU used for alignment

+
+size_t +max_iov +

Maximal iovcnt parameter in uct_ep_put_zcopy

+
+ +
+
+ +

◆ uct_iface_attr.cap.get

+ +
+
+ + + + +
struct uct_iface_attr.cap.get
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
Data Fields
+size_t +max_short +

Maximal size for get_short

+
+size_t +max_bcopy +

Maximal size for get_bcopy

+
+size_t +min_zcopy +

Minimal size for get_zcopy (total of uct_iov_t::length of the iov parameter)

+
+size_t +max_zcopy +

Maximal size for get_zcopy (total of uct_iov_t::length of the iov parameter)

+
+size_t +opt_zcopy_align +

Optimal alignment for zero-copy buffer address

+
+size_t +align_mtu +

MTU used for alignment

+
+size_t +max_iov +

Maximal iovcnt parameter in uct_ep_get_zcopy

+
+ +
+
+ +

◆ uct_iface_attr.cap.am

+ +
+
+ + + + +
struct uct_iface_attr.cap.am
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Data Fields
+size_t +max_short +

Total maximum size (incl. the header)

+
+size_t +max_bcopy +

Total maximum size (incl. the header)

+
+size_t +min_zcopy +

Minimal size for am_zcopy (incl. the header and total of uct_iov_t::length of the iov parameter)

+
+size_t +max_zcopy +

Total max. size (incl. the header and total of uct_iov_t::length of the iov parameter)

+
+size_t +opt_zcopy_align +

Optimal alignment for zero-copy buffer address

+
+size_t +align_mtu +

MTU used for alignment

+
+size_t +max_hdr +

Max. header size for zcopy

+
+size_t +max_iov +

Maximal iovcnt parameter in uct_ep_am_zcopy

+
+ +
+
+ +

◆ uct_iface_attr.cap.tag

+ +
+
+ + + + +
struct uct_iface_attr.cap.tag
+
+
+ + + + + + + + + + +
Data Fields
+struct uct_iface_attr.cap.tag.recv +recv +
+struct uct_iface_attr.cap.tag.eager +eager +

Attributes related to eager protocol

+
+struct uct_iface_attr.cap.tag.rndv +rndv +

Attributes related to rendezvous protocol

+
+ +
+
+ +

◆ uct_iface_attr.cap.tag.recv

+ +
+
+ + + + +
struct uct_iface_attr.cap.tag.recv
+
+
+ + + + + + + + + + + + + +
Data Fields
+size_t +min_recv +

Minimal allowed length of posted receive buffer

+
+size_t +max_zcopy +

Maximal allowed data length in uct_iface_tag_recv_zcopy

+
+size_t +max_iov +

Maximal iovcnt parameter in uct_iface_tag_recv_zcopy

+
+size_t +max_outstanding +

Maximal number of simultaneous receive operations

+
+ +
+
+ +

◆ uct_iface_attr.cap.tag.eager

+ +
+
+ + + + +
struct uct_iface_attr.cap.tag.eager
+
+
+ + + + + + + + + + + + + +
Data Fields
+size_t +max_short +

Maximal allowed data length in uct_ep_tag_eager_short

+
+size_t +max_bcopy +

Maximal allowed data length in uct_ep_tag_eager_bcopy

+
+size_t +max_zcopy +

Maximal allowed data length in uct_ep_tag_eager_zcopy

+
+size_t +max_iov +

Maximal iovcnt parameter in uct_ep_tag_eager_zcopy

+
+ +
+
+ +

◆ uct_iface_attr.cap.tag.rndv

+ +
+
+ + + + +
struct uct_iface_attr.cap.tag.rndv
+
+
+ + + + + + + + + + +
Data Fields
+size_t +max_zcopy +

Maximal allowed data length in uct_ep_tag_rndv_zcopy

+
+size_t +max_hdr +

Maximal allowed header length in uct_ep_tag_rndv_zcopy and uct_ep_tag_rndv_request

+
+size_t +max_iov +

Maximal iovcnt parameter in uct_ep_tag_rndv_zcopy

+
+ +
+
+ +

◆ uct_iface_attr.cap.atomic32

+ +
+
+ + + + +
struct uct_iface_attr.cap.atomic32
+
+
+ + + + + + + +
Data Fields
+uint64_t +op_flags +

Attributes for atomic-post operations

+
+uint64_t +fop_flags +

Attributes for atomic-fetch operations

+
+ +
+
+ +

◆ uct_iface_attr.cap.atomic64

+ +
+
+ + + + +
struct uct_iface_attr.cap.atomic64
+
+
+ + + + + + + +
Data Fields
+uint64_t +op_flags +

Attributes for atomic-post operations

+
+uint64_t +fop_flags +

Attributes for atomic-fetch operations

+
+ +
+
+ +

◆ uct_iface_params.mode

+ +
+
+ + + + +
union uct_iface_params.mode
+
+

Mode-specific parameters

+
+ + + + + + + +
Data Fields
+struct uct_iface_params.mode.device +device +

The fields in this structure (tl_name and dev_name) need to be set only when the UCT_IFACE_OPEN_MODE_DEVICE bit is set in uct_iface_params_t::open_mode This will make uct_iface_open open the interface on the specified device.

+
+struct uct_iface_params.mode.sockaddr +sockaddr +

These callbacks and address are only relevant for client-server connection establishment with sockaddr and are needed on the server side. The callbacks and address need to be set when the UCT_IFACE_OPEN_MODE_SOCKADDR_SERVER bit is set in uct_iface_params_t::open_mode. This will make uct_iface_open open the interface on the specified address as a server.

+
+ +
+
+ +

◆ uct_iface_params.mode.device

+ +
+
+ + + + +
struct uct_iface_params.mode.device
+
+

The fields in this structure (tl_name and dev_name) need to be set only when the UCT_IFACE_OPEN_MODE_DEVICE bit is set in uct_iface_params_t::open_mode This will make uct_iface_open open the interface on the specified device.

+
+ + + + + + + +
Data Fields
+const char * +tl_name +

Transport name

+
+const char * +dev_name +

Device Name

+
+ +
+
+ +

◆ uct_iface_params.mode.sockaddr

+ +
+
+ + + + +
struct uct_iface_params.mode.sockaddr
+
+

These callbacks and address are only relevant for client-server connection establishment with sockaddr and are needed on the server side. The callbacks and address need to be set when the UCT_IFACE_OPEN_MODE_SOCKADDR_SERVER bit is set in uct_iface_params_t::open_mode. This will make uct_iface_open open the interface on the specified address as a server.

+
+ + + + + + + + + + + + + +
Data Fields
+ucs_sock_addr_t +listen_sockaddr +
+void * +conn_request_arg +

Argument for connection request callback

+
+uct_sockaddr_conn_request_callback_t +conn_request_cb +

Callback for an incoming connection request on the server

+
+uint32_t +cb_flags +

Callback flags to indicate where the callback can be invoked from. uct_cb_flags

+
+ +
+
+

Typedef Documentation

+ +

◆ uct_md_resource_desc_t

+ +
+
+ + + + +
typedef struct uct_md_resource_desc uct_md_resource_desc_t
+
+

This structure describes a memory domain resource.

+ +
+
+ +

◆ uct_component_attr_t

+ +
+
+ + + + +
typedef struct uct_component_attr uct_component_attr_t
+
+

This structure defines the attributes for UCT component. It is used for uct_component_query

+ +
+
+ +

◆ uct_tl_resource_desc_t

+ +
+
+ + + + +
typedef struct uct_tl_resource_desc uct_tl_resource_desc_t
+
+

Resource descriptor is an object representing the network resource. Resource descriptor could represent a stand-alone communication resource such as an HCA port, network interface, or multiple resources such as multiple network interfaces or communication ports. It could also represent virtual communication resources that are defined over a single physical network interface.

+ +
+
+ +

◆ uct_component_h

+ +
+
+ + + + +
typedef struct uct_component* uct_component_h
+
+ +
+
+ +

◆ uct_iface_h

+ +
+
+ + + + +
typedef struct uct_iface* uct_iface_h
+
+ +
+
+ +

◆ uct_iface_config_t

+ +
+
+ + + + +
typedef struct uct_iface_config uct_iface_config_t
+
+ +
+
+ +

◆ uct_md_config_t

+ +
+
+ + + + +
typedef struct uct_md_config uct_md_config_t
+
+ +
+
+ +

◆ uct_cm_config_t

+ +
+
+ + + + +
typedef struct uct_cm_config uct_cm_config_t
+
+ +
+
+ +

◆ uct_ep_h

+ +
+
+ + + + +
typedef struct uct_ep* uct_ep_h
+
+ +
+
+ +

◆ uct_mem_h

+ +
+
+ + + + +
typedef void* uct_mem_h
+
+ +
+
+ +

◆ uct_rkey_t

+ +
+
+ + + + +
typedef uintptr_t uct_rkey_t
+
+ +
+
+ +

◆ uct_md_h

+ +
+
+ + + + +
typedef struct uct_md* uct_md_h
+
+ +
+
+ +

◆ uct_md_ops_t

+ +
+
+ + + + +
typedef struct uct_md_ops uct_md_ops_t
+
+ +
+
+ +

◆ uct_rkey_ctx_h

+ +
+
+ + + + +
typedef void* uct_rkey_ctx_h
+
+ +
+
+ +

◆ uct_iface_attr_t

+ +
+
+ + + + +
typedef struct uct_iface_attr uct_iface_attr_t
+
+ +
+
+ +

◆ uct_iface_params_t

+ +
+
+ + + + +
typedef struct uct_iface_params uct_iface_params_t
+
+ +
+
+ +

◆ uct_ep_attr_t

+ +
+
+ + + + +
typedef struct uct_ep_attr uct_ep_attr_t
+
+ +
+
+ +

◆ uct_md_attr_t

+ +
+
+ + + + +
typedef struct uct_md_attr uct_md_attr_t
+
+ +
+
+ +

◆ uct_completion_t

+ +
+
+ + + + +
typedef struct uct_completion uct_completion_t
+
+ +
+
+ +

◆ uct_pending_req_t

+ +
+
+ + + + +
typedef struct uct_pending_req uct_pending_req_t
+
+ +
+
+ +

◆ uct_worker_h

+ +
+
+ + + + +
typedef struct uct_worker* uct_worker_h
+
+ +
+
+ +

◆ uct_md_t

+ +
+
+ + + + +
typedef struct uct_md uct_md_t
+
+ +
+
+ +

◆ uct_am_trace_type_t

+ +
+
+ + + + +
typedef enum uct_am_trace_type uct_am_trace_type_t
+
+ +
+
+ +

◆ uct_device_addr_t

+ +
+
+ + + + +
typedef struct uct_device_addr uct_device_addr_t
+
+ +
+
+ +

◆ uct_iface_addr_t

+ +
+
+ + + + +
typedef struct uct_iface_addr uct_iface_addr_t
+
+ +
+
+ +

◆ uct_ep_addr_t

+ +
+
+ + + + +
typedef struct uct_ep_addr uct_ep_addr_t
+
+ +
+
+ +

◆ uct_ep_params_t

+ +
+
+ + + + +
typedef struct uct_ep_params uct_ep_params_t
+
+ +
+
+ +

◆ uct_ep_connect_params_t

+ +
+
+ +
+
+ +

◆ uct_cm_attr_t

+ +
+
+ + + + +
typedef struct uct_cm_attr uct_cm_attr_t
+
+ +
+
+ +

◆ uct_cm_t

+ +
+
+ + + + +
typedef struct uct_cm uct_cm_t
+
+ +
+
+ +

◆ uct_cm_h

+ +
+
+ + + + +
typedef uct_cm_t* uct_cm_h
+
+ +
+
+ +

◆ uct_listener_attr_t

+ +
+
+ + + + +
typedef struct uct_listener_attr uct_listener_attr_t
+
+ +
+
+ +

◆ uct_listener_h

+ +
+
+ + + + +
typedef struct uct_listener* uct_listener_h
+
+ +
+
+ +

◆ uct_listener_params_t

+ +
+
+ + + + +
typedef struct uct_listener_params uct_listener_params_t
+
+ +
+
+ +

◆ uct_tag_context_t

+ +
+
+ + + + +
typedef struct uct_tag_context uct_tag_context_t
+
+ +
+
+ +

◆ uct_tag_t

+ +
+
+ + + + +
typedef uint64_t uct_tag_t
+
+ +
+
+ +

◆ uct_worker_cb_id_t

+ +
+
+ + + + +
typedef int uct_worker_cb_id_t
+
+ +
+
+ +

◆ uct_conn_request_h

+ +
+
+ + + + +
typedef void* uct_conn_request_h
+
+ +
+
+ +

◆ uct_iov_t

+ +
+
+ + + + +
typedef struct uct_iov uct_iov_t
+
+

Specifies a list of buffers which can be used within a single data transfer function call.

+
 buffer
+ |
+ +-----------+-------+-----------+-------+-----------+
+ |  payload  | empty |  payload  | empty |  payload  |
+ +-----------+-------+-----------+-------+-----------+
+ |<-length-->|       |<-length-->|       |<-length-->|
+ |<---- stride ----->|<---- stride ----->|
+
Note
The sum of lengths in all iov list must be less or equal to max_zcopy of the respective communication operation.
+
+If length or count are zero, the memory pointed to by buffer will not be accessed. Otherwise, buffer must point to valid memory.
+
+If count is one, every iov entry specifies a single contiguous data block
+
+If count > 1, each iov entry specifies a strided block of count elements and distance of stride byte between consecutive elements
+ +
+
+ +

◆ uct_completion_callback_t

+ +
+
+ + + + +
typedef void(* uct_completion_callback_t) (uct_completion_t *self)
+
+
Parameters
+ + +
[in]selfPointer to relevant completion structure, which was initially passed to the operation.
+
+
+ +
+
+ +

◆ uct_pending_callback_t

+ +
+
+ + + + +
typedef ucs_status_t(* uct_pending_callback_t) (uct_pending_req_t *self)
+
+
Parameters
+ + +
[in]selfPointer to relevant pending structure, which was initially passed to the operation.
+
+
+
Returns
UCS_OK - This pending request has completed and should be removed. UCS_INPROGRESS - Some progress was made, but not completed. Keep this request and keep processing the queue. Otherwise - Could not make any progress. Keep this pending request on the queue, and stop processing the queue.
+ +
+
+ +

◆ uct_error_handler_t

+ +
+
+ + + + +
typedef ucs_status_t(* uct_error_handler_t) (void *arg, uct_ep_h ep, ucs_status_t status)
+
+
Note
User should purge a pending queue and do not post any TX operations and cancel all possible outstanding operations prior closing a UCT endpoint.
+
Parameters
+ + + + +
[in]argUser argument to be passed to the callback.
[in]epEndpoint which has failed. Upon return from the callback, this ep is no longer usable and all subsequent operations on this ep will fail with the error code passed in status.
[in]statusStatus indicating error.
+
+
+
Returns
UCS_OK - The error was handled successfully. Otherwise - The error was not handled and is returned back to the transport.
+ +
+
+ +

◆ uct_pending_purge_callback_t

+ +
+
+ + + + +
typedef void(* uct_pending_purge_callback_t) (uct_pending_req_t *self, void *arg)
+
+
Parameters
+ + + +
[in]selfPointer to relevant pending structure, which was initially passed to the operation.
[in]argUser argument to be passed to the callback.
+
+
+ +
+
+ +

◆ uct_pack_callback_t

+ +
+
+ + + + +
typedef size_t(* uct_pack_callback_t) (void *dest, void *arg)
+
+
Parameters
+ + + +
[in]destMemory buffer to pack the data to.
[in]argCustom user-argument.
+
+
+
Returns
Size of the data was actually produced.
+ +
+
+ +

◆ uct_unpack_callback_t

+ +
+
+ + + + +
typedef void(* uct_unpack_callback_t) (void *arg, const void *data, size_t length)
+
+
Parameters
+ + + + +
[in]argCustom user-argument.
[in]dataMemory buffer to unpack the data from.
[in]lengthHow much data to consume (size of "data")
+
+
+
Note
The arguments for this callback are in the same order as libc's memcpy().
+ +
+
+ +

◆ uct_async_event_cb_t

+ +
+
+ + + + +
typedef void(* uct_async_event_cb_t) (void *arg, unsigned flags)
+
+
Parameters
+ + + +
[in]argUser argument to be passed to the callback.
[in]flagsFlags to be passed to the callback (reserved for future use).
+
+
+ +
+
+

Enumeration Type Documentation

+ +

◆ uct_component_attr_field

+ +
+
+ + + + +
enum uct_component_attr_field
+
+

The enumeration allows specifying which fields in uct_component_attr_t are present. It is used for backward compatibility support.

+ + + + + +
Enumerator
UCT_COMPONENT_ATTR_FIELD_NAME 

Component name

+
UCT_COMPONENT_ATTR_FIELD_MD_RESOURCE_COUNT 

MD resource count

+
UCT_COMPONENT_ATTR_FIELD_MD_RESOURCES 

MD resources array

+
UCT_COMPONENT_ATTR_FIELD_FLAGS 

Capability flags

+
+ +
+
+ +

◆ anonymous enum

+ +
+
+ + + + +
anonymous enum
+
+

The enumeration defines bit mask of uct_component_h capabilities in uct_component_attr_t::flags which is set by uct_component_query.

+ + + +
Enumerator
UCT_COMPONENT_FLAG_CM 

If set, the component supports uct_cm_h functionality. See uct_cm_open for details.

+
UCT_COMPONENT_FLAG_RKEY_PTR 

If set, the component supports direct access to remote memory using a local pointer returned from uct_rkey_ptr function.

+
+ +
+
+ +

◆ uct_device_type_t

+ +
+
+ + + + +
enum uct_device_type_t
+
+ + + + + + +
Enumerator
UCT_DEVICE_TYPE_NET 

Network devices

+
UCT_DEVICE_TYPE_SHM 

Shared memory devices

+
UCT_DEVICE_TYPE_ACC 

Acceleration devices

+
UCT_DEVICE_TYPE_SELF 

Loop-back device

+
UCT_DEVICE_TYPE_LAST 
+ +
+
+ +

◆ uct_iface_event_types

+ +
+
+ + + + +
enum uct_iface_event_types
+
+
Note
The UCT_EVENT_RECV and UCT_EVENT_RECV_SIG event types are used to indicate receive-side completions for both tag matching and active messages. If the interface supports signaled receives (UCT_IFACE_FLAG_EVENT_RECV_SIG), then for the messages sent with UCT_SEND_FLAG_SIGNALED flag, UCT_EVENT_RECV_SIG should be triggered on the receiver. Otherwise, UCT_EVENT_RECV should be triggered.
+ + + + +
Enumerator
UCT_EVENT_SEND_COMP 

Send completion event

+
UCT_EVENT_RECV 

Tag or active message received

+
UCT_EVENT_RECV_SIG 

Signaled tag or active message received

+
+ +
+
+ +

◆ uct_flush_flags

+ +
+
+ + + + +
enum uct_flush_flags
+
+ + + + +
Enumerator
UCT_FLUSH_FLAG_LOCAL 

Guarantees that the data transfer is completed but the target buffer may not be updated yet.

+
UCT_FLUSH_FLAG_CANCEL 

The library will make a best effort attempt to cancel all uncompleted operations. However, there is a chance that some operations will not be canceled in which case the user will need to handle their completions through the relevant callbacks. After uct_ep_flush with this flag is completed, the endpoint will be set to error state, and it becomes unusable for send operations and should be destroyed.

+
UCT_FLUSH_FLAG_REMOTE 

Guarantees that all previous UCP memory update operations (put, atomics, etc.) are completed, the target memory of these operation was updated, and the updated memory is globally visible for all processing elements in the system.

+
+ +
+
+ +

◆ uct_progress_types

+ +
+
+ + + + +
enum uct_progress_types
+
+ + + + +
Enumerator
UCT_PROGRESS_SEND 

Progress send operations

+
UCT_PROGRESS_RECV 

Progress receive operations

+
UCT_PROGRESS_THREAD_SAFE 

Enable/disable progress while another thread may be calling ucp_worker_progress().

+
+ +
+
+ +

◆ uct_cb_flags

+ +
+
+ + + + +
enum uct_cb_flags
+
+

List of flags for a callback.

+ + + +
Enumerator
UCT_CB_FLAG_RESERVED 

Reserved for future use.

+
UCT_CB_FLAG_ASYNC 

Callback is allowed to be called from any thread in the process, and therefore should be thread-safe. For example, it may be called from a transport async progress thread. To guarantee async invocation, the interface must have the UCT_IFACE_FLAG_CB_ASYNC flag set. If async callback is requested on an interface which only supports sync callback (i.e., only the UCT_IFACE_FLAG_CB_SYNC flag is set), the callback will be invoked only from the context that called uct_iface_progress).

+
+ +
+
+ +

◆ uct_iface_open_mode

+ +
+
+ + + + +
enum uct_iface_open_mode
+
+ + + + +
Enumerator
UCT_IFACE_OPEN_MODE_DEVICE 

Interface is opened on a specific device

+
UCT_IFACE_OPEN_MODE_SOCKADDR_SERVER 

Interface is opened on a specific address on the server side. This mode will be deprecated in the near future for a better API.

+
UCT_IFACE_OPEN_MODE_SOCKADDR_CLIENT 

Interface is opened on a specific address on the client side This mode will be deprecated in the near future for a better API.

+
+ +
+
+ +

◆ uct_iface_params_field

+ +
+
+ + + + +
enum uct_iface_params_field
+
+

The enumeration allows specifying which fields in uct_iface_params_t are present, for backward compatibility support.

+ + + + + + + + + + + + + + + + + + + + +
Enumerator
UCT_IFACE_PARAM_FIELD_CPU_MASK 

Enables uct_iface_params_t::cpu_mask

+
UCT_IFACE_PARAM_FIELD_OPEN_MODE 

Enables uct_iface_params_t::open_mode

+
UCT_IFACE_PARAM_FIELD_DEVICE 

Enables uct_iface_params_t::mode::device

+
UCT_IFACE_PARAM_FIELD_SOCKADDR 

Enables uct_iface_params_t::mode::sockaddr

+
UCT_IFACE_PARAM_FIELD_STATS_ROOT 

Enables uct_iface_params_t::stats_root

+
UCT_IFACE_PARAM_FIELD_RX_HEADROOM 

Enables uct_iface_params_t::rx_headroom

+
UCT_IFACE_PARAM_FIELD_ERR_HANDLER_ARG 

Enables uct_iface_params_t::err_handler_arg

+
UCT_IFACE_PARAM_FIELD_ERR_HANDLER 

Enables uct_iface_params_t::err_handler

+
UCT_IFACE_PARAM_FIELD_ERR_HANDLER_FLAGS 

Enables uct_iface_params_t::err_handler_flags

+
UCT_IFACE_PARAM_FIELD_HW_TM_EAGER_ARG 

Enables uct_iface_params_t::eager_arg

+
UCT_IFACE_PARAM_FIELD_HW_TM_EAGER_CB 

Enables uct_iface_params_t::eager_cb

+
UCT_IFACE_PARAM_FIELD_HW_TM_RNDV_ARG 

Enables uct_iface_params_t::rndv_arg

+
UCT_IFACE_PARAM_FIELD_HW_TM_RNDV_CB 

Enables uct_iface_params_t::rndv_cb

+
UCT_IFACE_PARAM_FIELD_ASYNC_EVENT_ARG 

Enables uct_iface_params_t::async_event_arg

+
UCT_IFACE_PARAM_FIELD_ASYNC_EVENT_CB 

Enables uct_iface_params_t::async_event_cb

+
UCT_IFACE_PARAM_FIELD_KEEPALIVE_INTERVAL 

Enables uct_iface_params_t::keepalive_interval

+
UCT_IFACE_PARAM_FIELD_AM_ALIGNMENT 

Enables uct_iface_params_t::am_alignment

+
UCT_IFACE_PARAM_FIELD_AM_ALIGN_OFFSET 

Enables uct_iface_params_t::am_align_offset

+
UCT_IFACE_PARAM_FIELD_FEATURES 

Enables uct_iface_params_t::features

+
+ +
+
+ +

◆ uct_ep_params_field

+ +
+
+ + + + +
enum uct_ep_params_field
+
+

The enumeration allows specifying which fields in uct_ep_params_t are present, for backward compatibility support.

+ + + + + + + + + + + + + + + + + + +
Enumerator
UCT_EP_PARAM_FIELD_IFACE 

Enables uct_ep_params::iface

+
UCT_EP_PARAM_FIELD_USER_DATA 

Enables uct_ep_params::user_data

+
UCT_EP_PARAM_FIELD_DEV_ADDR 

Enables uct_ep_params::dev_addr

+
UCT_EP_PARAM_FIELD_IFACE_ADDR 

Enables uct_ep_params::iface_addr

+
UCT_EP_PARAM_FIELD_SOCKADDR 

Enables uct_ep_params::sockaddr

+
UCT_EP_PARAM_FIELD_SOCKADDR_CB_FLAGS 

Enables uct_ep_params::sockaddr_cb_flags

+
UCT_EP_PARAM_FIELD_SOCKADDR_PACK_CB 

Enables uct_ep_params::sockaddr_pack_cb

+
UCT_EP_PARAM_FIELD_CM 

Enables uct_ep_params::cm

+
UCT_EP_PARAM_FIELD_CONN_REQUEST 

Enables uct_ep_params::conn_request

+
UCT_EP_PARAM_FIELD_SOCKADDR_CONNECT_CB_CLIENT 

Enables uct_ep_params::sockaddr_cb_client

+
UCT_EP_PARAM_FIELD_SOCKADDR_NOTIFY_CB_SERVER 

Enables uct_ep_params::sockaddr_cb_server

+
UCT_EP_PARAM_FIELD_SOCKADDR_DISCONNECT_CB 

Enables uct_ep_params::disconnect_cb

+
UCT_EP_PARAM_FIELD_PATH_INDEX 

Enables uct_ep_params::path_index

+
UCT_EP_PARAM_FIELD_CM_RESOLVE_CB 

Enables uct_ep_params::cm_resolve_cb

+
UCT_EP_PARAM_FIELD_PRIV_DATA 

Enables uct_ep_params::private_data

+
UCT_EP_PARAM_FIELD_PRIV_DATA_LENGTH 

Enables uct_ep_params::private_data_length

+
UCT_EP_PARAM_FIELD_LOCAL_SOCKADDR 

Enables uct_ep_params::local_sockaddr

+
+ +
+
+ +

◆ uct_iface_feature

+ +
+
+ + + + +
enum uct_iface_feature
+
+

The enumeration list describes the features supported by UCT. An application can request the features using UCT parameters during UCT iface initialization process.

+ + + + + + + + + +
Enumerator
UCT_IFACE_FEATURE_AM 

Request Active Message support

+
UCT_IFACE_FEATURE_PUT 

Request PUT support

+
UCT_IFACE_FEATURE_GET 

Request GET support

+
UCT_IFACE_FEATURE_AMO32 

Request 32-bit atomic operations support

+
UCT_IFACE_FEATURE_AMO64 

Request 64-bit atomic operations support

+
UCT_IFACE_FEATURE_TAG 

Request tag matching offload support

+
UCT_IFACE_FEATURE_FLUSH_REMOTE 

Request remote flush support

+
UCT_IFACE_FEATURE_LAST 

Used to determine the number of features

+
+ +
+
+ +

◆ anonymous enum

+ +
+
+ + + + +
anonymous enum
+
+ + +
Enumerator
UCT_TAG_RECV_CB_INLINE_DATA 
+ +
+
+ +

◆ uct_cb_param_flags

+ +
+
+ + + + +
enum uct_cb_param_flags
+
+

If UCT_CB_PARAM_FLAG_DESC flag is enabled, then data is part of a descriptor which includes the user-defined rx_headroom, and the callback may return UCS_INPROGRESS and hold on to that descriptor. Otherwise, the data can't be used outside the callback. If needed, the data must be copied-out.

+
 descriptor    data
+ |             |
+ +-------------+-------------------------+
+ | rx_headroom | payload                 |
+ +-------------+-------------------------+
+

UCT_CB_PARAM_FLAG_FIRST and UCT_CB_PARAM_FLAG_MORE flags are relevant for uct_tag_unexp_eager_cb_t callback only. The former value indicates that the data is the first fragment of the message. The latter value means that more fragments of the message yet to be delivered.

+ + + + +
Enumerator
UCT_CB_PARAM_FLAG_DESC 
UCT_CB_PARAM_FLAG_FIRST 
UCT_CB_PARAM_FLAG_MORE 
+ +
+
+

Function Documentation

+ +

◆ uct_query_components()

+ +
+
+ + + + + + + + + + + +
ucs_status_t uct_query_components (uct_component_h ** components_p,
unsigned * num_components_p )
+
+

Obtain the list of transport components available on the current system.

+
Parameters
+ + + +
[out]components_pFilled with a pointer to an array of component handles.
[out]num_components_pFilled with the number of elements in the array.
+
+
+
Returns
UCS_OK if successful, or UCS_ERR_NO_MEMORY if failed to allocate the array of component handles.
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_release_component_list()

+ +
+
+ + + + + + + +
void uct_release_component_list (uct_component_h * components)
+
+

This routine releases the memory associated with the list of components allocated by uct_query_components.

+
Parameters
+ + +
[in]componentsArray of component handles to release.
+
+
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_component_query()

+ +
+
+ + + + + + + + + + + +
ucs_status_t uct_component_query (uct_component_h component,
uct_component_attr_t * component_attr )
+
+

Query various attributes of a component.

+
Parameters
+ + + +
[in]componentComponent handle to query attributes for. The handle can be obtained from uct_query_components.
[in,out]component_attrFilled with component attributes.
+
+
+
Returns
UCS_OK if successful, or nonzero error code in case of failure.
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_md_open()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_md_open (uct_component_h component,
const char * md_name,
const uct_md_config_t * config,
uct_md_h * md_p )
+
+

Open a specific memory domain. All communications and memory operations are performed in the context of a specific memory domain. Therefore it must be created before communication resources.

+
Parameters
+ + + + + +
[in]componentComponent on which to open the memory domain, as returned from uct_query_components.
[in]md_nameMemory domain name, as returned from uct_component_query.
[in]configMD configuration options. Should be obtained from uct_md_config_read() function, or point to MD-specific structure which extends uct_md_config_t.
[out]md_pFilled with a handle to the memory domain.
+
+
+
Returns
Error code.
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_md_close()

+ +
+
+ + + + + + + +
void uct_md_close (uct_md_h md)
+
+
Parameters
+ + +
[in]mdMemory domain to close.
+
+
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_md_query_tl_resources()

+ +
+
+ + + + + + + + + + + + + + + + +
ucs_status_t uct_md_query_tl_resources (uct_md_h md,
uct_tl_resource_desc_t ** resources_p,
unsigned * num_resources_p )
+
+

This routine queries the memory domain for communication resources that are available for it.

+
Parameters
+ + + + +
[in]mdHandle to memory domain.
[out]resources_pFilled with a pointer to an array of resource descriptors.
[out]num_resources_pFilled with the number of resources in the array.
+
+
+
Returns
Error code.
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_release_tl_resource_list()

+ +
+
+ + + + + + + +
void uct_release_tl_resource_list (uct_tl_resource_desc_t * resources)
+
+

This routine releases the memory associated with the list of resources allocated by uct_md_query_tl_resources.

+
Parameters
+ + +
[in]resourcesArray of resource descriptors to release.
+
+
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_md_iface_config_read()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_md_iface_config_read (uct_md_h md,
const char * tl_name,
const char * env_prefix,
const char * filename,
uct_iface_config_t ** config_p )
+
+
Parameters
+ + + + + + +
[in]mdMemory domain on which the transport's interface was registered.
[in]tl_nameTransport name. If md supports UCT_MD_FLAG_SOCKADDR, the transport name is allowed to be NULL. In this case, the configuration returned from this routine should be passed to uct_iface_open with UCT_IFACE_OPEN_MODE_SOCKADDR_SERVER or UCT_IFACE_OPEN_MODE_SOCKADDR_CLIENT set in uct_iface_params_t::open_mode. In addition, if tl_name is not NULL, the configuration returned from this routine should be passed to uct_iface_open with UCT_IFACE_OPEN_MODE_DEVICE set in uct_iface_params_t::open_mode.
[in]env_prefixIf non-NULL, search for environment variables starting with this UCT_<prefix>_. Otherwise, search for environment variables starting with just UCT_.
[in]filenameIf non-NULL, read configuration from this file. If the file does not exist, it will be ignored.
[out]config_pFilled with a pointer to configuration.
+
+
+
Returns
Error code.
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_config_release()

+ +
+
+ + + + + + + +
void uct_config_release (void * config)
+
+
Parameters
+ + +
[in]configConfiguration to release.
+
+
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_iface_open()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_iface_open (uct_md_h md,
uct_worker_h worker,
const uct_iface_params_t * params,
const uct_iface_config_t * config,
uct_iface_h * iface_p )
+
+
Parameters
+ + + + + + +
[in]mdMemory domain to create the interface on.
[in]workerHandle to worker which will be used to progress communications on this interface.
[in]paramsUser defined uct_iface_params_t parameters.
[in]configInterface configuration options. Should be obtained from uct_md_iface_config_read() function, or point to transport-specific structure which extends uct_iface_config_t.
[out]iface_pFilled with a handle to opened communication interface.
+
+
+
Returns
Error code.
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_iface_close()

+ +
+
+ + + + + + + +
void uct_iface_close (uct_iface_h iface)
+
+
Parameters
+ + +
[in]ifaceInterface to close.
+
+
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_iface_query()

+ +
+
+ + + + + + + + + + + +
ucs_status_t uct_iface_query (uct_iface_h iface,
uct_iface_attr_t * iface_attr )
+
+
Parameters
+ + + +
[in]ifaceInterface to query.
[out]iface_attrFilled with interface attributes.
+
+
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_iface_get_device_address()

+ +
+
+ + + + + + + + + + + +
ucs_status_t uct_iface_get_device_address (uct_iface_h iface,
uct_device_addr_t * addr )
+
+

Get underlying device address of the interface. All interfaces using the same device would return the same address.

+
Parameters
+ + + +
[in]ifaceInterface to query.
[out]addrFilled with device address. The size of the buffer provided must be at least uct_iface_attr_t::device_addr_len.
+
+
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_iface_get_address()

+ +
+
+ + + + + + + + + + + +
ucs_status_t uct_iface_get_address (uct_iface_h iface,
uct_iface_addr_t * addr )
+
+

requires UCT_IFACE_FLAG_CONNECT_TO_IFACE.

+
Parameters
+ + + +
[in]ifaceInterface to query.
[out]addrFilled with interface address. The size of the buffer provided must be at least uct_iface_attr_t::iface_addr_len.
+
+
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_iface_is_reachable()

+ +
+
+ + + + + + + + + + + + + + + + +
int uct_iface_is_reachable (const uct_iface_h iface,
const uct_device_addr_t * dev_addr,
const uct_iface_addr_t * iface_addr )
+
+

This function checks if a remote address can be reached from a local interface. If the function returns true, it does not necessarily mean a connection and/or data transfer would succeed, since the reachability check is a local operation it does not detect issues such as network mis-configuration or lack of connectivity.

+
Parameters
+ + + + +
[in]ifaceInterface to check reachability from.
[in]dev_addrDevice address to check reachability to. It is NULL if iface_attr.dev_addr_len == 0, and must be non-NULL otherwise.
[in]iface_addrInterface address to check reachability to. It is NULL if iface_attr.iface_addr_len == 0, and must be non-NULL otherwise.
+
+
+
Returns
Nonzero if reachable, 0 if not.
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_ep_check()

+ +
+
+ + + + + + + + + + + + + + + + +
ucs_status_t uct_ep_check (const uct_ep_h ep,
unsigned flags,
uct_completion_t * comp )
+
+

This function checks if the destination endpoint is alive with respect to the UCT library. If the status of ep is known, either UCS_OK or an error is returned immediately. Otherwise, UCS_INPROGRESS is returned, indicating that synchronization on the status is needed. In this case, the status will be be propagated by comp callback.

+
Parameters
+ + + + +
[in]epEndpoint to check
[in]flagsFlags that define level of check (currently unsupported - set to 0).
[in]compHandler to process status of ep
+
+
+
Returns
Error code.
+ +
+
+ +

◆ uct_iface_event_fd_get()

+ +
+
+ + + + + + + + + + + +
ucs_status_t uct_iface_event_fd_get (uct_iface_h iface,
int * fd_p )
+
+

Only interfaces that support at least one of the UCT_IFACE_FLAG_EVENT* flags will implement this function.

+
Parameters
+ + + +
[in]ifaceInterface to get the notification descriptor.
[out]fd_pLocation to write the notification file descriptor.
+
+
+
Returns
Error code.
+ +
+
+ +

◆ uct_iface_event_arm()

+ +
+
+ + + + + + + + + + + +
ucs_status_t uct_iface_event_arm (uct_iface_h iface,
unsigned events )
+
+

This routine needs to be called before waiting on each notification on this interface, so will typically be called once the processing of the previous event is over.

+
Parameters
+ + + +
[in]ifaceInterface to arm.
[in]eventsEvents to wakeup on. See uct_iface_event_types
+
+
+
Returns
UCS_OK The operation completed successfully. File descriptor will be signaled by new events.
+
+UCS_ERR_BUSY There are unprocessed events which prevent the file descriptor from being armed. The operation is not completed. File descriptor will not be signaled by new events.
+
+Other different error codes in case of issues.
+ +
+
+ +

◆ uct_iface_mem_alloc()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_iface_mem_alloc (uct_iface_h iface,
size_t length,
unsigned flags,
const char * name,
uct_allocated_memory_t * mem )
+
+

Allocate a region of memory which can be used for zero-copy data transfer or remote access on a particular transport interface.

+
Parameters
+ + + + + + +
[in]ifaceInterface to allocate memory on.
[in]lengthSize of memory region to allocate.
[in]flagsMemory allocation flags, see uct_md_mem_flags.
[in]nameAllocation name, for debug purposes.
[out]memDescriptor of allocated memory.
+
+
+
Returns
UCS_OK if allocation was successful, error code otherwise.
+ +
+
+ +

◆ uct_iface_mem_free()

+ +
+
+ + + + + + + +
void uct_iface_mem_free (const uct_allocated_memory_t * mem)
+
+
Parameters
+ + +
[in]memDescriptor of memory to release.
+
+
+ +
+
+ +

◆ uct_ep_create()

+ +
+
+ + + + + + + + + + + +
ucs_status_t uct_ep_create (const uct_ep_params_t * params,
uct_ep_h * ep_p )
+
+

Create a UCT endpoint in one of the available modes:

    +
  1. Unconnected endpoint: If no any address is present in uct_ep_params, this creates an unconnected endpoint. To establish a connection to a remote endpoint, uct_ep_connect_to_ep will need to be called. Use of this mode requires uct_ep_params_t::iface has the UCT_IFACE_FLAG_CONNECT_TO_EP capability flag. It may be obtained by uct_iface_query .
  2. +
  3. Connect to a remote interface: If uct_ep_params_t::dev_addr and uct_ep_params_t::iface_addr are set, this will establish an endpoint that is connected to a remote interface. This requires that uct_ep_params_t::iface has the UCT_IFACE_FLAG_CONNECT_TO_IFACE capability flag. It may be obtained by uct_iface_query.
  4. +
  5. Connect to a remote socket address: If uct_ep_params_t::sockaddr is set, this will create an endpoint that is connected to a remote socket. This requires that either uct_ep_params::cm, or uct_ep_params::iface will be set. In the latter case, the interface has to support UCT_IFACE_FLAG_CONNECT_TO_SOCKADDR flag, which can be checked by calling uct_iface_query.
    Parameters
    + + + +
    [in]paramsUser defined uct_ep_params_t configuration for the ep_p.
    [out]ep_pFilled with handle to the new endpoint.
    +
    +
    +
    Returns
    UCS_OK The endpoint is created successfully. This does not guarantee that the endpoint has been connected to the destination defined in params; in case of failure, the error will be reported to the interface error handler callback provided to uct_iface_open via uct_iface_params_t::err_handler.
    +
    +Error code as defined by ucs_status_t
    +
  6. +
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_ep_destroy()

+ +
+
+ + + + + + + +
void uct_ep_destroy (uct_ep_h ep)
+
+
Parameters
+ + +
[in]epEndpoint to destroy.
+
+
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_ep_get_address()

+ +
+
+ + + + + + + + + + + +
ucs_status_t uct_ep_get_address (uct_ep_h ep,
uct_ep_addr_t * addr )
+
+
Parameters
+ + + +
[in]epEndpoint to query.
[out]addrFilled with endpoint address. The size of the buffer provided must be at least uct_iface_attr_t::ep_addr_len.
+
+
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_ep_connect_to_ep()

+ +
+
+ + + + + + + + + + + + + + + + +
ucs_status_t uct_ep_connect_to_ep (uct_ep_h ep,
const uct_device_addr_t * dev_addr,
const uct_ep_addr_t * ep_addr )
+
+

requires UCT_IFACE_FLAG_CONNECT_TO_EP capability.

+
Parameters
+ + + + +
[in]epEndpoint to connect.
[in]dev_addrRemote device address.
[in]ep_addrRemote endpoint address.
+
+
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_iface_flush()

+ +
+
+ + + + + + + + + + + + + + + + +
ucs_status_t uct_iface_flush (uct_iface_h iface,
unsigned flags,
uct_completion_t * comp )
+
+

Flushes all outstanding communications issued on the interface prior to this call. The operations are completed at the origin or at the target as well. The exact completion semantic depends on flags parameter.

+
Note
Currently only one completion type is supported. It guarantees that the data transfer is completed but the target buffer may not be updated yet.
+
Parameters
+ + + + +
[in]ifaceInterface to flush communications from.
[in]flagsFlags that control completion semantic (currently only UCT_FLUSH_FLAG_LOCAL is supported).
[in,out]compCompletion handle as defined by uct_completion_t. Can be NULL, which means that the call will return the current state of the interface and no completion will be generated in case of outstanding communications. If it is not NULL completion counter is decremented by 1 when the call completes. Completion callback is called when the counter reaches 0.
+
+
+
Returns
UCS_OK - No outstanding communications left. UCS_INPROGRESS - Some communication operations are still in progress. If non-NULL 'comp' is provided, it will be updated upon completion of these operations.
+ +
+
+ +

◆ uct_iface_fence()

+ +
+
+ + + + + + + + + + + +
ucs_status_t uct_iface_fence (uct_iface_h iface,
unsigned flags )
+
+
Parameters
+ + + +
[in]ifaceInterface to issue communications from.
[in]flagsFlags that control ordering semantic (currently unsupported - set to 0).
+
+
+
Returns
UCS_OK - Ordering is inserted.
+ +
+
+ +

◆ uct_ep_pending_add()

+ +
+
+ + + + + + + + + + + + + + + + +
ucs_status_t uct_ep_pending_add (uct_ep_h ep,
uct_pending_req_t * req,
unsigned flags )
+
+

Add a pending request to the endpoint pending queue. The request will be dispatched when the endpoint could potentially have additional send resources.

+
Parameters
+ + + + +
[in]epEndpoint to add the pending request to.
[in]reqPending request, which would be dispatched when more resources become available. The user is expected to initialize the "func" field. After being passed to the function, the request is owned by UCT, until the callback is called and returns UCS_OK.
[in]flagsFlags that control pending request processing (see uct_cb_flags)
+
+
+
Returns
UCS_OK - request added to pending queue UCS_ERR_BUSY - request was not added to pending queue, because send resources are available now. The user is advised to retry.
+ +
+
+ +

◆ uct_ep_pending_purge()

+ +
+
+ + + + + + + + + + + + + + + + +
void uct_ep_pending_purge (uct_ep_h ep,
uct_pending_purge_callback_t cb,
void * arg )
+
+

Remove pending requests from the given endpoint and pass them to the provided callback function. The callback return value is ignored.

+
Parameters
+ + + + +
[in]epEndpoint to remove pending requests from.
[in]cbCallback to pass the removed requests to.
[in]argArgument to pass to the cb callback.
+
+
+ +
+
+ +

◆ uct_ep_flush()

+ +
+
+ + + + + + + + + + + + + + + + +
ucs_status_t uct_ep_flush (uct_ep_h ep,
unsigned flags,
uct_completion_t * comp )
+
+

Flushes all outstanding communications issued on the endpoint prior to this call. The operations are completed at the origin or at the target as well. The exact completion semantic depends on flags parameter.

+
Parameters
+ + + + +
[in]epEndpoint to flush communications from.
[in]flagsFlags uct_flush_flags that control completion semantic.
[in,out]compCompletion handle as defined by uct_completion_t. Can be NULL, which means that the call will return the current state of the endpoint and no completion will be generated in case of outstanding communications. If it is not NULL completion counter is decremented by 1 when the call completes. Completion callback is called when the counter reaches 0.
+
+
+
Returns
UCS_OK - No outstanding communications left. UCS_ERR_NO_RESOURCE - Flush operation could not be initiated. A subsequent call to uct_ep_pending_add would add a pending operation, which provides an opportunity to retry the flush. UCS_INPROGRESS - Some communication operations are still in progress. If non-NULL 'comp' is provided, it will be updated upon completion of these operations.
+ +
+
+ +

◆ uct_ep_fence()

+ +
+
+ + + + + + + + + + + +
ucs_status_t uct_ep_fence (uct_ep_h ep,
unsigned flags )
+
+
Parameters
+ + + +
[in]epEndpoint to issue communications from.
[in]flagsFlags that control ordering semantic (currently unsupported - set to 0).
+
+
+
Returns
UCS_OK - Ordering is inserted.
+ +
+
+ +

◆ uct_iface_progress_enable()

+ +
+
+ + + + + + + + + + + +
void uct_iface_progress_enable (uct_iface_h iface,
unsigned flags )
+
+

Notify the transport that it should actively progress communications during uct_worker_progress().

+

When the interface is created, its progress is initially disabled.

+
Parameters
+ + + +
[in]ifaceThe interface to enable progress.
[in]flagsThe type of progress to enable as defined by uct_progress_types
+
+
+
Note
This function is not thread safe with respect to ucp_worker_progress(), unless the flag UCT_PROGRESS_THREAD_SAFE is specified.
+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ uct_iface_progress_disable()

+ +
+
+ + + + + + + + + + + +
void uct_iface_progress_disable (uct_iface_h iface,
unsigned flags )
+
+

Notify the transport that it should not progress its communications during uct_worker_progress(). Thus the latency of other transports may be improved.

+

By default, progress is disabled when the interface is created.

+
Parameters
+ + + +
[in]ifaceThe interface to disable progress.
[in]flagsThe type of progress to disable as defined by uct_progress_types.
+
+
+
Note
This function is not thread safe with respect to ucp_worker_progress(), unless the flag UCT_PROGRESS_THREAD_SAFE is specified.
+ +
+
+ +

◆ uct_iface_progress()

+ +
+
+ + + + + + + +
unsigned uct_iface_progress (uct_iface_h iface)
+
+ +
+
+ +

◆ uct_completion_update_status()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
static UCS_F_ALWAYS_INLINE void uct_completion_update_status (uct_completion_t * comp,
ucs_status_t status )
+
+static
+
+
Parameters
+ + + +
comp[in] Completion handle to update.
status[in] Status to update comp handle.
+
+
+ +
+
+
+
+ + + + diff --git a/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html new file mode 100644 index 00000000000..74c6fdec399 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html @@ -0,0 +1,657 @@ + + + + + + + +UCX: UCT interface operations and capabilities + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
UCT interface operations and capabilities
+
+
+ +

List of capabilities supported by UCX API. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define UCT_IFACE_FLAG_AM_SHORT   UCS_BIT(0)
 
#define UCT_IFACE_FLAG_AM_BCOPY   UCS_BIT(1)
 
#define UCT_IFACE_FLAG_AM_ZCOPY   UCS_BIT(2)
 
#define UCT_IFACE_FLAG_PENDING   UCS_BIT(3)
 
#define UCT_IFACE_FLAG_PUT_SHORT   UCS_BIT(4)
 
#define UCT_IFACE_FLAG_PUT_BCOPY   UCS_BIT(5)
 
#define UCT_IFACE_FLAG_PUT_ZCOPY   UCS_BIT(6)
 
#define UCT_IFACE_FLAG_GET_SHORT   UCS_BIT(8)
 
#define UCT_IFACE_FLAG_GET_BCOPY   UCS_BIT(9)
 
#define UCT_IFACE_FLAG_GET_ZCOPY   UCS_BIT(10)
 
#define UCT_IFACE_FLAG_ATOMIC_CPU   UCS_BIT(30)
 
#define UCT_IFACE_FLAG_ATOMIC_DEVICE   UCS_BIT(31)
 
#define UCT_IFACE_FLAG_ERRHANDLE_SHORT_BUF   UCS_BIT(32)
 
#define UCT_IFACE_FLAG_ERRHANDLE_BCOPY_BUF   UCS_BIT(33)
 
#define UCT_IFACE_FLAG_ERRHANDLE_ZCOPY_BUF   UCS_BIT(34)
 
#define UCT_IFACE_FLAG_ERRHANDLE_AM_ID   UCS_BIT(35)
 
#define UCT_IFACE_FLAG_ERRHANDLE_REMOTE_MEM   UCS_BIT(36)
 
#define UCT_IFACE_FLAG_ERRHANDLE_BCOPY_LEN   UCS_BIT(37)
 
#define UCT_IFACE_FLAG_ERRHANDLE_PEER_FAILURE   UCS_BIT(38)
 
#define UCT_IFACE_FLAG_EP_CHECK   UCS_BIT(39)
 
#define UCT_IFACE_FLAG_CONNECT_TO_IFACE   UCS_BIT(40)
 
#define UCT_IFACE_FLAG_CONNECT_TO_EP   UCS_BIT(41)
 
#define UCT_IFACE_FLAG_CONNECT_TO_SOCKADDR   UCS_BIT(42)
 
#define UCT_IFACE_FLAG_AM_DUP   UCS_BIT(43)
 
#define UCT_IFACE_FLAG_CB_SYNC   UCS_BIT(44)
 
#define UCT_IFACE_FLAG_CB_ASYNC   UCS_BIT(45)
 
#define UCT_IFACE_FLAG_EP_KEEPALIVE   UCS_BIT(46)
 
#define UCT_IFACE_FLAG_TAG_EAGER_SHORT   UCS_BIT(50)
 
#define UCT_IFACE_FLAG_TAG_EAGER_BCOPY   UCS_BIT(51)
 
#define UCT_IFACE_FLAG_TAG_EAGER_ZCOPY   UCS_BIT(52)
 
#define UCT_IFACE_FLAG_TAG_RNDV_ZCOPY   UCS_BIT(53)
 
+

Detailed Description

+

The definition list presents a full list of operations and capabilities exposed by UCX API.

+

Macro Definition Documentation

+ +

◆ UCT_IFACE_FLAG_AM_SHORT

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_AM_SHORT   UCS_BIT(0)
+
+

Short active message

+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ UCT_IFACE_FLAG_AM_BCOPY

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_AM_BCOPY   UCS_BIT(1)
+
+

Buffered active message

+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ UCT_IFACE_FLAG_AM_ZCOPY

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_AM_ZCOPY   UCS_BIT(2)
+
+

Zero-copy active message

+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ UCT_IFACE_FLAG_PENDING

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_PENDING   UCS_BIT(3)
+
+

Pending operations

+ +
+
+ +

◆ UCT_IFACE_FLAG_PUT_SHORT

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_PUT_SHORT   UCS_BIT(4)
+
+

Short put

+ +
+
+ +

◆ UCT_IFACE_FLAG_PUT_BCOPY

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_PUT_BCOPY   UCS_BIT(5)
+
+

Buffered put

+ +
+
+ +

◆ UCT_IFACE_FLAG_PUT_ZCOPY

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_PUT_ZCOPY   UCS_BIT(6)
+
+

Zero-copy put

+ +
+
+ +

◆ UCT_IFACE_FLAG_GET_SHORT

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_GET_SHORT   UCS_BIT(8)
+
+

Short get

+ +
+
+ +

◆ UCT_IFACE_FLAG_GET_BCOPY

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_GET_BCOPY   UCS_BIT(9)
+
+

Buffered get

+ +
+
+ +

◆ UCT_IFACE_FLAG_GET_ZCOPY

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_GET_ZCOPY   UCS_BIT(10)
+
+

Zero-copy get

+ +
+
+ +

◆ UCT_IFACE_FLAG_ATOMIC_CPU

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_ATOMIC_CPU   UCS_BIT(30)
+
+

Atomic communications are consistent with respect to CPU operations.

+ +
+
+ +

◆ UCT_IFACE_FLAG_ATOMIC_DEVICE

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_ATOMIC_DEVICE   UCS_BIT(31)
+
+

Atomic communications are consistent only with respect to other atomics on the same device.

+ +
+
+ +

◆ UCT_IFACE_FLAG_ERRHANDLE_SHORT_BUF

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_ERRHANDLE_SHORT_BUF   UCS_BIT(32)
+
+

Invalid buffer for short operation

+ +
+
+ +

◆ UCT_IFACE_FLAG_ERRHANDLE_BCOPY_BUF

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_ERRHANDLE_BCOPY_BUF   UCS_BIT(33)
+
+

Invalid buffer for buffered operation

+ +
+
+ +

◆ UCT_IFACE_FLAG_ERRHANDLE_ZCOPY_BUF

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_ERRHANDLE_ZCOPY_BUF   UCS_BIT(34)
+
+

Invalid buffer for zero copy operation

+ +
+
+ +

◆ UCT_IFACE_FLAG_ERRHANDLE_AM_ID

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_ERRHANDLE_AM_ID   UCS_BIT(35)
+
+

Invalid AM id on remote

+ +
+
+ +

◆ UCT_IFACE_FLAG_ERRHANDLE_REMOTE_MEM

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_ERRHANDLE_REMOTE_MEM   UCS_BIT(36)
+
+

Remote memory access

+ +
+
+ +

◆ UCT_IFACE_FLAG_ERRHANDLE_BCOPY_LEN

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_ERRHANDLE_BCOPY_LEN   UCS_BIT(37)
+
+

Invalid length for buffered operation

+ +
+
+ +

◆ UCT_IFACE_FLAG_ERRHANDLE_PEER_FAILURE

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_ERRHANDLE_PEER_FAILURE   UCS_BIT(38)
+
+

Remote peer failures/outage

+ +
+
+ +

◆ UCT_IFACE_FLAG_EP_CHECK

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_EP_CHECK   UCS_BIT(39)
+
+

Endpoint check

+ +
+
+ +

◆ UCT_IFACE_FLAG_CONNECT_TO_IFACE

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_CONNECT_TO_IFACE   UCS_BIT(40)
+
+

Supports connecting to interface

+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ UCT_IFACE_FLAG_CONNECT_TO_EP

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_CONNECT_TO_EP   UCS_BIT(41)
+
+

Supports connecting to specific endpoint

+
Examples
uct_hello_world.c.
+
+ +
+
+ +

◆ UCT_IFACE_FLAG_CONNECT_TO_SOCKADDR

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_CONNECT_TO_SOCKADDR   UCS_BIT(42)
+
+

Supports connecting to sockaddr

+ +
+
+ +

◆ UCT_IFACE_FLAG_AM_DUP

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_AM_DUP   UCS_BIT(43)
+
+

Active messages may be received with duplicates This happens if the transport does not keep enough information to detect retransmissions

+ +
+
+ +

◆ UCT_IFACE_FLAG_CB_SYNC

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_CB_SYNC   UCS_BIT(44)
+
+

Interface supports setting a callback which is invoked only from the calling context of uct_worker_progress()

+ +
+
+ +

◆ UCT_IFACE_FLAG_CB_ASYNC

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_CB_ASYNC   UCS_BIT(45)
+
+

Interface supports setting a callback which will be invoked within a reasonable amount of time if uct_worker_progress() is not being called. The callback can be invoked from any progress context and it may also be invoked when uct_worker_progress() is called.

+ +
+
+ +

◆ UCT_IFACE_FLAG_EP_KEEPALIVE

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_EP_KEEPALIVE   UCS_BIT(46)
+
+

Transport endpoint has built-in keepalive feature, which guarantees the error callback on the transport interface will be called if the communication channel with remote peer is broken, even if there are no outstanding send operations

+ +
+
+ +

◆ UCT_IFACE_FLAG_TAG_EAGER_SHORT

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_TAG_EAGER_SHORT   UCS_BIT(50)
+
+

Hardware tag matching short eager support

+ +
+
+ +

◆ UCT_IFACE_FLAG_TAG_EAGER_BCOPY

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_TAG_EAGER_BCOPY   UCS_BIT(51)
+
+

Hardware tag matching bcopy eager support

+ +
+
+ +

◆ UCT_IFACE_FLAG_TAG_EAGER_ZCOPY

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_TAG_EAGER_ZCOPY   UCS_BIT(52)
+
+

Hardware tag matching zcopy eager support

+ +
+
+ +

◆ UCT_IFACE_FLAG_TAG_RNDV_ZCOPY

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_TAG_RNDV_ZCOPY   UCS_BIT(53)
+
+

Hardware tag matching rendezvous zcopy support

+ +
+
+
+
+ + + + diff --git a/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___e_v_e_n_t___c_a_p.html b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___e_v_e_n_t___c_a_p.html new file mode 100644 index 00000000000..ac9a2dfee29 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___e_v_e_n_t___c_a_p.html @@ -0,0 +1,205 @@ + + + + + + + +UCX: UCT interface for asynchronous event capabilities + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
UCT interface for asynchronous event capabilities
+
+
+ +

List of capabilities supported by UCT iface event API. +More...

+ + + + + + + + + + + + +

+Macros

#define UCT_IFACE_FLAG_EVENT_SEND_COMP   UCS_BIT(0)
 
#define UCT_IFACE_FLAG_EVENT_RECV   UCS_BIT(1)
 
#define UCT_IFACE_FLAG_EVENT_RECV_SIG   UCS_BIT(2)
 
#define UCT_IFACE_FLAG_EVENT_FD   UCS_BIT(3)
 
#define UCT_IFACE_FLAG_EVENT_ASYNC_CB   UCS_BIT(4)
 
+

Detailed Description

+

The definition list presents a full list of operations and capabilities supported by UCT iface event.

+

Macro Definition Documentation

+ +

◆ UCT_IFACE_FLAG_EVENT_SEND_COMP

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_EVENT_SEND_COMP   UCS_BIT(0)
+
+

Event notification of send completion is supported

+ +
+
+ +

◆ UCT_IFACE_FLAG_EVENT_RECV

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_EVENT_RECV   UCS_BIT(1)
+
+

Event notification of tag and active message receive is supported

+ +
+
+ +

◆ UCT_IFACE_FLAG_EVENT_RECV_SIG

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_EVENT_RECV_SIG   UCS_BIT(2)
+
+

Event notification of signaled tag and active message is supported

+ +
+
+ +

◆ UCT_IFACE_FLAG_EVENT_FD

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_EVENT_FD   UCS_BIT(3)
+
+

Event notification through File Descriptor is supported

+ +
+
+ +

◆ UCT_IFACE_FLAG_EVENT_ASYNC_CB

+ +
+
+ + + + +
#define UCT_IFACE_FLAG_EVENT_ASYNC_CB   UCS_BIT(4)
+
+

Event notification through asynchronous callback invocation is supported

+ +
+
+
+
+ + + + diff --git a/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__completion.js b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__completion.js new file mode 100644 index 00000000000..53e5b26f0b0 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__completion.js @@ -0,0 +1,6 @@ +var group___u_c_t___r_e_s_o_u_r_c_e_structuct__completion = +[ + [ "func", "group___u_c_t___r_e_s_o_u_r_c_e.html#a34d9a5e03c0d9199a2d540f1a2cee5a2", null ], + [ "count", "group___u_c_t___r_e_s_o_u_r_c_e.html#ac80f9b64f46a8a3a9de6cb0b121667ab", null ], + [ "status", "group___u_c_t___r_e_s_o_u_r_c_e.html#aa3b099f011e78bd23c8768264576314d", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__component__attr.js b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__component__attr.js new file mode 100644 index 00000000000..d82ba77c983 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__component__attr.js @@ -0,0 +1,8 @@ +var group___u_c_t___r_e_s_o_u_r_c_e_structuct__component__attr = +[ + [ "field_mask", "group___u_c_t___r_e_s_o_u_r_c_e.html#ad95df67b474d3f51629e0a6d0ee2537e", null ], + [ "name", "group___u_c_t___r_e_s_o_u_r_c_e.html#a4d186d55814dbe82c4403564d38d084e", null ], + [ "md_resource_count", "group___u_c_t___r_e_s_o_u_r_c_e.html#a4add45e93acd44e434624726caaf9efb", null ], + [ "md_resources", "group___u_c_t___r_e_s_o_u_r_c_e.html#a75c51f7e16d827cc4c848016f5365404", null ], + [ "flags", "group___u_c_t___r_e_s_o_u_r_c_e.html#ad2800e9666be0be84926f768eac792a2", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__ep__params.js b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__ep__params.js new file mode 100644 index 00000000000..13669b9046c --- /dev/null +++ b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__ep__params.js @@ -0,0 +1,21 @@ +var group___u_c_t___r_e_s_o_u_r_c_e_structuct__ep__params = +[ + [ "field_mask", "group___u_c_t___r_e_s_o_u_r_c_e.html#a9c1ea4678d33fd3f741856135ad61d23", null ], + [ "iface", "group___u_c_t___r_e_s_o_u_r_c_e.html#a21e3628c5ffcafcdeb732f4f9687aa30", null ], + [ "user_data", "group___u_c_t___r_e_s_o_u_r_c_e.html#a107bb6eec86e0f877d2f256378ea0df8", null ], + [ "dev_addr", "group___u_c_t___r_e_s_o_u_r_c_e.html#a273d48d73a6813f2fe097026d739e9d9", null ], + [ "iface_addr", "group___u_c_t___r_e_s_o_u_r_c_e.html#ae8c9ada98be19a83ab9cd2af30203d5f", null ], + [ "sockaddr", "group___u_c_t___r_e_s_o_u_r_c_e.html#a3eeadaece922904cae592889db563977", null ], + [ "sockaddr_cb_flags", "group___u_c_t___r_e_s_o_u_r_c_e.html#a1471e0cef36287e0b37645beba2d792c", null ], + [ "sockaddr_pack_cb", "group___u_c_t___r_e_s_o_u_r_c_e.html#a7d44f52031c50abc0b6636421c82bbf1", null ], + [ "cm", "group___u_c_t___r_e_s_o_u_r_c_e.html#aa8133488ec45605b0c825e66d12ba1a8", null ], + [ "conn_request", "group___u_c_t___r_e_s_o_u_r_c_e.html#ad852c3138b06acb342e7f9c78ade8e41", null ], + [ "sockaddr_cb_client", "group___u_c_t___r_e_s_o_u_r_c_e.html#a375c999b7326f631877deae2bf24ccf6", null ], + [ "sockaddr_cb_server", "group___u_c_t___r_e_s_o_u_r_c_e.html#aa290e652d57da6ee3bc5d1efff43a2fe", null ], + [ "disconnect_cb", "group___u_c_t___r_e_s_o_u_r_c_e.html#ac270000f4e5a1bbcba955098ea7e8e6a", null ], + [ "path_index", "group___u_c_t___r_e_s_o_u_r_c_e.html#af271b2f02d31b2a1fcbf34076b83a796", null ], + [ "cm_resolve_cb", "group___u_c_t___r_e_s_o_u_r_c_e.html#a84e49366f4967ac76fad12d27295ec87", null ], + [ "private_data", "group___u_c_t___r_e_s_o_u_r_c_e.html#a4ad36475338e8aee2577fa4535c01dfc", null ], + [ "private_data_length", "group___u_c_t___r_e_s_o_u_r_c_e.html#a287105cfd0e1922f7975efa4bba08ead", null ], + [ "local_sockaddr", "group___u_c_t___r_e_s_o_u_r_c_e.html#acd106a47629c2dffb844fbdb15a050f6", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr.js b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr.js new file mode 100644 index 00000000000..bfce3381e6c --- /dev/null +++ b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr.js @@ -0,0 +1,15 @@ +var group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr = +[ + [ "cap", "group___u_c_t___r_e_s_o_u_r_c_e.html#a6c55cf8697354f4ace91142100ed074e", null ], + [ "device_addr_len", "group___u_c_t___r_e_s_o_u_r_c_e.html#a150fb2fb81e47e2a97571147cdc1647e", null ], + [ "iface_addr_len", "group___u_c_t___r_e_s_o_u_r_c_e.html#adaeded4e728f80628ff6d29eeae7a5b0", null ], + [ "ep_addr_len", "group___u_c_t___r_e_s_o_u_r_c_e.html#a70955f4d39111b0a48c85e0ff65768a0", null ], + [ "max_conn_priv", "group___u_c_t___r_e_s_o_u_r_c_e.html#a5612c3ad1e7a46dd6add669e32364424", null ], + [ "listen_sockaddr", "group___u_c_t___r_e_s_o_u_r_c_e.html#a3a5bb921af4157bc96d39aa580ff978f", null ], + [ "overhead", "group___u_c_t___r_e_s_o_u_r_c_e.html#ab802bc3cc95cc67e176efeb2fe1c14c4", null ], + [ "bandwidth", "group___u_c_t___r_e_s_o_u_r_c_e.html#a6a9bab4b671c0d0da959c98a4b3ab7ac", null ], + [ "latency", "group___u_c_t___r_e_s_o_u_r_c_e.html#ace9cf2c31674223b000dff0e72c5d533", null ], + [ "priority", "group___u_c_t___r_e_s_o_u_r_c_e.html#a97534f4af50032a82c02b76bdb47a96d", null ], + [ "max_num_eps", "group___u_c_t___r_e_s_o_u_r_c_e.html#af6baead12f87707af1b3e56024b2b2e5", null ], + [ "dev_num_paths", "group___u_c_t___r_e_s_o_u_r_c_e.html#ac9c279de0e13a96a683baf04d3c40c46", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap.js b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap.js new file mode 100644 index 00000000000..d9cee78e196 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap.js @@ -0,0 +1,11 @@ +var group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap = +[ + [ "put", "group___u_c_t___r_e_s_o_u_r_c_e.html#a8e13ffc9fd9d6a6761231a764bdf106b", null ], + [ "get", "group___u_c_t___r_e_s_o_u_r_c_e.html#ab5eda0a74558a342cf659187f06f746f", null ], + [ "am", "group___u_c_t___r_e_s_o_u_r_c_e.html#ac04cd38aeb30f3ad1f8ab4e64a0ded7b", null ], + [ "tag", "group___u_c_t___r_e_s_o_u_r_c_e.html#ae4d23e841d8e8804190027bce3180fa5", null ], + [ "atomic32", "group___u_c_t___r_e_s_o_u_r_c_e.html#ab6ef684feef10177fc3c31b012c575a2", null ], + [ "atomic64", "group___u_c_t___r_e_s_o_u_r_c_e.html#a1dd9655cfd97613a0a996060a998b0d4", null ], + [ "flags", "group___u_c_t___r_e_s_o_u_r_c_e.html#a4e5868d676cb634aa75b125a0f741abf", null ], + [ "event_flags", "group___u_c_t___r_e_s_o_u_r_c_e.html#af1b7cb88db5bf93bba7cbcaa503cbd6c", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8am.js b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8am.js new file mode 100644 index 00000000000..be1aee5e833 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8am.js @@ -0,0 +1,11 @@ +var group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8am = +[ + [ "max_short", "group___u_c_t___r_e_s_o_u_r_c_e.html#a003a57a3795b6dc103dd4b2425a3b117", null ], + [ "max_bcopy", "group___u_c_t___r_e_s_o_u_r_c_e.html#a6208b0725f6589002067bcdcef09118f", null ], + [ "min_zcopy", "group___u_c_t___r_e_s_o_u_r_c_e.html#a57d02deb57ae536cf84940eff69270c0", null ], + [ "max_zcopy", "group___u_c_t___r_e_s_o_u_r_c_e.html#a6bab79a6aa78d3f8113e01f4687e58b3", null ], + [ "opt_zcopy_align", "group___u_c_t___r_e_s_o_u_r_c_e.html#a130833876f7297c8711797fa51471539", null ], + [ "align_mtu", "group___u_c_t___r_e_s_o_u_r_c_e.html#a46a9c80802ec1ec433bbc251f69a8fdf", null ], + [ "max_hdr", "group___u_c_t___r_e_s_o_u_r_c_e.html#aa84fcfd6201c2b55787abdea4b1e6f34", null ], + [ "max_iov", "group___u_c_t___r_e_s_o_u_r_c_e.html#a0a46d1ac3838667aa1ab96b278ed8b51", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8atomic32.js b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8atomic32.js new file mode 100644 index 00000000000..03454b05e09 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8atomic32.js @@ -0,0 +1,5 @@ +var group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8atomic32 = +[ + [ "op_flags", "group___u_c_t___r_e_s_o_u_r_c_e.html#a9ac9ba98d74fd850d331d3298212833e", null ], + [ "fop_flags", "group___u_c_t___r_e_s_o_u_r_c_e.html#a564c7d941f5f339c0ed63712bdf96b29", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8atomic64.js b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8atomic64.js new file mode 100644 index 00000000000..6f6877cdd2a --- /dev/null +++ b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8atomic64.js @@ -0,0 +1,5 @@ +var group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8atomic64 = +[ + [ "op_flags", "group___u_c_t___r_e_s_o_u_r_c_e.html#a9ac9ba98d74fd850d331d3298212833e", null ], + [ "fop_flags", "group___u_c_t___r_e_s_o_u_r_c_e.html#a564c7d941f5f339c0ed63712bdf96b29", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8get.js b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8get.js new file mode 100644 index 00000000000..1133e1f6675 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8get.js @@ -0,0 +1,10 @@ +var group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8get = +[ + [ "max_short", "group___u_c_t___r_e_s_o_u_r_c_e.html#a003a57a3795b6dc103dd4b2425a3b117", null ], + [ "max_bcopy", "group___u_c_t___r_e_s_o_u_r_c_e.html#a6208b0725f6589002067bcdcef09118f", null ], + [ "min_zcopy", "group___u_c_t___r_e_s_o_u_r_c_e.html#a57d02deb57ae536cf84940eff69270c0", null ], + [ "max_zcopy", "group___u_c_t___r_e_s_o_u_r_c_e.html#a6bab79a6aa78d3f8113e01f4687e58b3", null ], + [ "opt_zcopy_align", "group___u_c_t___r_e_s_o_u_r_c_e.html#a130833876f7297c8711797fa51471539", null ], + [ "align_mtu", "group___u_c_t___r_e_s_o_u_r_c_e.html#a46a9c80802ec1ec433bbc251f69a8fdf", null ], + [ "max_iov", "group___u_c_t___r_e_s_o_u_r_c_e.html#a0a46d1ac3838667aa1ab96b278ed8b51", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8put.js b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8put.js new file mode 100644 index 00000000000..ef7778993d6 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8put.js @@ -0,0 +1,10 @@ +var group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8put = +[ + [ "max_short", "group___u_c_t___r_e_s_o_u_r_c_e.html#a003a57a3795b6dc103dd4b2425a3b117", null ], + [ "max_bcopy", "group___u_c_t___r_e_s_o_u_r_c_e.html#a6208b0725f6589002067bcdcef09118f", null ], + [ "min_zcopy", "group___u_c_t___r_e_s_o_u_r_c_e.html#a57d02deb57ae536cf84940eff69270c0", null ], + [ "max_zcopy", "group___u_c_t___r_e_s_o_u_r_c_e.html#a6bab79a6aa78d3f8113e01f4687e58b3", null ], + [ "opt_zcopy_align", "group___u_c_t___r_e_s_o_u_r_c_e.html#a130833876f7297c8711797fa51471539", null ], + [ "align_mtu", "group___u_c_t___r_e_s_o_u_r_c_e.html#a46a9c80802ec1ec433bbc251f69a8fdf", null ], + [ "max_iov", "group___u_c_t___r_e_s_o_u_r_c_e.html#a0a46d1ac3838667aa1ab96b278ed8b51", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8tag.js b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8tag.js new file mode 100644 index 00000000000..50c75a11374 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8tag.js @@ -0,0 +1,6 @@ +var group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8tag = +[ + [ "recv", "group___u_c_t___r_e_s_o_u_r_c_e.html#af701fee85540b78d08cb276d14953d58", null ], + [ "eager", "group___u_c_t___r_e_s_o_u_r_c_e.html#a5b154520a22cb4ca5f8505fb0525abe6", null ], + [ "rndv", "group___u_c_t___r_e_s_o_u_r_c_e.html#acdccd5548d60bc2d32ec34d59ecce438", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8tag_8eager.js b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8tag_8eager.js new file mode 100644 index 00000000000..9a105711e80 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8tag_8eager.js @@ -0,0 +1,7 @@ +var group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8tag_8eager = +[ + [ "max_short", "group___u_c_t___r_e_s_o_u_r_c_e.html#a003a57a3795b6dc103dd4b2425a3b117", null ], + [ "max_bcopy", "group___u_c_t___r_e_s_o_u_r_c_e.html#a6208b0725f6589002067bcdcef09118f", null ], + [ "max_zcopy", "group___u_c_t___r_e_s_o_u_r_c_e.html#a6bab79a6aa78d3f8113e01f4687e58b3", null ], + [ "max_iov", "group___u_c_t___r_e_s_o_u_r_c_e.html#a0a46d1ac3838667aa1ab96b278ed8b51", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8tag_8recv.js b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8tag_8recv.js new file mode 100644 index 00000000000..7494f95cc2c --- /dev/null +++ b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8tag_8recv.js @@ -0,0 +1,7 @@ +var group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8tag_8recv = +[ + [ "min_recv", "group___u_c_t___r_e_s_o_u_r_c_e.html#ac973fbf126e5918d28ed7f81ad886553", null ], + [ "max_zcopy", "group___u_c_t___r_e_s_o_u_r_c_e.html#a6bab79a6aa78d3f8113e01f4687e58b3", null ], + [ "max_iov", "group___u_c_t___r_e_s_o_u_r_c_e.html#a0a46d1ac3838667aa1ab96b278ed8b51", null ], + [ "max_outstanding", "group___u_c_t___r_e_s_o_u_r_c_e.html#ab96937da3ef792334de90211006268f7", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8tag_8rndv.js b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8tag_8rndv.js new file mode 100644 index 00000000000..db8949041fa --- /dev/null +++ b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8tag_8rndv.js @@ -0,0 +1,6 @@ +var group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__attr_8cap_8tag_8rndv = +[ + [ "max_zcopy", "group___u_c_t___r_e_s_o_u_r_c_e.html#a6bab79a6aa78d3f8113e01f4687e58b3", null ], + [ "max_hdr", "group___u_c_t___r_e_s_o_u_r_c_e.html#aa84fcfd6201c2b55787abdea4b1e6f34", null ], + [ "max_iov", "group___u_c_t___r_e_s_o_u_r_c_e.html#a0a46d1ac3838667aa1ab96b278ed8b51", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__params.js b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__params.js new file mode 100644 index 00000000000..358ed7326c3 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__params.js @@ -0,0 +1,22 @@ +var group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__params = +[ + [ "field_mask", "group___u_c_t___r_e_s_o_u_r_c_e.html#a9e1d45a55b7e9629eb548f27bea940a0", null ], + [ "cpu_mask", "group___u_c_t___r_e_s_o_u_r_c_e.html#a7093f64ec5efe2f1c3833dbe90b9099a", null ], + [ "open_mode", "group___u_c_t___r_e_s_o_u_r_c_e.html#a7db3b0fb2bbde6b4625ad5a6c5e1a043", null ], + [ "mode", "group___u_c_t___r_e_s_o_u_r_c_e.html#aabd3472dc469285e466132ea7e4a2ec2", null ], + [ "stats_root", "group___u_c_t___r_e_s_o_u_r_c_e.html#a6d87dd22dc349557a706bb25d49975f0", null ], + [ "rx_headroom", "group___u_c_t___r_e_s_o_u_r_c_e.html#aea4ca94171e8dfe3e80abb74a06fe333", null ], + [ "err_handler_arg", "group___u_c_t___r_e_s_o_u_r_c_e.html#abd1425d7ce0507acc97361abc56ea66d", null ], + [ "err_handler", "group___u_c_t___r_e_s_o_u_r_c_e.html#afc90f76dc754aa478af524ac7c9d3f51", null ], + [ "err_handler_flags", "group___u_c_t___r_e_s_o_u_r_c_e.html#a01b7ef6558dbe6f91ac5c59b63d5e0dd", null ], + [ "eager_arg", "group___u_c_t___r_e_s_o_u_r_c_e.html#a7c6b1ea224405a00438306212d30a172", null ], + [ "eager_cb", "group___u_c_t___r_e_s_o_u_r_c_e.html#a3e70569e1bf8a8d62fbc686dd147fd56", null ], + [ "rndv_arg", "group___u_c_t___r_e_s_o_u_r_c_e.html#afbeb49c7a773e6d61eaba872535809e8", null ], + [ "rndv_cb", "group___u_c_t___r_e_s_o_u_r_c_e.html#aee589d588ff4207d4fcf0d147479facd", null ], + [ "async_event_arg", "group___u_c_t___r_e_s_o_u_r_c_e.html#a678662e17ae32ca245a45d449ea497f0", null ], + [ "async_event_cb", "group___u_c_t___r_e_s_o_u_r_c_e.html#ab15b293126224a46cd25af411f75d39b", null ], + [ "keepalive_interval", "group___u_c_t___r_e_s_o_u_r_c_e.html#afbbbea17089ee8ff5ef0ef6ef3199cfe", null ], + [ "am_alignment", "group___u_c_t___r_e_s_o_u_r_c_e.html#a578571513991a26e7d0331b439968948", null ], + [ "am_align_offset", "group___u_c_t___r_e_s_o_u_r_c_e.html#a119e07151f7cfc215fdf86724cccf1f9", null ], + [ "features", "group___u_c_t___r_e_s_o_u_r_c_e.html#a967dbb2a49191e0b028f7058938293c6", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__params_8mode_8device.js b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__params_8mode_8device.js new file mode 100644 index 00000000000..2015e27c5fa --- /dev/null +++ b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__params_8mode_8device.js @@ -0,0 +1,5 @@ +var group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__params_8mode_8device = +[ + [ "tl_name", "group___u_c_t___r_e_s_o_u_r_c_e.html#a014d3b92d61614fb65175a049548627c", null ], + [ "dev_name", "group___u_c_t___r_e_s_o_u_r_c_e.html#a2fc9141c264d49c58c0377dd85b43744", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__params_8mode_8sockaddr.js b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__params_8mode_8sockaddr.js new file mode 100644 index 00000000000..6f592ebfc05 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__params_8mode_8sockaddr.js @@ -0,0 +1,7 @@ +var group___u_c_t___r_e_s_o_u_r_c_e_structuct__iface__params_8mode_8sockaddr = +[ + [ "listen_sockaddr", "group___u_c_t___r_e_s_o_u_r_c_e.html#a5bc951a80626f79c6da054b5a09990cd", null ], + [ "conn_request_arg", "group___u_c_t___r_e_s_o_u_r_c_e.html#ad80d0ef2043347df663b059b9f103bcd", null ], + [ "conn_request_cb", "group___u_c_t___r_e_s_o_u_r_c_e.html#a191b74a436fbf612740a10737cc930c2", null ], + [ "cb_flags", "group___u_c_t___r_e_s_o_u_r_c_e.html#a8a9d798e64e80303680078082cf16dbb", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iov.js b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iov.js new file mode 100644 index 00000000000..878b3dc981f --- /dev/null +++ b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__iov.js @@ -0,0 +1,8 @@ +var group___u_c_t___r_e_s_o_u_r_c_e_structuct__iov = +[ + [ "buffer", "group___u_c_t___r_e_s_o_u_r_c_e.html#a315a759f0ec81b26fcba7530e43d9149", null ], + [ "length", "group___u_c_t___r_e_s_o_u_r_c_e.html#ad00b6e55c209c6abc87b091f4c776cd5", null ], + [ "memh", "group___u_c_t___r_e_s_o_u_r_c_e.html#a9a24e4be8303ebd6906bcaff37ab31f7", null ], + [ "stride", "group___u_c_t___r_e_s_o_u_r_c_e.html#a21ea5b278cab407db05eaa3dce3b2824", null ], + [ "count", "group___u_c_t___r_e_s_o_u_r_c_e.html#addb247a8d80907156df00159bbafcda5", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__md__resource__desc.js b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__md__resource__desc.js new file mode 100644 index 00000000000..3f4c62f67ea --- /dev/null +++ b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__md__resource__desc.js @@ -0,0 +1,4 @@ +var group___u_c_t___r_e_s_o_u_r_c_e_structuct__md__resource__desc = +[ + [ "md_name", "group___u_c_t___r_e_s_o_u_r_c_e.html#a44245b18bf7151a4bde8cb4c0112f8cb", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__pending__req.js b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__pending__req.js new file mode 100644 index 00000000000..f52aad8dc36 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__pending__req.js @@ -0,0 +1,5 @@ +var group___u_c_t___r_e_s_o_u_r_c_e_structuct__pending__req = +[ + [ "func", "group___u_c_t___r_e_s_o_u_r_c_e.html#a638accaa60c4c3f373c6d12c2ea74c6c", null ], + [ "priv", "group___u_c_t___r_e_s_o_u_r_c_e.html#a3541a702c8158a6d557ce30cec1863b1", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__tl__resource__desc.js b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__tl__resource__desc.js new file mode 100644 index 00000000000..be33c9eead1 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_structuct__tl__resource__desc.js @@ -0,0 +1,7 @@ +var group___u_c_t___r_e_s_o_u_r_c_e_structuct__tl__resource__desc = +[ + [ "tl_name", "group___u_c_t___r_e_s_o_u_r_c_e.html#a97eefc21494ace8e0ca2598eb8085001", null ], + [ "dev_name", "group___u_c_t___r_e_s_o_u_r_c_e.html#a19260a4faff281f45363008cbcaa0f41", null ], + [ "dev_type", "group___u_c_t___r_e_s_o_u_r_c_e.html#a83b6513b96f2a97a82dcd3ab751c996a", null ], + [ "sys_device", "group___u_c_t___r_e_s_o_u_r_c_e.html#a1e3ce2607f86f8faf1eacf0b91636e27", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_unionuct__iface__params_8mode.js b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_unionuct__iface__params_8mode.js new file mode 100644 index 00000000000..ce35dee3846 --- /dev/null +++ b/api/v1.17/html/group___u_c_t___r_e_s_o_u_r_c_e_unionuct__iface__params_8mode.js @@ -0,0 +1,5 @@ +var group___u_c_t___r_e_s_o_u_r_c_e_unionuct__iface__params_8mode = +[ + [ "device", "group___u_c_t___r_e_s_o_u_r_c_e.html#a913f9c49dcb544e2087cee284f4a00b7", null ], + [ "sockaddr", "group___u_c_t___r_e_s_o_u_r_c_e.html#a48bf0900b6d58aadfcae19eef1faccf2", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/group___u_c_t___r_m_a.html b/api/v1.17/html/group___u_c_t___r_m_a.html new file mode 100644 index 00000000000..76dfba7aa4b --- /dev/null +++ b/api/v1.17/html/group___u_c_t___r_m_a.html @@ -0,0 +1,393 @@ + + + + + + + +UCX: UCT Remote memory access operations + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
UCT Remote memory access operations
+
+
+ + + + + + + + + + + + + + + + +

+Functions

ucs_status_t uct_ep_put_short (uct_ep_h ep, const void *buffer, unsigned length, uint64_t remote_addr, uct_rkey_t rkey)
 
ssize_t uct_ep_put_bcopy (uct_ep_h ep, uct_pack_callback_t pack_cb, void *arg, uint64_t remote_addr, uct_rkey_t rkey)
 
ucs_status_t uct_ep_put_zcopy (uct_ep_h ep, const uct_iov_t *iov, size_t iovcnt, uint64_t remote_addr, uct_rkey_t rkey, uct_completion_t *comp)
 Write data to remote memory while avoiding local memory copy.
 
ucs_status_t uct_ep_get_short (uct_ep_h ep, void *buffer, unsigned length, uint64_t remote_addr, uct_rkey_t rkey)
 
ucs_status_t uct_ep_get_bcopy (uct_ep_h ep, uct_unpack_callback_t unpack_cb, void *arg, size_t length, uint64_t remote_addr, uct_rkey_t rkey, uct_completion_t *comp)
 
ucs_status_t uct_ep_get_zcopy (uct_ep_h ep, const uct_iov_t *iov, size_t iovcnt, uint64_t remote_addr, uct_rkey_t rkey, uct_completion_t *comp)
 Read data from remote memory while avoiding local memory copy.
 
+

Detailed Description

+

Defines remote memory access operations.

+

Function Documentation

+ +

◆ uct_ep_put_short()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_ep_put_short (uct_ep_h ep,
const void * buffer,
unsigned length,
uint64_t remote_addr,
uct_rkey_t rkey )
+
+ +
+
+ +

◆ uct_ep_put_bcopy()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ssize_t uct_ep_put_bcopy (uct_ep_h ep,
uct_pack_callback_t pack_cb,
void * arg,
uint64_t remote_addr,
uct_rkey_t rkey )
+
+ +
+
+ +

◆ uct_ep_put_zcopy()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_ep_put_zcopy (uct_ep_h ep,
const uct_iov_t * iov,
size_t iovcnt,
uint64_t remote_addr,
uct_rkey_t rkey,
uct_completion_t * comp )
+
+

The input data in iov array of uct_iov_t structures sent to remote address ("gather output"). Buffers in iov are processed in array order. This means that the function complete iov[0] before proceeding to iov[1], and so on.

+
Parameters
+ + + + + + + +
[in]epDestination endpoint handle.
[in]iovPoints to an array of uct_iov_t structures. The iov pointer must be a valid address of an array of uct_iov_t structures. A particular structure pointer must be a valid address. A NULL terminated array is not required.
[in]iovcntSize of the iov data uct_iov_t structures array. If iovcnt is zero, the data is considered empty. iovcnt is limited by uct_iface_attr::cap::put::max_iov.
[in]remote_addrRemote address to place the iov data.
[in]rkeyRemote key descriptor provided by uct_rkey_unpack
[in]compCompletion handle as defined by uct_completion_t.
+
+
+
Returns
UCS_INPROGRESS Some communication operations are still in progress. If non-NULL comp is provided, it will be updated upon completion of these operations.
+ +
+
+ +

◆ uct_ep_get_short()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_ep_get_short (uct_ep_h ep,
void * buffer,
unsigned length,
uint64_t remote_addr,
uct_rkey_t rkey )
+
+ +
+
+ +

◆ uct_ep_get_bcopy()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_ep_get_bcopy (uct_ep_h ep,
uct_unpack_callback_t unpack_cb,
void * arg,
size_t length,
uint64_t remote_addr,
uct_rkey_t rkey,
uct_completion_t * comp )
+
+ +
+
+ +

◆ uct_ep_get_zcopy()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_ep_get_zcopy (uct_ep_h ep,
const uct_iov_t * iov,
size_t iovcnt,
uint64_t remote_addr,
uct_rkey_t rkey,
uct_completion_t * comp )
+
+

The output data in iov array of uct_iov_t structures received from remote address ("scatter input"). Buffers in iov are processed in array order. This means that the function complete iov[0] before proceeding to iov[1], and so on.

+
Parameters
+ + + + + + + +
[in]epDestination endpoint handle.
[in]iovPoints to an array of uct_iov_t structures. The iov pointer must be a valid address of an array of uct_iov_t structures. A particular structure pointer must be a valid address. A NULL terminated array is not required.
[in]iovcntSize of the iov data uct_iov_t structures array. If iovcnt is zero, the data is considered empty. iovcnt is limited by uct_iface_attr::cap::get::max_iov.
[in]remote_addrRemote address of the data placed to the iov.
[in]rkeyRemote key descriptor provided by uct_rkey_unpack
[in]compCompletion handle as defined by uct_completion_t.
+
+
+
Returns
UCS_INPROGRESS Some communication operations are still in progress. If non-NULL comp is provided, it will be updated upon completion of these operations.
+ +
+
+
+
+ + + + diff --git a/api/v1.17/html/group___u_c_t___t_a_g.html b/api/v1.17/html/group___u_c_t___t_a_g.html new file mode 100644 index 00000000000..32d47342d7f --- /dev/null +++ b/api/v1.17/html/group___u_c_t___t_a_g.html @@ -0,0 +1,646 @@ + + + + + + + +UCX: UCT Tag matching operations + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ + + + + +

+Data Structures

struct  uct_tag_context
 Posted tag context. More...
 
+ + + + + + + +

+Typedefs

typedef ucs_status_t(* uct_tag_unexp_eager_cb_t) (void *arg, void *data, size_t length, unsigned flags, uct_tag_t stag, uint64_t imm, void **context)
 Callback to process unexpected eager tagged message.
 
typedef ucs_status_t(* uct_tag_unexp_rndv_cb_t) (void *arg, unsigned flags, uint64_t stag, const void *header, unsigned header_length, uint64_t remote_addr, size_t length, const void *rkey_buf)
 Callback to process unexpected rendezvous tagged message.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

ucs_status_t uct_ep_tag_eager_short (uct_ep_h ep, uct_tag_t tag, const void *data, size_t length)
 Short eager tagged-send operation.
 
ssize_t uct_ep_tag_eager_bcopy (uct_ep_h ep, uct_tag_t tag, uint64_t imm, uct_pack_callback_t pack_cb, void *arg, unsigned flags)
 Bcopy eager tagged-send operation.
 
ucs_status_t uct_ep_tag_eager_zcopy (uct_ep_h ep, uct_tag_t tag, uint64_t imm, const uct_iov_t *iov, size_t iovcnt, unsigned flags, uct_completion_t *comp)
 Zcopy eager tagged-send operation.
 
ucs_status_ptr_t uct_ep_tag_rndv_zcopy (uct_ep_h ep, uct_tag_t tag, const void *header, unsigned header_length, const uct_iov_t *iov, size_t iovcnt, unsigned flags, uct_completion_t *comp)
 Rendezvous tagged-send operation.
 
ucs_status_t uct_ep_tag_rndv_cancel (uct_ep_h ep, void *op)
 Cancel outstanding rendezvous operation.
 
ucs_status_t uct_ep_tag_rndv_request (uct_ep_h ep, uct_tag_t tag, const void *header, unsigned header_length, unsigned flags)
 Send software rendezvous request.
 
ucs_status_t uct_iface_tag_recv_zcopy (uct_iface_h iface, uct_tag_t tag, uct_tag_t tag_mask, const uct_iov_t *iov, size_t iovcnt, uct_tag_context_t *ctx)
 Post a tag to a transport interface.
 
ucs_status_t uct_iface_tag_recv_cancel (uct_iface_h iface, uct_tag_context_t *ctx, int force)
 Cancel a posted tag.
 
+

Detailed Description

+

Defines tag matching operations.

+

Typedef Documentation

+ +

◆ uct_tag_unexp_eager_cb_t

+ +
+
+ + + + +
typedef ucs_status_t(* uct_tag_unexp_eager_cb_t) (void *arg, void *data, size_t length, unsigned flags, uct_tag_t stag, uint64_t imm, void **context)
+
+

This callback is invoked when tagged message sent by eager protocol has arrived and no corresponding tag has been posted.

+
Note
The callback is always invoked from the context (thread, process) that called uct_iface_progress().
+
+It is allowed to call other communication routines from the callback.
+
Parameters
+ + + + + + + + +
[in]argUser-defined argument
[in]dataPoints to the received unexpected data.
[in]lengthLength of data.
[in]flagsMask with uct_cb_param_flags flags. If it contains UCT_CB_PARAM_FLAG_DESC value, this means data is part of a descriptor which must be released later using uct_iface_release_desc by the user if the callback returns UCS_INPROGRESS.
[in]stagTag from sender.
[in]immImmediate data from sender.
[in,out]contextStorage for a per-message user-defined context. In this context, the message is defined by the sender side as a single call to uct_ep_tag_eager_short/bcopy/zcopy. On the transport level the message can be fragmented and delivered to the target over multiple fragments. The fragments will preserve the original order of the message. Each fragment will result in invocation of the above callback. The user can use UCT_CB_PARAM_FLAG_FIRST to identify the first fragment, allocate the context object and use the context as a token that is set by the user and passed to subsequent callbacks of the same message. The user is responsible for allocation and release of the context.
+
+
+
Note
No need to allocate the context in the case of a single fragment message (i.e. flags contains UCT_CB_PARAM_FLAG_FIRST, but does not contain UCT_CB_PARAM_FLAG_MORE).
+
Return values
+ + + +
UCS_OK- data descriptor was consumed, and can be released by the caller.
UCS_INPROGRESS- data descriptor is owned by the callee, and will be released later.
+
+
+ +
+
+ +

◆ uct_tag_unexp_rndv_cb_t

+ +
+
+ + + + +
typedef ucs_status_t(* uct_tag_unexp_rndv_cb_t) (void *arg, unsigned flags, uint64_t stag, const void *header, unsigned header_length, uint64_t remote_addr, size_t length, const void *rkey_buf)
+
+

This callback is invoked when rendezvous send notification has arrived and no corresponding tag has been posted.

+
Note
The callback is always invoked from the context (thread, process) that called uct_iface_progress().
+
+It is allowed to call other communication routines from the callback.
+
Parameters
+ + + + + + + + + +
[in]argUser-defined argument
[in]flagsMask with uct_cb_param_flags
[in]stagTag from sender.
[in]headerUser defined header.
[in]header_lengthUser defined header length in bytes.
[in]remote_addrSender's buffer virtual address.
[in]lengthSender's buffer length.
[in]rkey_bufSender's buffer packed remote key. It can be passed to uct_rkey_unpack() to create uct_rkey_t.
+
+
+
Warning
If the user became the owner of the desc (by returning UCS_INPROGRESS) the descriptor must be released later by uct_iface_release_desc by the user.
+
Return values
+ + + +
UCS_OK- descriptor was consumed, and can be released by the caller.
UCS_INPROGRESS- descriptor is owned by the callee, and would be released later.
+
+
+ +
+
+

Function Documentation

+ +

◆ uct_ep_tag_eager_short()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_ep_tag_eager_short (uct_ep_h ep,
uct_tag_t tag,
const void * data,
size_t length )
+
+

This routine sends a message using short eager protocol. Eager protocol means that the whole data is sent to the peer immediately without any preceding notification. The data is provided as buffer and its length,and must not be larger than the corresponding max_short value in uct_iface_attr. The immediate value delivered to the receiver is implicitly equal to 0. If it's required to pass nonzero imm value, uct_ep_tag_eager_bcopy should be used.

+
Parameters
+ + + + + +
[in]epDestination endpoint handle.
[in]tagTag to use for the eager message.
[in]dataData to send.
[in]lengthData length.
+
+
+
Returns
UCS_OK - operation completed successfully.
+
+UCS_ERR_NO_RESOURCE - could not start the operation due to lack of send resources.
+ +
+
+ +

◆ uct_ep_tag_eager_bcopy()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ssize_t uct_ep_tag_eager_bcopy (uct_ep_h ep,
uct_tag_t tag,
uint64_t imm,
uct_pack_callback_t pack_cb,
void * arg,
unsigned flags )
+
+

This routine sends a message using bcopy eager protocol. Eager protocol means that the whole data is sent to the peer immediately without any preceding notification. Custom data callback is used to copy the data to the network buffers.

+
Note
The resulted data length must not be larger than the corresponding max_bcopy value in uct_iface_attr.
+
Parameters
+ + + + + + + +
[in]epDestination endpoint handle.
[in]tagTag to use for the eager message.
[in]immImmediate value which will be available to the receiver.
[in]pack_cbUser callback to pack the data.
[in]argCustom argument to pack_cb.
[in]flagsTag message flags, see uct_msg_flags.
+
+
+
Returns
>=0 - The size of the data packed by pack_cb.
+
+otherwise - Error code.
+ +
+
+ +

◆ uct_ep_tag_eager_zcopy()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_ep_tag_eager_zcopy (uct_ep_h ep,
uct_tag_t tag,
uint64_t imm,
const uct_iov_t * iov,
size_t iovcnt,
unsigned flags,
uct_completion_t * comp )
+
+

This routine sends a message using zcopy eager protocol. Eager protocol means that the whole data is sent to the peer immediately without any preceding notification. The input data (which has to be previously registered) in iov array of uct_iov_t structures sent to remote side ("gather output"). Buffers in iov are processed in array order, so the function complete iov[0] before proceeding to iov[1], and so on.

+
Note
The resulted data length must not be larger than the corresponding max_zcopy value in uct_iface_attr.
+
Parameters
+ + + + + + + + +
[in]epDestination endpoint handle.
[in]tagTag to use for the eager message.
[in]immImmediate value which will be available to the receiver.
[in]iovPoints to an array of uct_iov_t structures. A particular structure pointer must be a valid address. A NULL terminated array is not required.
[in]iovcntSize of the iov array. If iovcnt is zero, the data is considered empty. Note that iovcnt is limited by the corresponding max_iov value in uct_iface_attr.
[in]flagsTag message flags, see uct_msg_flags.
[in]compCompletion callback which will be called when the data is reliably received by the peer, and the buffer can be reused or invalidated.
+
+
+
Returns
UCS_OK - operation completed successfully.
+
+UCS_ERR_NO_RESOURCE - could not start the operation due to lack of send resources.
+
+UCS_INPROGRESS - operation started, and comp will be used to notify when it's completed.
+ +
+
+ +

◆ uct_ep_tag_rndv_zcopy()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_ptr_t uct_ep_tag_rndv_zcopy (uct_ep_h ep,
uct_tag_t tag,
const void * header,
unsigned header_length,
const uct_iov_t * iov,
size_t iovcnt,
unsigned flags,
uct_completion_t * comp )
+
+

This routine sends a message using rendezvous protocol. Rendezvous protocol means that only a small notification is sent at first, and the data itself is transferred later (when there is a match) to avoid extra memory copy.

+
Note
The header will be available to the receiver in case of unexpected rendezvous operation only, i.e. the peer has not posted tag for this message yet (by means of uct_iface_tag_recv_zcopy), when it is arrived.
+
Parameters
+ + + + + + + + + +
[in]epDestination endpoint handle.
[in]tagTag to use for the eager message.
[in]headerUser defined header.
[in]header_lengthUser defined header length in bytes. Note that it is limited by the corresponding max_hdr value in uct_iface_attr.
[in]iovPoints to an array of uct_iov_t structures. A particular structure pointer must be valid address. A NULL terminated array is not required.
[in]iovcntSize of the iov array. If iovcnt is zero, the data is considered empty. Note that iovcnt is limited by the corresponding max_iov value in uct_iface_attr.
[in]flagsTag message flags, see uct_msg_flags.
[in]compCompletion callback which will be called when the data is reliably received by the peer, and the buffer can be reused or invalidated.
+
+
+
Returns
>=0 - The operation is in progress and the return value is a handle which can be used to cancel the outstanding rendezvous operation.
+
+otherwise - Error code.
+ +
+
+ +

◆ uct_ep_tag_rndv_cancel()

+ +
+
+ + + + + + + + + + + +
ucs_status_t uct_ep_tag_rndv_cancel (uct_ep_h ep,
void * op )
+
+

This routine signals the underlying transport disregard the outstanding operation without calling completion callback provided in uct_ep_tag_rndv_zcopy.

+
Note
The operation handle should be valid at the time the routine is invoked. I.e. it should be a handle of the real operation which is not completed yet.
+
Parameters
+ + + +
[in]epDestination endpoint handle.
[in]opRendezvous operation handle, as returned from uct_ep_tag_rndv_zcopy.
+
+
+
Returns
UCS_OK - The operation has been canceled.
+ +
+
+ +

◆ uct_ep_tag_rndv_request()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_ep_tag_rndv_request (uct_ep_h ep,
uct_tag_t tag,
const void * header,
unsigned header_length,
unsigned flags )
+
+

This routine sends a rendezvous request only, which indicates that the data transfer should be completed in software.

+
Parameters
+ + + + + + +
[in]epDestination endpoint handle.
[in]tagTag to use for matching.
[in]headerUser defined header
[in]header_lengthUser defined header length in bytes. Note that it is limited by the corresponding max_hdr value in uct_iface_attr.
[in]flagsTag message flags, see uct_msg_flags.
+
+
+
Returns
UCS_OK - operation completed successfully.
+
+UCS_ERR_NO_RESOURCE - could not start the operation due to lack of send resources.
+ +
+
+ +

◆ uct_iface_tag_recv_zcopy()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ucs_status_t uct_iface_tag_recv_zcopy (uct_iface_h iface,
uct_tag_t tag,
uct_tag_t tag_mask,
const uct_iov_t * iov,
size_t iovcnt,
uct_tag_context_t * ctx )
+
+

This routine posts a tag to be matched on a transport interface. When a message with the corresponding tag arrives it is stored in the user buffer (described by iov and iovcnt) directly. The operation completion is reported using callbacks on the ctx structure.

+
Parameters
+ + + + + + + +
[in]ifaceInterface to post the tag on.
[in]tagTag to expect.
[in]tag_maskMask which specifies what bits of the tag to compare.
[in]iovPoints to an array of uct_iov_t structures. The iov pointer must be a valid address of an array of uct_iov_t structures. A particular structure pointer must be a valid address. A NULL terminated array is not required.
[in]iovcntSize of the iov data uct_iov_t structures array. If iovcnt is zero, the data is considered empty. iovcnt is limited by uct_iface_attr::cap::tag::max_iov.
[in,out]ctxContext associated with this particular tag, "priv" field in this structure is used to track the state internally.
+
+
+
Returns
UCS_OK - The tag is posted to the transport.
+
+UCS_ERR_NO_RESOURCE - Could not start the operation due to lack of resources.
+
+UCS_ERR_EXCEEDS_LIMIT - No more room for tags in the transport.
+ +
+
+ +

◆ uct_iface_tag_recv_cancel()

+ +
+
+ + + + + + + + + + + + + + + + +
ucs_status_t uct_iface_tag_recv_cancel (uct_iface_h iface,
uct_tag_context_t * ctx,
int force )
+
+

This routine cancels a tag, which was previously posted by uct_iface_tag_recv_zcopy. The tag would be either matched or canceled, in a bounded time, regardless of the peer actions. The original completion callback of the tag would be called with the status if force is not set.

+
Parameters
+ + + + +
[in]ifaceInterface to cancel the tag on.
[in]ctxTag context which was used for posting the tag. If force is 0, ctx->completed_cb will be called with either UCS_OK which means the tag was matched and data received despite the cancel request, or UCS_ERR_CANCELED which means the tag was successfully canceled before it was matched.
[in]forceWhether to report completions to ctx->completed_cb. If nonzero, the cancel is assumed to be successful, and the callback is not called.
+
+
+
Returns
UCS_OK - The tag is canceled in the transport.
+ +
+
+
+
+ + + + diff --git a/api/v1.17/html/index.html b/api/v1.17/html/index.html new file mode 100644 index 00000000000..00e93f6dfcb --- /dev/null +++ b/api/v1.17/html/index.html @@ -0,0 +1,129 @@ + + + + + + + +UCX: Preface + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Preface
+
+
+

+

+Scope of the Document

+

This document describes the UCX programming interface. The programming interface exposes a high performance communication API, which provides basic building blocks for PGAS, Message Passing Interface (MPI), Big-Data, Analytics, File I/O, and storage library developers.

+

+Audience

+

This manual is intended for programmers who want to develop parallel programming models like OpenSHMEM, MPI, UPC, Chapel, etc. The manual assumes that the reader is familiar with the following:

    +
  • Basic concepts of two-sided, one-sided, atomic, and collective operations
  • +
  • C programming language
  • +
+

+Document Status

+

This section briefly describes a list of open issues in the UCX specification.

    +
  • UCP API - work in progress
  • +
  • UCT API - work in progress
  • +
+

+License

+

UCX project follows open source development model and the software is licensed under BSD-3 license.

+
+ +
+
+ + + + diff --git a/api/v1.17/html/index.js b/api/v1.17/html/index.js new file mode 100644 index 00000000000..f8e4a5ce573 --- /dev/null +++ b/api/v1.17/html/index.js @@ -0,0 +1,7 @@ +var index = +[ + [ "Scope of the Document", "index.html#Scope", null ], + [ "Audience", "index.html#Audience", null ], + [ "Document Status", "index.html#Status", null ], + [ "License", "index.html#License", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/jquery.js b/api/v1.17/html/jquery.js new file mode 100644 index 00000000000..1dffb65b58c --- /dev/null +++ b/api/v1.17/html/jquery.js @@ -0,0 +1,34 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=y.widget.extend({},this.options[t]),n=0;n
"),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/api/v1.17/html/md_docs_2doxygen_2conventions.html b/api/v1.17/html/md_docs_2doxygen_2conventions.html new file mode 100644 index 00000000000..91452a570b3 --- /dev/null +++ b/api/v1.17/html/md_docs_2doxygen_2conventions.html @@ -0,0 +1,122 @@ + + + + + + + +UCX: Conventions and Notations + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Conventions and Notations
+
+
+

This section describes the conventions and notations in the UCX specification.

+

+Blocking Behavior

+

The blocking UCX routines return only when a UCX operation is complete. After the return, the resources used in the UCX routine are available for reuse.

+

+Non-blocking Behavior

+

The non-blocking UCX routines return immediately, independent of operation completion. After the return, the resources used for the routines are not necessarily available for reuse.

+

+Fairness

+

UCX routines do not guarantee fairness. However, the routines enable UCX consumers to write efficient and fair programs.

+

+Interaction with Signal Handler Functions

+

If UCX routines are invoked from a signal handler function, the behavior of the program is undefined.

+
+
+
+ + + + diff --git a/api/v1.17/html/md_docs_2doxygen_2design.html b/api/v1.17/html/md_docs_2doxygen_2design.html new file mode 100644 index 00000000000..d82abf311f4 --- /dev/null +++ b/api/v1.17/html/md_docs_2doxygen_2design.html @@ -0,0 +1,137 @@ + + + + + + + +UCX: Design + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Design
+
+
+

The UCX framework consists of the three main components: UC-Services (UCS), UC-Transports (UCT), and UC-Protocols (UCP). Each one of these components exports a public API, and can be used as a stand-alone library.

+
+ +
+UCX Framework Architecture
+

+UCS

+

UCS is a service layer that provides the necessary functionality for implementing portable and efficient utilities. This layer includes the following services:

    +
  • an abstraction for accessing platform specific functionality (atomic operations, thread safety, etc.),
  • +
  • tools for efficient memory management (memory pools, memory allocators, and memory allocators hooks),
  • +
  • commonly used data structures (hashes, trees, lists).
  • +
+

+UCT

+

UCT is a transport layer that abstracts the differences across various hardware architectures and provides a low-level API that enables the implementation of communication protocols. The primary goal of the layer is to provide direct and efficient access to hardware network functionality. For this purpose, UCT relies on vendor provided low-level drivers such as uGNI, Verbs, shared memory, ROCM, CUDA. In addition, the layer provides constructs for communication context management (thread-based and application level), and allocation and management of device-specific memories including those found in accelerators. In terms of communication APIs, UCT defines interfaces for immediate (short), buffered copy-and-send (bcopy), and zero-copy (zcopy) communication operations.

+

Short: This type of operation is optimized for small messages that can be posted and completed in place.

+

Bcopy: This type of operation is optimized for medium size messages that are typically sent through a so-called bouncing-buffer. This auxiliary buffer is typically allocated given network constraints and ready for immediate utilization by the hardware. Since a custom data packing routine could be provided, this method can be used for non-contiguous i/o.

+

Zcopy: This type of operation exposes zero-copy memory-to-memory communication semantics, which means that message is sent directly from user buffer, or received directly to user buffer, without being copied between the network layers.

+

+UCP

+

UCP implements higher-level protocols that are typically used by message passing (MPI) and PGAS programming models by using lower-level capabilities exposed through the UCT layer. UCP is provides the following functionality: ability to select different transports for communication, message fragmentation, multi-rail communication, and initializing and finalizing the library. Currently, the API has the following classes of interfaces: Initialization, Remote Memory Access (RMA) communication, Atomic Memory Operations (AMO), Active Message, Tag-Matching, and Collectives.

+

Initialization: This subset of interfaces defines the communication context setup, queries the network capabilities, and initializes the local communication endpoints. The context represented by the UCX context is an abstraction of the network transport resources. The communication endpoint setup interfaces initialize the UCP endpoint, which is an abstraction of all the necessary resources associated with a particular connection. The communication endpoints are used as input to all communication operations to describe the source and destination of the communication.

+

RMA: This subset of interfaces defines one-sided communication operations such as PUT and GET, required for implementing low overhead, direct memory access communications constructs needed by both distributed and shared memory programming models. UCP includes a separate set of interfaces for communicating non-contiguous data. This functionality was included to support various programming models' communication requirements and leverage the scatter/gather capabilities of modern network hardware.

+

AMO: This subset of interfaces provides support for atomically performing operations on the remote memory, an important class of operations for PGAS programming models, particularly OpenSHMEM.

+

Tag Matching: This interface supports tag-matching for send-receive semantics which is a key communication semantic defined by the MPI specification.

+

Stream : The API provides order and reliable communication semantics. Data is treated as an ordered sequence of bytes pushed through the connection. In contrast of tag-matching interface, the size of each individual send does not necessarily have to match the size of each individual receive, as long as the total number of bytes is the same. This API is designed to match widely used BSD-socket based programming models.

+

Active Message: A subset of functionality where the incoming packet invokes a sender-specified callback in order to be processed by the receiving process. As an example, the two-sided MPI interface can easily be implemented on top of such a concept (TBD: cite openmpi ). However, these interfaces are more general and suited for other programming paradigms where the receiver process does not prepost receives, but expects to react to incoming packets directly. Like RMA and tag-matching interfaces, the active message interface provides separate APIs for different message types and non-contiguous data.

+

Collectives: This subset of interfaces defines group communication and synchronization operations. The collective operations include barrier, all-to-one, all-to-all, and reduction operations. When possible, we will take advantage of hardware acceleration for collectives (e.g., InfiniBand Switch collective acceleration).

+
+
+
+ + + + diff --git a/api/v1.17/html/md_docs_2doxygen_2intro.html b/api/v1.17/html/md_docs_2doxygen_2intro.html new file mode 100644 index 00000000000..6b9b4554fd8 --- /dev/null +++ b/api/v1.17/html/md_docs_2doxygen_2intro.html @@ -0,0 +1,133 @@ + + + + + + + +UCX: Introduction + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Introduction
+
+
+

+Motivation

+

A communication middleware abstracts the vendor-specific software and hardware interfaces. They bridge the semantic and functionality gap between the programming models and the software and hardware network interfaces by providing data transfer interfaces and implementation, optimized protocols for data transfer between various memories, and managing network resources. There are many communication middleware APIs and libraries to support parallel programming models such as MPI, OpenSHMEM, and task-based models.

+

Current communication middleware designs typically take two approaches. First, communication middleware such as Intel's PSM (previously Qlogic), Mellanox's MXM, and IBM's PAMI provide high-performance implementations for specific network hardware. Second, communication middleware such as VMI, Cactus, ARMCI, GASNet, and Open MPI are tightly coupled to a specific programming model. Communication middleware designed with either of this design approach requires significant porting effort to move a new network interface or programming model.

+

To achieve functional and performance portability across architectures and programming models, we introduce Unified Communication X (UCX).

+

+UCX

+

Unified Communication X (UCX) is a set of network APIs and their implementations for high throughput computing. UCX is a combined effort of national laboratories, industry, and academia to design and implement a high-performing and highly-scalable network stack for next generation applications and systems. UCX design provides the ability to tailor its APIs and network functionality to suit a wide variety of application domains. We envision that these APIs will satisfy the networking needs of many programming models such as the Message Passing Interface (MPI), OpenSHMEM, Partitioned Global Address Space (PGAS) languages, task-based paradigms, and I/O bound applications.

+

The initial focus is on supporting semantics such as point-to-point communications (one-sided and two-sided), collective communication, and remote atomic operations required for popular parallel programming models. Also, the initial UCX reference implementation is targeted to support current network technologies such as:

    +
  • Open Fabrics - InfiniBand (Mellanox, Qlogic, IBM), iWARP, RoCE
  • +
  • Cray uGNI - GEMINI and ARIES interconnects
  • +
  • Shared memory (MMAP, Posix, CMA, KNEM, XPMEM, etc.)
  • +
  • Ethernet (TCP/UDP)
  • +
+

UCX design goals are focused on performance and scalability, while efficiently supporting popular and emerging programming models.

+

UCX's API and design do not impose architectural constraints on the network hardware nor require any specific capabilities to the support the programming model functionality. This is achieved by keeping the API flexible and ability to support the missing functionality efficiently in the software.

+

Extreme scalability is an important design goal for UCX. To achieve this, UCX follows these design principles:

    +
  • Minimal memory consumption : Design avoids data-structures that scale with the number of processing elements (i.e., order N data structures), and share resources among multiple programming models.
  • +
  • Low-latency Interfaces: Design provides at least two sets of APIs with one set focused on the performance, and the other focused on functionality.
  • +
  • High bandwidth - With minimal software overhead combined and support for multi-rail and multi-device capabilities, the design provides all the hooks that are necessary for exploiting hardware bandwidth capabilities.
  • +
  • Asynchronous Progress: API provides non-blocking communication interfaces and design supports asynchronous progress required for communication and computation overlap
  • +
  • Resilience - the API exposes communication control hooks required for fault tolerant communication library implementation.
  • +
+

UCX design provides native support for hybrid programming models. The design enables resource sharing, optimal memory usage, and progress engine coordination to efficiently implement hybrid programming models. For example, hybrid applications that use both OpenSHMEM and MPI programming models will be able to select between a single-shared UCX network context or a stand alone UCX network context for each one of them. Such flexibility, optimized resource sharing, and reduced memory consumption, improve network and application performance.

+
+
+
+ + + + diff --git a/api/v1.17/html/memory__type_8h_source.html b/api/v1.17/html/memory__type_8h_source.html new file mode 100644 index 00000000000..9ee62838efb --- /dev/null +++ b/api/v1.17/html/memory__type_8h_source.html @@ -0,0 +1,170 @@ + + + + + + + +UCX: memory_type.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
UCX 1.17 +
+
Unified Communication X
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
memory_type.h
+
+
+
1
+
9#ifndef UCS_MEMORY_TYPE_H_
+
10#define UCS_MEMORY_TYPE_H_
+
11
+
12#include <ucs/sys/compiler_def.h>
+
13
+
14BEGIN_C_DECLS
+
15
+
16
+
20#define UCS_MEMORY_TYPES_CPU_ACCESSIBLE \
+
21 (UCS_BIT(UCS_MEMORY_TYPE_HOST) | UCS_BIT(UCS_MEMORY_TYPE_ROCM_MANAGED) | \
+
22 UCS_BIT(UCS_MEMORY_TYPE_ZE_HOST) | UCS_BIT(UCS_MEMORY_TYPE_ZE_MANAGED))
+
23
+
24
+
28#define ucs_memory_type_for_each(_x) \
+
29 for ((_x) = UCS_MEMORY_TYPE_HOST; (_x) < UCS_MEMORY_TYPE_LAST; (_x)++)
+
30
+
31
+ +
51
+
52
+
56extern const char *ucs_memory_type_names[];
+
57
+
61extern const char *ucs_memory_type_descs[];
+
62
+
63
+
64END_C_DECLS
+
65
+
66#endif
+
enum ucs_memory_type ucs_memory_type_t
Memory types.
+
ucs_memory_type
Memory types.
Definition memory_type.h:38
+
@ UCS_MEMORY_TYPE_ZE_MANAGED
Definition memory_type.h:47
+
@ UCS_MEMORY_TYPE_ZE_DEVICE
Definition memory_type.h:46
+
@ UCS_MEMORY_TYPE_HOST
Definition memory_type.h:39
+
@ UCS_MEMORY_TYPE_RDMA
Definition memory_type.h:44
+
@ UCS_MEMORY_TYPE_LAST
Definition memory_type.h:48
+
@ UCS_MEMORY_TYPE_ROCM
Definition memory_type.h:42
+
@ UCS_MEMORY_TYPE_ZE_HOST
Definition memory_type.h:45
+
@ UCS_MEMORY_TYPE_UNKNOWN
Definition memory_type.h:49
+
@ UCS_MEMORY_TYPE_CUDA_MANAGED
Definition memory_type.h:41
+
@ UCS_MEMORY_TYPE_ROCM_MANAGED
Definition memory_type.h:43
+
@ UCS_MEMORY_TYPE_CUDA
Definition memory_type.h:40
+
+
+ + + + diff --git a/api/v1.17/html/menu.js b/api/v1.17/html/menu.js new file mode 100644 index 00000000000..717761d01af --- /dev/null +++ b/api/v1.17/html/menu.js @@ -0,0 +1,134 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + let result=''; + if ('children' in data) { + result+='
    '; + for (let i in data.children) { + let url; + const link = data.children[i].url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + } else { + url = relPath+link; + } + result+='
  • '+ + data.children[i].text+''+ + makeTree(data.children[i],relPath)+'
  • '; + } + result+='
'; + } + return result; + } + let searchBoxHtml; + if (searchEnabled) { + if (serverSide) { + searchBoxHtml='
'+ + '
'+ + '
 '+ + ''+ + '
'+ + '
'+ + '
'+ + '
'; + } else { + searchBoxHtml='
'+ + ''+ + ' '+ + ''+ + ''+ + ''+ + ''+ + ''+ + '
'; + } + } + + $('#main-nav').before('
'+ + ''+ + ''+ + '
'); + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchBoxHtml) { + $('#main-menu').append('
  • '); + } + const $mainMenuState = $('#main-menu-state'); + let prevWidth = 0; + if ($mainMenuState.length) { + const initResizableIfExists = function() { + if (typeof initResizable==='function') initResizable(); + } + // animate mobile menu + $mainMenuState.change(function() { + const $menu = $('#main-menu'); + let options = { duration: 250, step: initResizableIfExists }; + if (this.checked) { + options['complete'] = () => $menu.css('display', 'block'); + $menu.hide().slideDown(options); + } else { + options['complete'] = () => $menu.css('display', 'none'); + $menu.show().slideUp(options); + } + }); + // set default menu visibility + const resetState = function() { + const $menu = $('#main-menu'); + const newWidth = $(window).outerWidth(); + if (newWidth!=prevWidth) { + if ($(window).outerWidth()<768) { + $mainMenuState.prop('checked',false); $menu.hide(); + $('#searchBoxPos1').html(searchBoxHtml); + $('#searchBoxPos2').hide(); + } else { + $menu.show(); + $('#searchBoxPos1').empty(); + $('#searchBoxPos2').html(searchBoxHtml); + $('#searchBoxPos2').show(); + } + if (typeof searchBox!=='undefined') { + searchBox.CloseResultsWindow(); + } + prevWidth = newWidth; + } + } + $(window).ready(function() { resetState(); initResizableIfExists(); }); + $(window).resize(resetState); + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/api/v1.17/html/menudata.js b/api/v1.17/html/menudata.js new file mode 100644 index 00000000000..43bc0448d60 --- /dev/null +++ b/api/v1.17/html/menudata.js @@ -0,0 +1,74 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Related Pages",url:"pages.html"}, +{text:"Data Structures",url:"annotated.html",children:[ +{text:"Data Structures",url:"annotated.html"}, +{text:"Data Structure Index",url:"classes.html"}, +{text:"Data Fields",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{text:"a",url:"functions.html#index_a"}, +{text:"b",url:"functions_b.html#index_b"}, +{text:"c",url:"functions_c.html#index_c"}, +{text:"d",url:"functions_d.html#index_d"}, +{text:"e",url:"functions_e.html#index_e"}, +{text:"f",url:"functions_f.html#index_f"}, +{text:"g",url:"functions_g.html#index_g"}, +{text:"h",url:"functions_h.html#index_h"}, +{text:"i",url:"functions_i.html#index_i"}, +{text:"k",url:"functions_k.html#index_k"}, +{text:"l",url:"functions_l.html#index_l"}, +{text:"m",url:"functions_m.html#index_m"}, +{text:"n",url:"functions_n.html#index_n"}, +{text:"o",url:"functions_o.html#index_o"}, +{text:"p",url:"functions_p.html#index_p"}, +{text:"r",url:"functions_r.html#index_r"}, +{text:"s",url:"functions_s.html#index_s"}, +{text:"t",url:"functions_t.html#index_t"}, +{text:"u",url:"functions_u.html#index_u"}, +{text:"w",url:"functions_w.html#index_w"}]}, +{text:"Variables",url:"functions_vars.html",children:[ +{text:"a",url:"functions_vars.html#index_a"}, +{text:"b",url:"functions_vars_b.html#index_b"}, +{text:"c",url:"functions_vars_c.html#index_c"}, +{text:"d",url:"functions_vars_d.html#index_d"}, +{text:"e",url:"functions_vars_e.html#index_e"}, +{text:"f",url:"functions_vars_f.html#index_f"}, +{text:"g",url:"functions_vars_g.html#index_g"}, +{text:"h",url:"functions_vars_h.html#index_h"}, +{text:"i",url:"functions_vars_i.html#index_i"}, +{text:"k",url:"functions_vars_k.html#index_k"}, +{text:"l",url:"functions_vars_l.html#index_l"}, +{text:"m",url:"functions_vars_m.html#index_m"}, +{text:"n",url:"functions_vars_n.html#index_n"}, +{text:"o",url:"functions_vars_o.html#index_o"}, +{text:"p",url:"functions_vars_p.html#index_p"}, +{text:"r",url:"functions_vars_r.html#index_r"}, +{text:"s",url:"functions_vars_s.html#index_s"}, +{text:"t",url:"functions_vars_t.html#index_t"}, +{text:"u",url:"functions_vars_u.html#index_u"}, +{text:"w",url:"functions_vars_w.html#index_w"}]}]}]}, +{text:"Examples",url:"examples.html"}]} diff --git a/api/v1.17/html/minus.svg b/api/v1.17/html/minus.svg new file mode 100644 index 00000000000..f70d0c1a183 --- /dev/null +++ b/api/v1.17/html/minus.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/api/v1.17/html/minusd.svg b/api/v1.17/html/minusd.svg new file mode 100644 index 00000000000..5f8e879628d --- /dev/null +++ b/api/v1.17/html/minusd.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/api/v1.17/html/namespace_3global_scope_4_structucs__callbackq.js b/api/v1.17/html/namespace_3global_scope_4_structucs__callbackq.js new file mode 100644 index 00000000000..f0af2f23cc8 --- /dev/null +++ b/api/v1.17/html/namespace_3global_scope_4_structucs__callbackq.js @@ -0,0 +1,5 @@ +var namespace_3global_scope_4_structucs__callbackq = +[ + [ "fast_elems", "namespace_3global_scope_4.html#a00e13bcee0aa60124620ed02e5cd9116", null ], + [ "priv", "namespace_3global_scope_4.html#a31eb5fc81314fecdff7ddfcceca90bf7", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/namespace_3global_scope_4_structucs__callbackq__elem.js b/api/v1.17/html/namespace_3global_scope_4_structucs__callbackq__elem.js new file mode 100644 index 00000000000..d4707f7e32f --- /dev/null +++ b/api/v1.17/html/namespace_3global_scope_4_structucs__callbackq__elem.js @@ -0,0 +1,5 @@ +var namespace_3global_scope_4_structucs__callbackq__elem = +[ + [ "cb", "namespace_3global_scope_4.html#a57233b5af77231c4fb6e8d0c7a9cf279", null ], + [ "arg", "namespace_3global_scope_4.html#a58d44a6931525b739c8dd932f369d917", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/namespace_3global_scope_4_structucs__config__allow__list__t.js b/api/v1.17/html/namespace_3global_scope_4_structucs__config__allow__list__t.js new file mode 100644 index 00000000000..1f663333947 --- /dev/null +++ b/api/v1.17/html/namespace_3global_scope_4_structucs__config__allow__list__t.js @@ -0,0 +1,5 @@ +var namespace_3global_scope_4_structucs__config__allow__list__t = +[ + [ "array", "namespace_3global_scope_4.html#a03eca40e3a768d33654ae128d60df93b", null ], + [ "mode", "namespace_3global_scope_4.html#a080bacced54b2014f148e933d4dc3347", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/namespace_3global_scope_4_structucs__log__component__config.js b/api/v1.17/html/namespace_3global_scope_4_structucs__log__component__config.js new file mode 100644 index 00000000000..0c04b455589 --- /dev/null +++ b/api/v1.17/html/namespace_3global_scope_4_structucs__log__component__config.js @@ -0,0 +1,6 @@ +var namespace_3global_scope_4_structucs__log__component__config = +[ + [ "log_level", "namespace_3global_scope_4.html#ae279af7e4a426fe21bde0e83a2c423ae", null ], + [ "name", "namespace_3global_scope_4.html#ad3c3436563841e129767778aae615f8f", null ], + [ "file_filter", "namespace_3global_scope_4.html#a24ae3d6f63dc62e024f4dc9b3af519d2", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/namespace_3global_scope_4_structuct__ppn__bandwidth.js b/api/v1.17/html/namespace_3global_scope_4_structuct__ppn__bandwidth.js new file mode 100644 index 00000000000..aaf6f8d60b0 --- /dev/null +++ b/api/v1.17/html/namespace_3global_scope_4_structuct__ppn__bandwidth.js @@ -0,0 +1,5 @@ +var namespace_3global_scope_4_structuct__ppn__bandwidth = +[ + [ "dedicated", "namespace_3global_scope_4.html#ab415588ec7332c0264ac81d883dd7a8c", null ], + [ "shared", "namespace_3global_scope_4.html#ad2a5875d9c5c32357a72b42ec00c3b6d", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/nav_f.png b/api/v1.17/html/nav_f.png new file mode 100644 index 00000000000..72a58a529ed Binary files /dev/null and b/api/v1.17/html/nav_f.png differ diff --git a/api/v1.17/html/nav_fd.png b/api/v1.17/html/nav_fd.png new file mode 100644 index 00000000000..032fbdd4c54 Binary files /dev/null and b/api/v1.17/html/nav_fd.png differ diff --git a/api/v1.17/html/nav_g.png b/api/v1.17/html/nav_g.png new file mode 100644 index 00000000000..2093a237a94 Binary files /dev/null and b/api/v1.17/html/nav_g.png differ diff --git a/api/v1.17/html/nav_h.png b/api/v1.17/html/nav_h.png new file mode 100644 index 00000000000..33389b101d9 Binary files /dev/null and b/api/v1.17/html/nav_h.png differ diff --git a/api/v1.17/html/nav_hd.png b/api/v1.17/html/nav_hd.png new file mode 100644 index 00000000000..de80f18ad64 Binary files /dev/null and b/api/v1.17/html/nav_hd.png differ diff --git a/api/v1.17/html/navtree.css b/api/v1.17/html/navtree.css new file mode 100644 index 00000000000..69211d4a78a --- /dev/null +++ b/api/v1.17/html/navtree.css @@ -0,0 +1,149 @@ +#nav-tree .children_ul { + margin:0; + padding:4px; +} + +#nav-tree ul { + list-style:none outside none; + margin:0px; + padding:0px; +} + +#nav-tree li { + white-space:nowrap; + margin:0px; + padding:0px; +} + +#nav-tree .plus { + margin:0px; +} + +#nav-tree .selected { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: var(--nav-text-active-color); + text-shadow: var(--nav-text-active-shadow); +} + +#nav-tree .selected .arrow { + color: var(--nav-arrow-selected-color); + text-shadow: none; +} + +#nav-tree img { + margin:0px; + padding:0px; + border:0px; + vertical-align: middle; +} + +#nav-tree a { + text-decoration:none; + padding:0px; + margin:0px; +} + +#nav-tree .label { + margin:0px; + padding:0px; + font: 12px var(--font-family-nav); +} + +#nav-tree .label a { + padding:2px; +} + +#nav-tree .selected a { + text-decoration:none; + color:var(--nav-text-active-color); +} + +#nav-tree .children_ul { + margin:0px; + padding:0px; +} + +#nav-tree .item { + margin:0px; + padding:0px; +} + +#nav-tree { + padding: 0px 0px; + font-size:14px; + overflow:auto; +} + +#doc-content { + overflow:auto; + display:block; + padding:0px; + margin:0px; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#side-nav { + padding:0 6px 0 0; + margin: 0px; + display:block; + position: absolute; + left: 0px; + width: $width; + overflow : hidden; +} + +.ui-resizable .ui-resizable-handle { + display:block; +} + +.ui-resizable-e { + background-image:var(--nav-splitbar-image); + background-size:100%; + background-repeat:repeat-y; + background-attachment: scroll; + cursor:ew-resize; + height:100%; + right:0; + top:0; + width:6px; +} + +.ui-resizable-handle { + display:none; + font-size:0.1px; + position:absolute; + z-index:1; +} + +#nav-tree-contents { + margin: 6px 0px 0px 0px; +} + +#nav-tree { + background-repeat:repeat-x; + background-color: var(--nav-background-color); + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#nav-sync { + position:absolute; + top:5px; + right:24px; + z-index:0; +} + +#nav-sync img { + opacity:0.3; +} + +#nav-sync img:hover { + opacity:0.9; +} + +@media print +{ + #nav-tree { display: none; } + div.ui-resizable-handle { display: none; position: relative; } +} + diff --git a/api/v1.17/html/navtree.js b/api/v1.17/html/navtree.js new file mode 100644 index 00000000000..884b79b6dea --- /dev/null +++ b/api/v1.17/html/navtree.js @@ -0,0 +1,482 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ + +function initNavTree(toroot,relpath) { + let navTreeSubIndices = []; + const ARROW_DOWN = '▼'; + const ARROW_RIGHT = '►'; + const NAVPATH_COOKIE_NAME = ''+'navpath'; + + const getData = function(varName) { + const i = varName.lastIndexOf('/'); + const n = i>=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/-/g,'_')); + } + + const stripPath = function(uri) { + return uri.substring(uri.lastIndexOf('/')+1); + } + + const stripPath2 = function(uri) { + const i = uri.lastIndexOf('/'); + const s = uri.substring(i+1); + const m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; + } + + const hashValue = function() { + return $(location).attr('hash').substring(1).replace(/[^\w-]/g,''); + } + + const hashUrl = function() { + return '#'+hashValue(); + } + + const pathName = function() { + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;()]/g, ''); + } + + const storeLink = function(link) { + if (!$("#nav-sync").hasClass('sync')) { + Cookie.writeSetting(NAVPATH_COOKIE_NAME,link,0); + } + } + + const deleteLink = function() { + Cookie.eraseSetting(NAVPATH_COOKIE_NAME); + } + + const cachedLink = function() { + return Cookie.readSetting(NAVPATH_COOKIE_NAME,''); + } + + const getScript = function(scriptName,func) { + const head = document.getElementsByTagName("head")[0]; + const script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + head.appendChild(script); + } + + const createIndent = function(o,domNode,node) { + let level=-1; + let n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + const imgNode = document.createElement("span"); + imgNode.className = 'arrow'; + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.innerHTML=ARROW_RIGHT; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.innerHTML=ARROW_RIGHT; + node.expanded = false; + } else { + expandNode(o, node, false, true); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + } else { + let span = document.createElement("span"); + span.className = 'arrow'; + span.style.width = 16*(level+1)+'px'; + span.innerHTML = ' '; + domNode.appendChild(span); + } + } + + let animationInProgress = false; + + const gotoAnchor = function(anchor,aname) { + let pos, docContent = $('#doc-content'); + let ancParent = $(anchor.parent()); + if (ancParent.hasClass('memItemLeft') || ancParent.hasClass('memtitle') || + ancParent.hasClass('fieldname') || ancParent.hasClass('fieldtype') || + ancParent.is(':header')) { + pos = ancParent.position().top; + } else if (anchor.position()) { + pos = anchor.position().top; + } + if (pos) { + const dcOffset = docContent.offset().top; + const dcHeight = docContent.height(); + const dcScrHeight = docContent[0].scrollHeight + const dcScrTop = docContent.scrollTop(); + let dist = Math.abs(Math.min(pos-dcOffset,dcScrHeight-dcHeight-dcScrTop)); + animationInProgress = true; + docContent.animate({ + scrollTop: pos + dcScrTop - dcOffset + },Math.max(50,Math.min(500,dist)),function() { + window.location.href=aname; + animationInProgress=false; + }); + } + } + + const newNode = function(o, po, text, link, childrenData, lastNode) { + const node = { + children : [], + childrenData : childrenData, + depth : po.depth + 1, + relpath : po.relpath, + isLast : lastNode, + li : document.createElement("li"), + parentNode : po, + itemDiv : document.createElement("div"), + labelSpan : document.createElement("span"), + label : document.createTextNode(text), + expanded : false, + childrenUL : null, + getChildrenUL : function() { + if (!this.childrenUL) { + this.childrenUL = document.createElement("ul"); + this.childrenUL.className = "children_ul"; + this.childrenUL.style.display = "none"; + this.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }, + }; + + node.itemDiv.className = "item"; + node.labelSpan.className = "label"; + createIndent(o,node.itemDiv,node); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + const a = document.createElement("a"); + node.labelSpan.appendChild(a); + po.getChildrenUL().appendChild(node.li); + a.appendChild(node.label); + if (link) { + let url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + const aname = '#'+link.split('#')[1]; + const srcPage = stripPath(pathName()); + const targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : aname; + a.onclick = function() { + storeLink(link); + aPPar = $(a).parent().parent(); + if (!aPPar.hasClass('selected')) { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + aPPar.addClass('selected'); + aPPar.attr('id','selected'); + } + const anchor = $(aname); + gotoAnchor(anchor,aname); + }; + } else { + a.href = url; + a.onclick = () => storeLink(link); + } + } else if (childrenData != null) { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + return node; + } + + const showRoot = function() { + const headerHeight = $("#top").height(); + const footerHeight = $("#nav-path").height(); + const windowHeight = $(window).height() - headerHeight - footerHeight; + (function() { // retry until we can scroll to the selected item + try { + const navtree=$('#nav-tree'); + navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); + } + + const expandNode = function(o, node, imm, setFocus) { + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + const varName = node.childrenData; + getScript(node.relpath+varName,function() { + node.childrenData = getData(varName); + expandNode(o, node, imm, setFocus); + }); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).slideDown("fast"); + node.plus_img.innerHTML = ARROW_DOWN; + node.expanded = true; + if (setFocus) { + $(node.expandToggle).focus(); + } + } + } + } + + const glowEffect = function(n,duration) { + n.addClass('glow').delay(duration).queue(function(next) { + $(this).removeClass('glow');next(); + }); + } + + const highlightAnchor = function() { + const aname = hashUrl(); + const anchor = $(aname); + if (anchor.parent().attr('class')=='memItemLeft') { + let rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parent().attr('class')=='fieldname') { + glowEffect(anchor.parent().parent(),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype') { + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } + gotoAnchor(anchor,aname); + } + + const selectAndHighlight = function(hash,n) { + let a; + if (hash) { + const link=stripPath(pathName())+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + let topOffset=5; + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + topOffset+=25; + } + $('#nav-sync').css('top',topOffset+'px'); + showRoot(); + } + + const showNode = function(o, node, index, hash) { + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + const varName = node.childrenData; + getScript(node.relpath+varName,function() { + node.childrenData = getData(varName); + showNode(o,node,index,hash); + }); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).css({'display':'block'}); + node.plus_img.innerHTML = ARROW_DOWN; + node.expanded = true; + const n = node.children[o.breadcrumbs[index]]; + if (index+11 ? '#'+parts[1].replace(/[^\w-]/g,'') : ''; + } + if (hash.match(/^#l\d+$/)) { + const anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + } + const url=root+hash; + let i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function() { + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + }); + } + } + + const showSyncOff = function(n,relpath) { + n.html(''); + } + + const showSyncOn = function(n,relpath) { + n.html(''); + } + + const o = { + toroot : toroot, + node : { + childrenData : NAVTREE, + children : [], + childrenUL : document.createElement("ul"), + getChildrenUL : function() { return this.childrenUL }, + li : document.getElementById("nav-tree-contents"), + depth : 0, + relpath : relpath, + expanded : false, + isLast : true, + plus_img : document.createElement("span"), + }, + }; + o.node.li.appendChild(o.node.childrenUL); + o.node.plus_img.className = 'arrow'; + o.node.plus_img.innerHTML = ARROW_RIGHT; + + const navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + + navSync.click(() => { + const navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2(pathName())+hashUrl()); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } + }); + + navTo(o,toroot,hashUrl(),relpath); + showRoot(); + + $(window).bind('hashchange', () => { + if (window.location.hash && window.location.hash.length>1) { + let a; + if ($(location).attr('hash')) { + const clslink=stripPath(pathName())+':'+hashValue(); + a=$('.item a[class$="'+clslink.replace(/ + + + + + + +UCX: Related Pages + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    UCX 1.17 +
    +
    Unified Communication X
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Related Pages
    +
    +
    +
    Here is a list of all related documentation pages:
    +
    +
    + + + + diff --git a/api/v1.17/html/plus.svg b/api/v1.17/html/plus.svg new file mode 100644 index 00000000000..07520165535 --- /dev/null +++ b/api/v1.17/html/plus.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/api/v1.17/html/plusd.svg b/api/v1.17/html/plusd.svg new file mode 100644 index 00000000000..0c65bfe946d --- /dev/null +++ b/api/v1.17/html/plusd.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/api/v1.17/html/resize.js b/api/v1.17/html/resize.js new file mode 100644 index 00000000000..6ad2ae80e5b --- /dev/null +++ b/api/v1.17/html/resize.js @@ -0,0 +1,109 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ + +function initResizable() { + let sidenav,navtree,content,header,footer,barWidth=6; + const RESIZE_COOKIE_NAME = ''+'width'; + + function resizeWidth() { + const sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(sidenavWidth)+"px"}); + } + Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth); + } + + function restoreWidth(navWidth) { + content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + } + sidenav.css({width:navWidth + "px"}); + } + + function resizeHeight() { + const headerHeight = header.outerHeight(); + const footerHeight = footer.outerHeight(); + const windowHeight = $(window).height(); + let contentHeight,navtreeHeight,sideNavHeight; + if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */ + contentHeight = windowHeight - headerHeight - footerHeight; + navtreeHeight = contentHeight; + sideNavHeight = contentHeight; + } else if (page_layout==1) { /* DISABLE_INDEX=YES */ + contentHeight = windowHeight - footerHeight; + navtreeHeight = windowHeight - headerHeight; + sideNavHeight = windowHeight; + } + content.css({height:contentHeight + "px"}); + navtree.css({height:navtreeHeight + "px"}); + sidenav.css({height:sideNavHeight + "px"}); + if (location.hash.slice(1)) { + (document.getElementById(location.hash.slice(1))||document.body).scrollIntoView(); + } + } + + function collapseExpand() { + let newWidth; + if (sidenav.width()>0) { + newWidth=0; + } else { + const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250); + newWidth = (width>250 && width<$(window).width()) ? width : 250; + } + restoreWidth(newWidth); + const sidenavWidth = $(sidenav).outerWidth(); + Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth); + } + + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: () => resizeWidth() }); + $(sidenav).resizable({ minWidth: 0 }); + $(window).resize(() => resizeHeight()); + const device = navigator.userAgent.toLowerCase(); + const touch_device = device.match(/(iphone|ipod|ipad|android)/); + if (touch_device) { /* wider split bar for touch only devices */ + $(sidenav).css({ paddingRight:'20px' }); + $('.ui-resizable-e').css({ width:'20px' }); + $('#nav-sync').css({ right:'34px' }); + barWidth=20; + } + const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + const url = location.href; + const i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + const _preventDefault = (evt) => evt.preventDefault(); + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(".ui-resizable-handle").dblclick(collapseExpand); + $(window).on('load',resizeHeight); +} +/* @license-end */ diff --git a/api/v1.17/html/search/all_0.js b/api/v1.17/html/search/all_0.js new file mode 100644 index 00000000000..b265b0e3921 --- /dev/null +++ b/api/v1.17/html/search/all_0.js @@ -0,0 +1,32 @@ +var searchData= +[ + ['accept_5fhandler_0',['accept_handler',['../group___u_c_p___w_o_r_k_e_r.html#a17487f0e8e3102519d7b512c77efdb1f',1,'ucp_listener_params']]], + ['access_20operations_1',['UCT Remote memory access operations',['../group___u_c_t___r_m_a.html',1,'']]], + ['access_5fmem_5ftypes_2',['access_mem_types',['../group___u_c_t___m_d.html#aa44843ffc1f73fe1e700622ad6bc4ab5',1,'uct_md_attr.cap']]], + ['active_20messages_3',['UCT Active messages',['../group___u_c_t___a_m.html',1,'']]], + ['addr_4',['addr',['../group___u_c_s___r_e_s_o_u_r_c_e.html#a6294db86dc9327058b8a31cb4af87edb',1,'ucs_sock_addr']]], + ['address_5',['address',['../group___u_c_p___w_o_r_k_e_r.html#a0863e78ee73ef351311c54d95b6c8fa5',1,'ucp_worker_attr::address'],['../group___u_c_p___m_e_m.html#acc3761c4bbcca9c1defa742a8db08bbb',1,'ucp_mem_map_params::address'],['../group___u_c_p___m_e_m.html#ab25f1b439c184a0bfb93eda0c9ceb9f7',1,'ucp_mem_advise_params::address'],['../group___u_c_p___m_e_m.html#ab9a2b772838f436158ae4e25d8bb21e4',1,'ucp_mem_attr::address'],['../group___u_c_p___e_n_d_p_o_i_n_t.html#a8cf5c1599022ccdea5a6d1c97ced3627',1,'ucp_ep_params::address'],['../group___u_c_t___m_d.html#abd26b6aa42f6d176591f7028317bb887',1,'uct_allocated_memory::address'],['../group___u_c_t___m_d.html#a5d1be32ed06a9f67bdf686d1c2ec71fc',1,'uct_mem_alloc_params_t::address']]], + ['address_5fflags_6',['address_flags',['../group___u_c_p___w_o_r_k_e_r.html#a6c288e285b8c870ec576f1a939519799',1,'ucp_worker_attr']]], + ['address_5flength_7',['address_length',['../group___u_c_p___w_o_r_k_e_r.html#a7b0ad8e7e5c8d4c4c4931e769ca0fe6f',1,'ucp_worker_attr']]], + ['addrlen_8',['addrlen',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ac86eaa6362c3345d05c75bb4508ff2f1',1,'ucs_sock_addr']]], + ['advice_9',['advice',['../group___u_c_p___m_e_m.html#a26833bd101fcb6b4c1024b2975aed5dc',1,'ucp_mem_advise_params']]], + ['align_5fmtu_10',['align_mtu',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a46a9c80802ec1ec433bbc251f69a8fdf',1,'uct_iface_attr.cap.put::align_mtu'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a46a9c80802ec1ec433bbc251f69a8fdf',1,'uct_iface_attr.cap.get::align_mtu'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a46a9c80802ec1ec433bbc251f69a8fdf',1,'uct_iface_attr.cap.am::align_mtu']]], + ['alloc_5flength_11',['alloc_length',['../group___u_c_t___m_d.html#aea0d8373ac6c6d4a17eb15627a10b33f',1,'uct_md_mem_attr']]], + ['alloc_5fmem_5ftypes_12',['alloc_mem_types',['../group___u_c_t___m_d.html#ab86d86005547ec04bdee8312bce06410',1,'uct_md_attr.cap']]], + ['am_13',['am',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ac04cd38aeb30f3ad1f8ab4e64a0ded7b',1,'uct_iface_attr.cap']]], + ['am_5falign_5foffset_14',['am_align_offset',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a119e07151f7cfc215fdf86724cccf1f9',1,'uct_iface_params']]], + ['am_5falignment_15',['am_alignment',['../group___u_c_p___w_o_r_k_e_r.html#aab378fafe0b474381edbe25023910eb4',1,'ucp_worker_params::am_alignment'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a578571513991a26e7d0331b439968948',1,'uct_iface_params::am_alignment']]], + ['and_20capabilities_16',['UCT interface operations and capabilities',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html',1,'']]], + ['and_20notations_17',['Conventions and Notations',['../md_docs_2doxygen_2conventions.html',1,'']]], + ['api_18',['API',['../group___u_c_p___a_p_i.html',1,'Unified Communication Protocol (UCP) API'],['../group___u_c_s___a_p_i.html',1,'Unified Communication Services (UCS) API'],['../group___u_c_t___a_p_i.html',1,'Unified Communication Transport (UCT) API']]], + ['application_20context_19',['UCP Application Context',['../group___u_c_p___c_o_n_t_e_x_t.html',1,'']]], + ['arg_20',['arg',['../group___u_c_p___w_o_r_k_e_r.html#ae1670a4926d8528fb1ec1cd3f461f13a',1,'ucp_am_handler_param::arg'],['../group___u_c_p___w_o_r_k_e_r.html#a05ba12e5d6e6c2b3caef35975644ce85',1,'ucp_listener_accept_handler::arg'],['../group___u_c_p___c_o_m_m.html#a7e49e1843e1adab5561e5fc2b2e1afb1',1,'ucp_err_handler::arg'],['../group___u_c_p___w_o_r_k_e_r.html#ae84882c5fbe486b118460662afe395ec',1,'ucp_listener_conn_handler::arg'],['../namespace_3global_scope_4.html#a58d44a6931525b739c8dd932f369d917',1,'ucs_callbackq_elem::arg']]], + ['array_21',['array',['../namespace_3global_scope_4.html#a03eca40e3a768d33654ae128d60df93b',1,'ucs_config_allow_list_t']]], + ['async_5fevent_5farg_22',['async_event_arg',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a678662e17ae32ca245a45d449ea497f0',1,'uct_iface_params']]], + ['async_5fevent_5fcb_23',['async_event_cb',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ab15b293126224a46cd25af411f75d39b',1,'uct_iface_params']]], + ['asynchronous_20event_20capabilities_24',['UCT interface for asynchronous event capabilities',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___e_v_e_n_t___c_a_p.html',1,'']]], + ['atomic_20operations_25',['UCT Atomic operations',['../group___u_c_t___a_m_o.html',1,'']]], + ['atomic32_26',['atomic32',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ab6ef684feef10177fc3c31b012c575a2',1,'uct_iface_attr.cap']]], + ['atomic64_27',['atomic64',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a1dd9655cfd97613a0a996060a998b0d4',1,'uct_iface_attr.cap']]], + ['audience_28',['Audience',['../index.html#Audience',1,'']]] +]; diff --git a/api/v1.17/html/search/all_1.js b/api/v1.17/html/search/all_1.js new file mode 100644 index 00000000000..4165b54a6a6 --- /dev/null +++ b/api/v1.17/html/search/all_1.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['backlog_0',['backlog',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a31658aea3303489537ffd68ecbd52f9c',1,'uct_listener_params']]], + ['bandwidth_1',['bandwidth',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a6a9bab4b671c0d0da959c98a4b3ab7ac',1,'uct_iface_attr']]], + ['base_5faddress_2',['base_address',['../group___u_c_t___m_d.html#a18678799e605b7caa7cca03e6a5ba368',1,'uct_md_mem_attr']]], + ['behavior_3',['Behavior',['../md_docs_2doxygen_2conventions.html#Blocking',1,'Blocking Behavior'],['../md_docs_2doxygen_2conventions.html#Non-blocking',1,'Non-blocking Behavior']]], + ['blocking_20behavior_4',['Blocking Behavior',['../md_docs_2doxygen_2conventions.html#Blocking',1,'Blocking Behavior'],['../md_docs_2doxygen_2conventions.html#Non-blocking',1,'Non-blocking Behavior']]], + ['buffer_5',['buffer',['../group___u_c_p___d_a_t_a_t_y_p_e.html#a6cf4c47c33d61c097226b570a470f10c',1,'ucp_dt_iov::buffer'],['../group___u_c_p___d_a_t_a_t_y_p_e.html#a20f316c0e0e6c5de2e0e1851b9e22c32',1,'ucp_datatype_attr::buffer'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a315a759f0ec81b26fcba7530e43d9149',1,'uct_iov::buffer']]] +]; diff --git a/api/v1.17/html/search/all_10.js b/api/v1.17/html/search/all_10.js new file mode 100644 index 00000000000..f6e119ad248 --- /dev/null +++ b/api/v1.17/html/search/all_10.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['scope_20of_20the_20document_0',['Scope of the Document',['../index.html#Scope',1,'']]], + ['send_1',['send',['../group___u_c_p___c_o_n_t_e_x_t.html#a2541d938b0a58946090d7abdde0d3890',1,'ucp_request_param_t.cb']]], + ['sender_5ftag_2',['sender_tag',['../group___u_c_p___c_o_n_t_e_x_t.html#a19ac36808d83d348b23cd34fe997a7c9',1,'ucp_tag_recv_info']]], + ['server_20operations_3',['UCT client-server operations',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html',1,'']]], + ['services_20ucs_20api_4',['Unified Communication Services (UCS) API',['../group___u_c_s___a_p_i.html',1,'']]], + ['shared_5',['shared',['../namespace_3global_scope_4.html#ad2a5875d9c5c32357a72b42ec00c3b6d',1,'uct_ppn_bandwidth']]], + ['signal_20handler_20functions_6',['Interaction with Signal Handler Functions',['../md_docs_2doxygen_2conventions.html#Interaction',1,'']]], + ['sockaddr_7',['sockaddr',['../group___u_c_p___w_o_r_k_e_r.html#affcc213cd4305412937974eefb95bc32',1,'ucp_listener_attr::sockaddr'],['../group___u_c_p___w_o_r_k_e_r.html#a88be57709393e7bf27d10d8a5238b544',1,'ucp_listener_params::sockaddr'],['../group___u_c_p___e_n_d_p_o_i_n_t.html#aa23fd9a6a092266371258bd285c96816',1,'ucp_ep_params::sockaddr'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a3eeadaece922904cae592889db563977',1,'uct_ep_params::sockaddr'],['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a8cc6f13deda40a11ae98cae547869342',1,'uct_listener_attr::sockaddr'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a48bf0900b6d58aadfcae19eef1faccf2',1,'uct_iface_params.mode::sockaddr']]], + ['sockaddr_5fcb_5fclient_8',['sockaddr_cb_client',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a375c999b7326f631877deae2bf24ccf6',1,'uct_ep_params']]], + ['sockaddr_5fcb_5fflags_9',['sockaddr_cb_flags',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a1471e0cef36287e0b37645beba2d792c',1,'uct_ep_params']]], + ['sockaddr_5fcb_5fserver_10',['sockaddr_cb_server',['../group___u_c_t___r_e_s_o_u_r_c_e.html#aa290e652d57da6ee3bc5d1efff43a2fe',1,'uct_ep_params']]], + ['sockaddr_5fpack_5fcb_11',['sockaddr_pack_cb',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a7d44f52031c50abc0b6636421c82bbf1',1,'uct_ep_params']]], + ['start_5fpack_12',['start_pack',['../group___u_c_p___d_a_t_a_t_y_p_e.html#ga80d7580ef18274885656e4ab226e7e96',1,'ucp_generic_dt_ops']]], + ['start_5funpack_13',['start_unpack',['../group___u_c_p___d_a_t_a_t_y_p_e.html#ga32dc370dd9d442d48409c5ab2518e937',1,'ucp_generic_dt_ops']]], + ['stats_5froot_14',['stats_root',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a6d87dd22dc349557a706bb25d49975f0',1,'uct_iface_params']]], + ['status_15',['Document Status',['../index.html#Status',1,'']]], + ['status_16',['status',['../group___u_c_p___c_o_m_m.html#a3df010dde5b9a67b62bd354f0af3fc93',1,'ucp_request_attr_t::status'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#aa3b099f011e78bd23c8768264576314d',1,'uct_completion::status'],['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#afc75b0697e4624831532a20013eb4c98',1,'uct_cm_ep_resolve_args::status'],['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ab34b457dd1e16034378445aeac010d4b',1,'uct_cm_ep_client_connect_args::status'],['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a0deb70821df070090ebef30cb70b66c2',1,'uct_cm_ep_server_conn_notify_args::status']]], + ['stride_17',['stride',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a21ea5b278cab407db05eaa3dce3b2824',1,'uct_iov']]], + ['sys_5fdev_18',['sys_dev',['../group___u_c_t___m_d.html#aacc6d26ea7f15b8cd19cb9b10eb4603c',1,'uct_md_mem_attr']]], + ['sys_5fdevice_19',['sys_device',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a1e3ce2607f86f8faf1eacf0b91636e27',1,'uct_tl_resource_desc']]] +]; diff --git a/api/v1.17/html/search/all_11.js b/api/v1.17/html/search/all_11.js new file mode 100644 index 00000000000..7783dd7c4ce --- /dev/null +++ b/api/v1.17/html/search/all_11.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['tag_0',['tag',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ae4d23e841d8e8804190027bce3180fa5',1,'uct_iface_attr.cap']]], + ['tag_20matching_20operations_1',['UCT Tag matching operations',['../group___u_c_t___t_a_g.html',1,'']]], + ['tag_5fconsumed_5fcb_2',['tag_consumed_cb',['../structuct__tag__context.html#a860b64e8963cbf48fb192045ec2d6689',1,'uct_tag_context']]], + ['tag_5finfo_3',['tag_info',['../group___u_c_p___c_o_n_t_e_x_t.html#afd2efab53a12a2742d277a8bcab056a6',1,'ucp_request_param_t.recv_info']]], + ['tag_5fsender_5fmask_4',['tag_sender_mask',['../group___u_c_p___c_o_n_f_i_g.html#a82241de012d49800d2b75bd982f9b6b6',1,'ucp_params']]], + ['the_20document_5',['Scope of the Document',['../index.html#Scope',1,'']]], + ['thread_5fmode_6',['thread_mode',['../group___u_c_p___c_o_n_t_e_x_t.html#a4bc884428c16540d5d1b1f56881eb80b',1,'ucp_context_attr::thread_mode'],['../group___u_c_p___w_o_r_k_e_r.html#abf2b8b0c74946fbd1791a21369236678',1,'ucp_worker_attr::thread_mode'],['../group___u_c_p___w_o_r_k_e_r.html#a790642ea681ddd2b0935ad62f70e4ef1',1,'ucp_worker_params::thread_mode']]], + ['tl_5fname_7',['tl_name',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a97eefc21494ace8e0ca2598eb8085001',1,'uct_tl_resource_desc::tl_name'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a014d3b92d61614fb65175a049548627c',1,'uct_iface_params.mode.device::tl_name']]], + ['transport_20uct_20api_8',['Unified Communication Transport (UCT) API',['../group___u_c_t___a_p_i.html',1,'']]], + ['transport_5fname_9',['transport_name',['../group___u_c_p___e_n_d_p_o_i_n_t.html#a1065b2abc0bf2a05a551059cd1f14ffd',1,'ucp_transport_entry_t']]], + ['transports_10',['transports',['../group___u_c_p___e_n_d_p_o_i_n_t.html#a2104226ca6c263e31b669a148185181b',1,'ucp_ep_attr']]], + ['type_11',['type',['../group___u_c_t___m_d.html#ae9d6a73b93fa47d853ff2180fbd273b2',1,'uct_rkey_bundle']]], + ['type_20routines_12',['UCP Data type routines',['../group___u_c_p___d_a_t_a_t_y_p_e.html',1,'']]] +]; diff --git a/api/v1.17/html/search/all_12.js b/api/v1.17/html/search/all_12.js new file mode 100644 index 00000000000..c1c02bdc5c3 --- /dev/null +++ b/api/v1.17/html/search/all_12.js @@ -0,0 +1,927 @@ +var searchData= +[ + ['ucp_20api_0',['Unified Communication Protocol (UCP) API',['../group___u_c_p___a_p_i.html',1,'']]], + ['ucp_20application_20context_1',['UCP Application Context',['../group___u_c_p___c_o_n_t_e_x_t.html',1,'']]], + ['ucp_20communication_20routines_2',['UCP Communication routines',['../group___u_c_p___c_o_m_m.html',1,'']]], + ['ucp_20configuration_3',['UCP Configuration',['../group___u_c_p___c_o_n_f_i_g.html',1,'']]], + ['ucp_20data_20type_20routines_4',['UCP Data type routines',['../group___u_c_p___d_a_t_a_t_y_p_e.html',1,'']]], + ['ucp_20endpoint_5',['UCP Endpoint',['../group___u_c_p___e_n_d_p_o_i_n_t.html',1,'']]], + ['ucp_20memory_20routines_6',['UCP Memory routines',['../group___u_c_p___m_e_m.html',1,'']]], + ['ucp_20wake_20up_20routines_7',['UCP Wake-up routines',['../group___u_c_p___w_a_k_e_u_p.html',1,'']]], + ['ucp_20worker_8',['UCP Worker',['../group___u_c_p___w_o_r_k_e_r.html',1,'']]], + ['ucp_5faddress_5ft_9',['ucp_address_t',['../group___u_c_p___w_o_r_k_e_r.html#ga7d24d2759c1375bf4d2d639e3b701956',1,'ucp_def.h']]], + ['ucp_5fam_5fcallback_5ft_10',['ucp_am_callback_t',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gad61809eb62935c7f2e301fcb47c01727',1,'ucp_def.h']]], + ['ucp_5fam_5fcb_5fflags_11',['ucp_am_cb_flags',['../group___u_c_p___w_o_r_k_e_r.html#ga41d5b7b408c7546c7cb8b38d72f8653f',1,'ucp.h']]], + ['ucp_5fam_5fdata_5frelease_12',['ucp_am_data_release',['../group___u_c_p___c_o_m_m.html#ga45570903fc3ce01e7e5c0cd241f516f9',1,'ucp.h']]], + ['ucp_5fam_5fflag_5fpersistent_5fdata_13',['UCP_AM_FLAG_PERSISTENT_DATA',['../group___u_c_p___w_o_r_k_e_r.html#gga41d5b7b408c7546c7cb8b38d72f8653faa15bbd02f0d9e0afd2e979b89669fbe2',1,'ucp.h']]], + ['ucp_5fam_5fflag_5fwhole_5fmsg_14',['UCP_AM_FLAG_WHOLE_MSG',['../group___u_c_p___w_o_r_k_e_r.html#gga41d5b7b408c7546c7cb8b38d72f8653fab8e0a400e8017b571682b853c8ff0559',1,'ucp.h']]], + ['ucp_5fam_5fhandler_5fparam_15',['ucp_am_handler_param',['../group___u_c_p___w_o_r_k_e_r.html#structucp__am__handler__param',1,'']]], + ['ucp_5fam_5fhandler_5fparam_5ffield_16',['ucp_am_handler_param_field',['../group___u_c_p___c_o_m_m.html#gaeae021145933ffa033b8327bb7bf2533',1,'ucp.h']]], + ['ucp_5fam_5fhandler_5fparam_5ffield_5farg_17',['UCP_AM_HANDLER_PARAM_FIELD_ARG',['../group___u_c_p___c_o_m_m.html#ggaeae021145933ffa033b8327bb7bf2533a23622f1a9046a0b59d1519732e2b73ff',1,'ucp.h']]], + ['ucp_5fam_5fhandler_5fparam_5ffield_5fcb_18',['UCP_AM_HANDLER_PARAM_FIELD_CB',['../group___u_c_p___c_o_m_m.html#ggaeae021145933ffa033b8327bb7bf2533a6c2a2d3fe9c7118d3513833ad452cb69',1,'ucp.h']]], + ['ucp_5fam_5fhandler_5fparam_5ffield_5fflags_19',['UCP_AM_HANDLER_PARAM_FIELD_FLAGS',['../group___u_c_p___c_o_m_m.html#ggaeae021145933ffa033b8327bb7bf2533a99854985610ec532f0c83e36b3cadb3d',1,'ucp.h']]], + ['ucp_5fam_5fhandler_5fparam_5ffield_5fid_20',['UCP_AM_HANDLER_PARAM_FIELD_ID',['../group___u_c_p___c_o_m_m.html#ggaeae021145933ffa033b8327bb7bf2533a4b9788659b793630cee9bc027add35ad',1,'ucp.h']]], + ['ucp_5fam_5fhandler_5fparam_5ft_21',['ucp_am_handler_param_t',['../group___u_c_p___w_o_r_k_e_r.html#ga1e2efca405d525b094ad49e38d80269b',1,'ucp.h']]], + ['ucp_5fam_5frecv_5fattr_5ffield_5freply_5fep_22',['UCP_AM_RECV_ATTR_FIELD_REPLY_EP',['../group___u_c_p___c_o_m_m.html#gga487a3c588a11e42b9f313f0c9e2ead3ba7a4057be7a4cc3bba470da4f8ed63259',1,'ucp.h']]], + ['ucp_5fam_5frecv_5fattr_5fflag_5fdata_23',['UCP_AM_RECV_ATTR_FLAG_DATA',['../group___u_c_p___c_o_m_m.html#gga487a3c588a11e42b9f313f0c9e2ead3baf77ecce2987e81bf773a48363767b77e',1,'ucp.h']]], + ['ucp_5fam_5frecv_5fattr_5fflag_5frndv_24',['UCP_AM_RECV_ATTR_FLAG_RNDV',['../group___u_c_p___c_o_m_m.html#gga487a3c588a11e42b9f313f0c9e2ead3baf9a8d75af5b826d7563863591a98714f',1,'ucp.h']]], + ['ucp_5fam_5frecv_5fattr_5ft_25',['ucp_am_recv_attr_t',['../group___u_c_p___c_o_m_m.html#ga487a3c588a11e42b9f313f0c9e2ead3b',1,'ucp.h']]], + ['ucp_5fam_5frecv_5fcallback_5ft_26',['ucp_am_recv_callback_t',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gab3adc96222b05543c6cba8c28c16703b',1,'ucp_def.h']]], + ['ucp_5fam_5frecv_5fdata_5fnbx_27',['ucp_am_recv_data_nbx',['../group___u_c_p___c_o_m_m.html#gaefaaa5e0a154efe496ae5bb7f2bf71f3',1,'ucp.h']]], + ['ucp_5fam_5frecv_5fdata_5fnbx_5fcallback_5ft_28',['ucp_am_recv_data_nbx_callback_t',['../group___u_c_p___c_o_m_m.html#ga242399982563973351591516039dd74b',1,'ucp_def.h']]], + ['ucp_5fam_5frecv_5fparam_29',['ucp_am_recv_param',['../group___u_c_p___w_o_r_k_e_r.html#structucp__am__recv__param',1,'']]], + ['ucp_5fam_5frecv_5fparam_5ft_30',['ucp_am_recv_param_t',['../group___u_c_p___w_o_r_k_e_r.html#ga435d870d0afb413f0bc780809f1db2ef',1,'ucp_def.h']]], + ['ucp_5fam_5fsend_5fflag_5fcopy_5fheader_31',['UCP_AM_SEND_FLAG_COPY_HEADER',['../group___u_c_p___w_o_r_k_e_r.html#gga583228e89cd5c882025ed04c76106aa6a0654f3da5be1bc517d45307b6a21cbdf',1,'ucp.h']]], + ['ucp_5fam_5fsend_5fflag_5feager_32',['UCP_AM_SEND_FLAG_EAGER',['../group___u_c_p___w_o_r_k_e_r.html#gga583228e89cd5c882025ed04c76106aa6af29f97eb0938984f627be7989c35079c',1,'ucp.h']]], + ['ucp_5fam_5fsend_5fflag_5freply_33',['UCP_AM_SEND_FLAG_REPLY',['../group___u_c_p___w_o_r_k_e_r.html#gga583228e89cd5c882025ed04c76106aa6ace99c327865c6f2294f800099d467b16',1,'ucp.h']]], + ['ucp_5fam_5fsend_5fflag_5frndv_34',['UCP_AM_SEND_FLAG_RNDV',['../group___u_c_p___w_o_r_k_e_r.html#gga583228e89cd5c882025ed04c76106aa6a3174d72844f5488bee9e0b35c75f68e5',1,'ucp.h']]], + ['ucp_5fam_5fsend_5fnb_35',['ucp_am_send_nb',['../group___u_c_p___c_o_m_m.html#ga94ec21811930b6b6fb8eab500b8c730d',1,'ucp_compat.h']]], + ['ucp_5fam_5fsend_5fnbx_36',['ucp_am_send_nbx',['../group___u_c_p___c_o_m_m.html#ga4b8ab214f35828ee4608d73442e8c372',1,'ucp.h']]], + ['ucp_5fam_5fsend_5freply_37',['UCP_AM_SEND_REPLY',['../group___u_c_p___w_o_r_k_e_r.html#gga583228e89cd5c882025ed04c76106aa6a1794c5ef851a147688d783532f1ec7bb',1,'ucp.h']]], + ['ucp_5fatomic_5fadd32_38',['ucp_atomic_add32',['../group___u_c_p___c_o_m_m.html#gaa042d7e76314e1d7ea9717d4adacde7b',1,'ucp_compat.h']]], + ['ucp_5fatomic_5fadd64_39',['ucp_atomic_add64',['../group___u_c_p___c_o_m_m.html#gaa80cd3f104b920c0c2f6bf7cff50fc15',1,'ucp_compat.h']]], + ['ucp_5fatomic_5fcswap32_40',['ucp_atomic_cswap32',['../group___u_c_p___c_o_m_m.html#ga6078dddaa93c8dfdab3c18014064f0c0',1,'ucp_compat.h']]], + ['ucp_5fatomic_5fcswap64_41',['ucp_atomic_cswap64',['../group___u_c_p___c_o_m_m.html#gafa365c16d4c2b4fd2aba6e94fec2c92b',1,'ucp_compat.h']]], + ['ucp_5fatomic_5ffadd32_42',['ucp_atomic_fadd32',['../group___u_c_p___c_o_m_m.html#ga0c777d7d1c59e01151ef5e3fcd7e5b94',1,'ucp_compat.h']]], + ['ucp_5fatomic_5ffadd64_43',['ucp_atomic_fadd64',['../group___u_c_p___c_o_m_m.html#ga7435bc5d5e2c4fb6b491d457ab65596b',1,'ucp_compat.h']]], + ['ucp_5fatomic_5ffetch_5fnb_44',['ucp_atomic_fetch_nb',['../group___u_c_p___c_o_m_m.html#ga43a1a4a517797eb8c5c96ac8841437de',1,'ucp_compat.h']]], + ['ucp_5fatomic_5ffetch_5fop_5fcswap_45',['UCP_ATOMIC_FETCH_OP_CSWAP',['../group___u_c_p___c_o_m_m.html#ggabd91e0300a53e38d28dbb53dfbb66c55adc79d547543b1803dace41a6bdea043c',1,'ucp_compat.h']]], + ['ucp_5fatomic_5ffetch_5fop_5ffadd_46',['UCP_ATOMIC_FETCH_OP_FADD',['../group___u_c_p___c_o_m_m.html#ggabd91e0300a53e38d28dbb53dfbb66c55ae7540b3c7046a454f750f816bdfa1037',1,'ucp_compat.h']]], + ['ucp_5fatomic_5ffetch_5fop_5ffand_47',['UCP_ATOMIC_FETCH_OP_FAND',['../group___u_c_p___c_o_m_m.html#ggabd91e0300a53e38d28dbb53dfbb66c55a072b82e2e35a90b7ed3e113423e6d5e3',1,'ucp_compat.h']]], + ['ucp_5fatomic_5ffetch_5fop_5ffor_48',['UCP_ATOMIC_FETCH_OP_FOR',['../group___u_c_p___c_o_m_m.html#ggabd91e0300a53e38d28dbb53dfbb66c55a2b0b3779905ea67eea996ae8e296ed59',1,'ucp_compat.h']]], + ['ucp_5fatomic_5ffetch_5fop_5ffxor_49',['UCP_ATOMIC_FETCH_OP_FXOR',['../group___u_c_p___c_o_m_m.html#ggabd91e0300a53e38d28dbb53dfbb66c55a86930c2cddc0a884cbf88ced6c330049',1,'ucp_compat.h']]], + ['ucp_5fatomic_5ffetch_5fop_5flast_50',['UCP_ATOMIC_FETCH_OP_LAST',['../group___u_c_p___c_o_m_m.html#ggabd91e0300a53e38d28dbb53dfbb66c55a2532883ac97f4ee8178b52318f978a05',1,'ucp_compat.h']]], + ['ucp_5fatomic_5ffetch_5fop_5fswap_51',['UCP_ATOMIC_FETCH_OP_SWAP',['../group___u_c_p___c_o_m_m.html#ggabd91e0300a53e38d28dbb53dfbb66c55ad5a1d6d5e5cb563b477258a4656c9069',1,'ucp_compat.h']]], + ['ucp_5fatomic_5ffetch_5fop_5ft_52',['ucp_atomic_fetch_op_t',['../group___u_c_p___c_o_m_m.html#gabd91e0300a53e38d28dbb53dfbb66c55',1,'ucp_compat.h']]], + ['ucp_5fatomic_5fop_5fadd_53',['UCP_ATOMIC_OP_ADD',['../group___u_c_p___c_o_m_m.html#gga5c2ee7516e48146c044e3d9e2a2ed380a9386a4cc004f74e89bb069096ff1e43b',1,'ucp.h']]], + ['ucp_5fatomic_5fop_5fand_54',['UCP_ATOMIC_OP_AND',['../group___u_c_p___c_o_m_m.html#gga5c2ee7516e48146c044e3d9e2a2ed380adf96b275090535fca4d7c1bedaef7da3',1,'ucp.h']]], + ['ucp_5fatomic_5fop_5fcswap_55',['UCP_ATOMIC_OP_CSWAP',['../group___u_c_p___c_o_m_m.html#gga5c2ee7516e48146c044e3d9e2a2ed380ae5da2927554be21b16aa65f9e46f762a',1,'ucp.h']]], + ['ucp_5fatomic_5fop_5flast_56',['UCP_ATOMIC_OP_LAST',['../group___u_c_p___c_o_m_m.html#gga5c2ee7516e48146c044e3d9e2a2ed380a0983496b62f2d28cf043966793c6bb0b',1,'ucp.h']]], + ['ucp_5fatomic_5fop_5fnbx_57',['ucp_atomic_op_nbx',['../group___u_c_p___c_o_m_m.html#ga087e2cad02e84cf1230684362562aa46',1,'ucp.h']]], + ['ucp_5fatomic_5fop_5for_58',['UCP_ATOMIC_OP_OR',['../group___u_c_p___c_o_m_m.html#gga5c2ee7516e48146c044e3d9e2a2ed380abf085a4df55bbd6109e3fb849e0d123e',1,'ucp.h']]], + ['ucp_5fatomic_5fop_5fswap_59',['UCP_ATOMIC_OP_SWAP',['../group___u_c_p___c_o_m_m.html#gga5c2ee7516e48146c044e3d9e2a2ed380af72a4149b8c55e187bdfdcbd8d201eeb',1,'ucp.h']]], + ['ucp_5fatomic_5fop_5ft_60',['ucp_atomic_op_t',['../group___u_c_p___c_o_m_m.html#ga5c2ee7516e48146c044e3d9e2a2ed380',1,'ucp.h']]], + ['ucp_5fatomic_5fop_5fxor_61',['UCP_ATOMIC_OP_XOR',['../group___u_c_p___c_o_m_m.html#gga5c2ee7516e48146c044e3d9e2a2ed380ac723509b3a97de7b43d1736bf9d79243',1,'ucp.h']]], + ['ucp_5fatomic_5fpost_62',['ucp_atomic_post',['../group___u_c_p___c_o_m_m.html#ga839312fb4de5e786daacb4fa071d61df',1,'ucp_compat.h']]], + ['ucp_5fatomic_5fpost_5fop_5fadd_63',['UCP_ATOMIC_POST_OP_ADD',['../group___u_c_p___c_o_m_m.html#ggac5d94ea07dc4feae2708e67378ba2ad0ac9bbe0e18afb3ffc3f308feb0a2343c0',1,'ucp_compat.h']]], + ['ucp_5fatomic_5fpost_5fop_5fand_64',['UCP_ATOMIC_POST_OP_AND',['../group___u_c_p___c_o_m_m.html#ggac5d94ea07dc4feae2708e67378ba2ad0a429b49ede714d04c4675a6e3966964e4',1,'ucp_compat.h']]], + ['ucp_5fatomic_5fpost_5fop_5flast_65',['UCP_ATOMIC_POST_OP_LAST',['../group___u_c_p___c_o_m_m.html#ggac5d94ea07dc4feae2708e67378ba2ad0a97ee6dd65f14dc12791831435329c38d',1,'ucp_compat.h']]], + ['ucp_5fatomic_5fpost_5fop_5for_66',['UCP_ATOMIC_POST_OP_OR',['../group___u_c_p___c_o_m_m.html#ggac5d94ea07dc4feae2708e67378ba2ad0afddd2f7287b622caf220503a6ae38460',1,'ucp_compat.h']]], + ['ucp_5fatomic_5fpost_5fop_5ft_67',['ucp_atomic_post_op_t',['../group___u_c_p___c_o_m_m.html#gac5d94ea07dc4feae2708e67378ba2ad0',1,'ucp_compat.h']]], + ['ucp_5fatomic_5fpost_5fop_5fxor_68',['UCP_ATOMIC_POST_OP_XOR',['../group___u_c_p___c_o_m_m.html#ggac5d94ea07dc4feae2708e67378ba2ad0ac498a55f8365e9a0821187367bc2cf89',1,'ucp_compat.h']]], + ['ucp_5fatomic_5fswap32_69',['ucp_atomic_swap32',['../group___u_c_p___c_o_m_m.html#ga43118f9d5e6d8fdfa518887218468bb3',1,'ucp_compat.h']]], + ['ucp_5fatomic_5fswap64_70',['ucp_atomic_swap64',['../group___u_c_p___c_o_m_m.html#gaa2913e345505195a183ccc2583fb4ebc',1,'ucp_compat.h']]], + ['ucp_5fattr_5ffield_5fmemory_5ftypes_71',['UCP_ATTR_FIELD_MEMORY_TYPES',['../group___u_c_p___c_o_n_t_e_x_t.html#gga446a95e55ba52251d2ca4bf61ff916bfa13fe8e11d8c372a446e00cf559c78b88',1,'ucp.h']]], + ['ucp_5fattr_5ffield_5fname_72',['UCP_ATTR_FIELD_NAME',['../group___u_c_p___c_o_n_t_e_x_t.html#gga446a95e55ba52251d2ca4bf61ff916bfa35fd67165561f70728f6ec1c8e53ff80',1,'ucp.h']]], + ['ucp_5fattr_5ffield_5frequest_5fsize_73',['UCP_ATTR_FIELD_REQUEST_SIZE',['../group___u_c_p___c_o_n_t_e_x_t.html#gga446a95e55ba52251d2ca4bf61ff916bfa84237b8beaee9aff1013ae6b87721ce2',1,'ucp.h']]], + ['ucp_5fattr_5ffield_5fthread_5fmode_74',['UCP_ATTR_FIELD_THREAD_MODE',['../group___u_c_p___c_o_n_t_e_x_t.html#gga446a95e55ba52251d2ca4bf61ff916bfab5f79c9d9c309562d4e7edb60e5855d6',1,'ucp.h']]], + ['ucp_5fcb_5fparam_5fflag_5fdata_75',['UCP_CB_PARAM_FLAG_DATA',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gga4a9af9e36e3256933869d6699be25874a55d40d13674830156e15f6b6289b0d12',1,'ucp.h']]], + ['ucp_5fcb_5fparam_5fflags_76',['ucp_cb_param_flags',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga4a9af9e36e3256933869d6699be25874',1,'ucp.h']]], + ['ucp_5fcleanup_77',['ucp_cleanup',['../group___u_c_p___c_o_n_t_e_x_t.html#gaaa7a90069ad6e0f3e227402db265299e',1,'ucp.h']]], + ['ucp_5fconfig_5fmodify_78',['ucp_config_modify',['../group___u_c_p___c_o_n_f_i_g.html#ga94828d175f4abd87d48b54f32dc74703',1,'ucp.h']]], + ['ucp_5fconfig_5fprint_79',['ucp_config_print',['../group___u_c_p___c_o_n_f_i_g.html#ga52f4d762c9f3a61c98fb7ba95a00809e',1,'ucp.h']]], + ['ucp_5fconfig_5fread_80',['ucp_config_read',['../group___u_c_p___c_o_n_f_i_g.html#gab2a5bd39a60f5326771c7a46f5f93319',1,'ucp.h']]], + ['ucp_5fconfig_5frelease_81',['ucp_config_release',['../group___u_c_p___c_o_n_f_i_g.html#ga12d1b29c55e927a22de92431efa0d82a',1,'ucp.h']]], + ['ucp_5fconfig_5ft_82',['ucp_config_t',['../group___u_c_p___c_o_n_f_i_g.html#gab4fd46edba365347ef3a5b966c324388',1,'ucp_def.h']]], + ['ucp_5fconn_5frequest_5fattr_83',['ucp_conn_request_attr',['../group___u_c_p___w_o_r_k_e_r.html#structucp__conn__request__attr',1,'']]], + ['ucp_5fconn_5frequest_5fattr_5ffield_84',['ucp_conn_request_attr_field',['../group___u_c_p___w_o_r_k_e_r.html#ga31119b42b06b185822699697bd7a1018',1,'ucp.h']]], + ['ucp_5fconn_5frequest_5fattr_5ffield_5fclient_5faddr_85',['UCP_CONN_REQUEST_ATTR_FIELD_CLIENT_ADDR',['../group___u_c_p___w_o_r_k_e_r.html#gga31119b42b06b185822699697bd7a1018a98d3bca4557571d8ccb56ae2d29b2ad6',1,'ucp.h']]], + ['ucp_5fconn_5frequest_5fattr_5ffield_5fclient_5fid_86',['UCP_CONN_REQUEST_ATTR_FIELD_CLIENT_ID',['../group___u_c_p___w_o_r_k_e_r.html#gga31119b42b06b185822699697bd7a1018a2dbcf2ed5576bf2721ca550d34361f1d',1,'ucp.h']]], + ['ucp_5fconn_5frequest_5fattr_5ft_87',['ucp_conn_request_attr_t',['../group___u_c_p___w_o_r_k_e_r.html#ga001f8208d0682245878457d65f629091',1,'ucp.h']]], + ['ucp_5fconn_5frequest_5fh_88',['ucp_conn_request_h',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga200570bfa7d3a8b50b2a074aaa22d2ed',1,'ucp_def.h']]], + ['ucp_5fconn_5frequest_5fquery_89',['ucp_conn_request_query',['../group___u_c_p___w_o_r_k_e_r.html#ga440c99f2462ba8201280687a76fd8569',1,'ucp.h']]], + ['ucp_5fcontext_5fattr_90',['ucp_context_attr',['../group___u_c_p___c_o_n_t_e_x_t.html#structucp__context__attr',1,'']]], + ['ucp_5fcontext_5fattr_5ffield_91',['ucp_context_attr_field',['../group___u_c_p___c_o_n_t_e_x_t.html#ga446a95e55ba52251d2ca4bf61ff916bf',1,'ucp.h']]], + ['ucp_5fcontext_5fattr_5ft_92',['ucp_context_attr_t',['../group___u_c_p___c_o_n_t_e_x_t.html#ga64e2a4abc0ad7d1648ce8266de1731c2',1,'ucp.h']]], + ['ucp_5fcontext_5fh_93',['ucp_context_h',['../group___u_c_p___c_o_n_t_e_x_t.html#ga0e40ddc46f0bbe868a13f6ab1b674f76',1,'ucp_def.h']]], + ['ucp_5fcontext_5fprint_5finfo_94',['ucp_context_print_info',['../group___u_c_p___c_o_n_t_e_x_t.html#ga91684cf77b8dc8cbb62af0c3741b36ea',1,'ucp.h']]], + ['ucp_5fcontext_5fquery_95',['ucp_context_query',['../group___u_c_p___c_o_n_t_e_x_t.html#ga3485fb61663f4cc6f32e801654aedcff',1,'ucp.h']]], + ['ucp_5fdatatype_5fattr_96',['ucp_datatype_attr',['../group___u_c_p___d_a_t_a_t_y_p_e.html#structucp__datatype__attr',1,'']]], + ['ucp_5fdatatype_5fattr_5ffield_97',['ucp_datatype_attr_field',['../group___u_c_p___d_a_t_a_t_y_p_e.html#gaca9402381313d69cee7d0c90c634a18e',1,'ucp.h']]], + ['ucp_5fdatatype_5fattr_5ffield_5fbuffer_98',['UCP_DATATYPE_ATTR_FIELD_BUFFER',['../group___u_c_p___d_a_t_a_t_y_p_e.html#ggaca9402381313d69cee7d0c90c634a18ea19731103ccab2b0c1f0a93a38177b7b2',1,'ucp.h']]], + ['ucp_5fdatatype_5fattr_5ffield_5fcount_99',['UCP_DATATYPE_ATTR_FIELD_COUNT',['../group___u_c_p___d_a_t_a_t_y_p_e.html#ggaca9402381313d69cee7d0c90c634a18ea510ae956055e56169315fef18082cf3c',1,'ucp.h']]], + ['ucp_5fdatatype_5fattr_5ffield_5fpacked_5fsize_100',['UCP_DATATYPE_ATTR_FIELD_PACKED_SIZE',['../group___u_c_p___d_a_t_a_t_y_p_e.html#ggaca9402381313d69cee7d0c90c634a18ea488b99fc01c366b5bb2b14360908a9f5',1,'ucp.h']]], + ['ucp_5fdatatype_5fattr_5ft_101',['ucp_datatype_attr_t',['../group___u_c_p___d_a_t_a_t_y_p_e.html#ga91ea14ac50ea949c0fb7a97ddbe32be7',1,'ucp.h']]], + ['ucp_5fdatatype_5fclass_5fmask_102',['UCP_DATATYPE_CLASS_MASK',['../group___u_c_p___d_a_t_a_t_y_p_e.html#gga50b3b4e641a197264e963d91be480b6ca63ddce22a2292935f40122def246ffa8',1,'ucp.h']]], + ['ucp_5fdatatype_5fcontig_103',['UCP_DATATYPE_CONTIG',['../group___u_c_p___d_a_t_a_t_y_p_e.html#gga50b3b4e641a197264e963d91be480b6ca42f91fe8586a858f8e6cf9b2b0128048',1,'ucp.h']]], + ['ucp_5fdatatype_5fgeneric_104',['UCP_DATATYPE_GENERIC',['../group___u_c_p___d_a_t_a_t_y_p_e.html#gga50b3b4e641a197264e963d91be480b6caeb9bca341a1f16a56bff64f9889a4567',1,'ucp.h']]], + ['ucp_5fdatatype_5fiov_105',['UCP_DATATYPE_IOV',['../group___u_c_p___d_a_t_a_t_y_p_e.html#gga50b3b4e641a197264e963d91be480b6ca3b5515fddd08f075a8b74eca562bcb50',1,'ucp.h']]], + ['ucp_5fdatatype_5fshift_106',['UCP_DATATYPE_SHIFT',['../group___u_c_p___d_a_t_a_t_y_p_e.html#gga50b3b4e641a197264e963d91be480b6ca5c657c620df6580669917914217b2cda',1,'ucp.h']]], + ['ucp_5fdatatype_5fstrided_107',['UCP_DATATYPE_STRIDED',['../group___u_c_p___d_a_t_a_t_y_p_e.html#gga50b3b4e641a197264e963d91be480b6caa6bc9a1df8eb865e71f2b90d3e4d97ad',1,'ucp.h']]], + ['ucp_5fdatatype_5ft_108',['ucp_datatype_t',['../group___u_c_p___c_o_m_m.html#gae461587956dd56a6bc7d67b027845891',1,'ucp_def.h']]], + ['ucp_5fdisconnect_5fnb_109',['ucp_disconnect_nb',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga22cf67f74ae06242cc26e6ca6ecd100b',1,'ucp_compat.h']]], + ['ucp_5fdt_5fcreate_5fgeneric_110',['ucp_dt_create_generic',['../group___u_c_p___d_a_t_a_t_y_p_e.html#gad786aa1a5250b22d4c35d82801aef254',1,'ucp.h']]], + ['ucp_5fdt_5fdestroy_111',['ucp_dt_destroy',['../group___u_c_p___d_a_t_a_t_y_p_e.html#ga00337159ebd75640d55be501b7fcc5e7',1,'ucp.h']]], + ['ucp_5fdt_5fiov_112',['ucp_dt_iov',['../group___u_c_p___d_a_t_a_t_y_p_e.html#structucp__dt__iov',1,'']]], + ['ucp_5fdt_5fiov_5ft_113',['ucp_dt_iov_t',['../group___u_c_p___d_a_t_a_t_y_p_e.html#gab2de4538a9794186e4aa62c055454473',1,'ucp.h']]], + ['ucp_5fdt_5fmake_5fcontig_114',['ucp_dt_make_contig',['../group___u_c_p___d_a_t_a_t_y_p_e.html#ga9a56fc4636094bab740d77f7df70c2b5',1,'ucp.h']]], + ['ucp_5fdt_5fmake_5fiov_115',['ucp_dt_make_iov',['../group___u_c_p___d_a_t_a_t_y_p_e.html#ga8ff6e9f933b306e777d24491ec251d7a',1,'ucp.h']]], + ['ucp_5fdt_5fquery_116',['ucp_dt_query',['../group___u_c_p___d_a_t_a_t_y_p_e.html#ga23b6c6fbfbee7669ec2abb3ee572ac0e',1,'ucp.h']]], + ['ucp_5fdt_5ftype_117',['ucp_dt_type',['../group___u_c_p___d_a_t_a_t_y_p_e.html#ga50b3b4e641a197264e963d91be480b6c',1,'ucp.h']]], + ['ucp_5fentity_5fname_5fmax_118',['UCP_ENTITY_NAME_MAX',['../group___u_c_p___c_o_n_t_e_x_t.html#gacbb936da337ac69d01a51e74d2476981',1,'ucp_def.h']]], + ['ucp_5fep_5fattr_119',['ucp_ep_attr',['../group___u_c_p___e_n_d_p_o_i_n_t.html#structucp__ep__attr',1,'']]], + ['ucp_5fep_5fattr_5ffield_120',['ucp_ep_attr_field',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gaa24832a718990ceb558ab5a1d4abfc41',1,'ucp.h']]], + ['ucp_5fep_5fattr_5ffield_5flocal_5fsockaddr_121',['UCP_EP_ATTR_FIELD_LOCAL_SOCKADDR',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggaa24832a718990ceb558ab5a1d4abfc41a1f04baee4cd992c08b62716558eb6013',1,'ucp.h']]], + ['ucp_5fep_5fattr_5ffield_5fname_122',['UCP_EP_ATTR_FIELD_NAME',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggaa24832a718990ceb558ab5a1d4abfc41ac78de8cbed80cdb833a6ae5ddcd270fd',1,'ucp.h']]], + ['ucp_5fep_5fattr_5ffield_5fremote_5fsockaddr_123',['UCP_EP_ATTR_FIELD_REMOTE_SOCKADDR',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggaa24832a718990ceb558ab5a1d4abfc41a2b85f61bc437c3b277e360afaa058bf3',1,'ucp.h']]], + ['ucp_5fep_5fattr_5ffield_5ftransports_124',['UCP_EP_ATTR_FIELD_TRANSPORTS',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggaa24832a718990ceb558ab5a1d4abfc41a0eeddc2e29662e9ab046ac862757d11e',1,'ucp.h']]], + ['ucp_5fep_5fattr_5ft_125',['ucp_ep_attr_t',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gaf870daeabc3b91d521d9063eb1b1027d',1,'ucp.h']]], + ['ucp_5fep_5fclose_5fflag_5fforce_126',['UCP_EP_CLOSE_FLAG_FORCE',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggacef728a5ee7a11f50794544aa259fe71a5b827bc555062bcba501faa3f40e789b',1,'ucp.h']]], + ['ucp_5fep_5fclose_5fflags_5ft_127',['ucp_ep_close_flags_t',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gacef728a5ee7a11f50794544aa259fe71',1,'ucp.h']]], + ['ucp_5fep_5fclose_5fmode_128',['ucp_ep_close_mode',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga3be4aa93d76e41c80c780965f2f8ae57',1,'ucp_compat.h']]], + ['ucp_5fep_5fclose_5fmode_5fflush_129',['UCP_EP_CLOSE_MODE_FLUSH',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gga3be4aa93d76e41c80c780965f2f8ae57ab0b1f6dcac5f54dff76c87fcf0c55c8b',1,'ucp_compat.h']]], + ['ucp_5fep_5fclose_5fmode_5fforce_130',['UCP_EP_CLOSE_MODE_FORCE',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gga3be4aa93d76e41c80c780965f2f8ae57ad78eab8ac29d813247b3cca01c3194db',1,'ucp_compat.h']]], + ['ucp_5fep_5fclose_5fnb_131',['ucp_ep_close_nb',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gaa7293ad4dc72858b2594686d1c553015',1,'ucp_compat.h']]], + ['ucp_5fep_5fclose_5fnbx_132',['ucp_ep_close_nbx',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga6756b434213a424abb0d542fda1d82a1',1,'ucp.h']]], + ['ucp_5fep_5fcreate_133',['ucp_ep_create',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga6cc5ffb2ba1b0ccd510848de0a779f7b',1,'ucp.h']]], + ['ucp_5fep_5fdestroy_134',['ucp_ep_destroy',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gac63b3fe87c001dd965ca42943ea04bb1',1,'ucp_compat.h']]], + ['ucp_5fep_5fevaluate_5fperf_135',['ucp_ep_evaluate_perf',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga654a8402e9a3d657f5226ac4e8866994',1,'ucp.h']]], + ['ucp_5fep_5fevaluate_5fperf_5fattr_5ft_136',['ucp_ep_evaluate_perf_attr_t',['../group___u_c_p___e_n_d_p_o_i_n_t.html#structucp__ep__evaluate__perf__attr__t',1,'']]], + ['ucp_5fep_5fevaluate_5fperf_5fparam_5ft_137',['ucp_ep_evaluate_perf_param_t',['../group___u_c_p___e_n_d_p_o_i_n_t.html#structucp__ep__evaluate__perf__param__t',1,'']]], + ['ucp_5fep_5fflush_138',['ucp_ep_flush',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga046d87a26389c7adecd177111a65cd31',1,'ucp_compat.h']]], + ['ucp_5fep_5fflush_5fnb_139',['ucp_ep_flush_nb',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga599c9b9272bfdd662afaa247d8e4dfd6',1,'ucp_compat.h']]], + ['ucp_5fep_5fflush_5fnbx_140',['ucp_ep_flush_nbx',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga28d61bf53320bd0f5d741147447251a4',1,'ucp.h']]], + ['ucp_5fep_5fh_141',['ucp_ep_h',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga9bea4e4174ea25f44285d8e7a9fb7adf',1,'ucp_def.h']]], + ['ucp_5fep_5fmodify_5fnb_142',['ucp_ep_modify_nb',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga034aff7bd27e3b932d4bb7b964db759e',1,'ucp_compat.h']]], + ['ucp_5fep_5fparam_5ffield_5fconn_5frequest_143',['UCP_EP_PARAM_FIELD_CONN_REQUEST',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggabb6ce0b3189f415dadc7f99727751d60a88c2cf7c57a1cddc6b2cf9bcdc99e64e',1,'ucp.h']]], + ['ucp_5fep_5fparam_5ffield_5ferr_5fhandler_144',['UCP_EP_PARAM_FIELD_ERR_HANDLER',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggabb6ce0b3189f415dadc7f99727751d60adc6619f5e4bf3f68190f918ee064036d',1,'ucp.h']]], + ['ucp_5fep_5fparam_5ffield_5ferr_5fhandling_5fmode_145',['UCP_EP_PARAM_FIELD_ERR_HANDLING_MODE',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggabb6ce0b3189f415dadc7f99727751d60a1b0e70c12efabe6a2cab3c9bc66db340',1,'ucp.h']]], + ['ucp_5fep_5fparam_5ffield_5fflags_146',['UCP_EP_PARAM_FIELD_FLAGS',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggabb6ce0b3189f415dadc7f99727751d60a1b53a3d4eaee470bcb3e23c60f1f7794',1,'ucp.h']]], + ['ucp_5fep_5fparam_5ffield_5flocal_5fsock_5faddr_147',['UCP_EP_PARAM_FIELD_LOCAL_SOCK_ADDR',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggabb6ce0b3189f415dadc7f99727751d60ade6d1e89c4a39f44f8c088d3e79c59f5',1,'ucp.h']]], + ['ucp_5fep_5fparam_5ffield_5fname_148',['UCP_EP_PARAM_FIELD_NAME',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggabb6ce0b3189f415dadc7f99727751d60aad52a9473f7b47dd7dddc43062e16436',1,'ucp.h']]], + ['ucp_5fep_5fparam_5ffield_5fremote_5faddress_149',['UCP_EP_PARAM_FIELD_REMOTE_ADDRESS',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggabb6ce0b3189f415dadc7f99727751d60ae1c4a9617dea28b56c486ac357299f4c',1,'ucp.h']]], + ['ucp_5fep_5fparam_5ffield_5fsock_5faddr_150',['UCP_EP_PARAM_FIELD_SOCK_ADDR',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggabb6ce0b3189f415dadc7f99727751d60a8149dfb8648b2b248825020c63449a80',1,'ucp.h']]], + ['ucp_5fep_5fparam_5ffield_5fuser_5fdata_151',['UCP_EP_PARAM_FIELD_USER_DATA',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggabb6ce0b3189f415dadc7f99727751d60afc6cbbfabd368438e5d6afd36f389d1b',1,'ucp.h']]], + ['ucp_5fep_5fparams_152',['ucp_ep_params',['../group___u_c_p___e_n_d_p_o_i_n_t.html#structucp__ep__params',1,'']]], + ['ucp_5fep_5fparams_5ffield_153',['ucp_ep_params_field',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gabb6ce0b3189f415dadc7f99727751d60',1,'ucp.h']]], + ['ucp_5fep_5fparams_5fflags_5fclient_5fserver_154',['UCP_EP_PARAMS_FLAGS_CLIENT_SERVER',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gga4a1f422dc1e81495b4aee1da8939459fad42871a591a0a34bccf5c8203a0b32bb',1,'ucp.h']]], + ['ucp_5fep_5fparams_5fflags_5ffield_155',['ucp_ep_params_flags_field',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga4a1f422dc1e81495b4aee1da8939459f',1,'ucp.h']]], + ['ucp_5fep_5fparams_5fflags_5fno_5floopback_156',['UCP_EP_PARAMS_FLAGS_NO_LOOPBACK',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gga4a1f422dc1e81495b4aee1da8939459fa519d4e4a7237ae543f72ddeaef6864ec',1,'ucp.h']]], + ['ucp_5fep_5fparams_5fflags_5fsend_5fclient_5fid_157',['UCP_EP_PARAMS_FLAGS_SEND_CLIENT_ID',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gga4a1f422dc1e81495b4aee1da8939459faddc3dea615010520ff2fa9d214eabcd3',1,'ucp.h']]], + ['ucp_5fep_5fparams_5ft_158',['ucp_ep_params_t',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gae071db9736cd54afebe6f619401c6617',1,'ucp_def.h']]], + ['ucp_5fep_5fperf_5fattr_5ffield_159',['ucp_ep_perf_attr_field',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga806d286165cdbe6d6c63d52b06b16406',1,'ucp.h']]], + ['ucp_5fep_5fperf_5fattr_5ffield_5festimated_5ftime_160',['UCP_EP_PERF_ATTR_FIELD_ESTIMATED_TIME',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gga806d286165cdbe6d6c63d52b06b16406a6bfbf6be343cb78ca8bb7ad9c602ad1a',1,'ucp.h']]], + ['ucp_5fep_5fperf_5fattr_5ffield_5ft_161',['ucp_ep_perf_attr_field_t',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga0e9799a75ca8d6843aea1df455f934cb',1,'ucp.h']]], + ['ucp_5fep_5fperf_5fparam_5ffield_162',['ucp_ep_perf_param_field',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga4abce355cbaf6b31b1aaa88b68154f13',1,'ucp.h']]], + ['ucp_5fep_5fperf_5fparam_5ffield_5fmessage_5fsize_163',['UCP_EP_PERF_PARAM_FIELD_MESSAGE_SIZE',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gga4abce355cbaf6b31b1aaa88b68154f13a3d545405c1d0a3fec8050d1f985f3360',1,'ucp.h']]], + ['ucp_5fep_5fperf_5fparam_5ffield_5ft_164',['ucp_ep_perf_param_field_t',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga9b89513109c87c9118e250dd47560fb5',1,'ucp.h']]], + ['ucp_5fep_5fprint_5finfo_165',['ucp_ep_print_info',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gacc9e967b69f48d6223e921831181f3ee',1,'ucp.h']]], + ['ucp_5fep_5fquery_166',['ucp_ep_query',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga5074a508e2ae53e00d2bd7e728336f30',1,'ucp.h']]], + ['ucp_5fep_5frkey_5funpack_167',['ucp_ep_rkey_unpack',['../group___u_c_p___m_e_m.html#ga92353d1cb038a4e281f0a1973937079d',1,'ucp.h']]], + ['ucp_5ferr_5fhandler_168',['ucp_err_handler',['../group___u_c_p___c_o_m_m.html#structucp__err__handler',1,'']]], + ['ucp_5ferr_5fhandler_5fcb_5ft_169',['ucp_err_handler_cb_t',['../group___u_c_p___c_o_m_m.html#gaf2174ce2b86eb56f6bd4bd62865e87f1',1,'ucp_def.h']]], + ['ucp_5ferr_5fhandler_5ft_170',['ucp_err_handler_t',['../group___u_c_p___c_o_m_m.html#ga66f1988c0a6aa526d57e999b0df4acc4',1,'ucp_def.h']]], + ['ucp_5ferr_5fhandling_5fmode_5fnone_171',['UCP_ERR_HANDLING_MODE_NONE',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gga7c69a28724d5ae3e49490e23e64df167a18c7855c2e1dea33e0be32d9ef841ffe',1,'ucp_def.h']]], + ['ucp_5ferr_5fhandling_5fmode_5fpeer_172',['UCP_ERR_HANDLING_MODE_PEER',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gga7c69a28724d5ae3e49490e23e64df167aa31630259732e700b6ce0fe612cf0a6f',1,'ucp_def.h']]], + ['ucp_5ferr_5fhandling_5fmode_5ft_173',['ucp_err_handling_mode_t',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga7c69a28724d5ae3e49490e23e64df167',1,'ucp_def.h']]], + ['ucp_5ffeature_174',['ucp_feature',['../group___u_c_p___c_o_n_t_e_x_t.html#gaca5990bc015e7e9ac3e3be4e3611c5be',1,'ucp.h']]], + ['ucp_5ffeature_5fam_175',['UCP_FEATURE_AM',['../group___u_c_p___c_o_n_t_e_x_t.html#ggaca5990bc015e7e9ac3e3be4e3611c5bea685931b9f438fa9a2faaf9eccf47b097',1,'ucp.h']]], + ['ucp_5ffeature_5famo32_176',['UCP_FEATURE_AMO32',['../group___u_c_p___c_o_n_t_e_x_t.html#ggaca5990bc015e7e9ac3e3be4e3611c5beab127e1eabe5779ad82bc1ad4c5b47007',1,'ucp.h']]], + ['ucp_5ffeature_5famo64_177',['UCP_FEATURE_AMO64',['../group___u_c_p___c_o_n_t_e_x_t.html#ggaca5990bc015e7e9ac3e3be4e3611c5beada4b36191b39ef8615f657d370baead1',1,'ucp.h']]], + ['ucp_5ffeature_5fexported_5fmemh_178',['UCP_FEATURE_EXPORTED_MEMH',['../group___u_c_p___c_o_n_t_e_x_t.html#ggaca5990bc015e7e9ac3e3be4e3611c5beafb42f40309d4d14d32b8b7992b48ef68',1,'ucp.h']]], + ['ucp_5ffeature_5frma_179',['UCP_FEATURE_RMA',['../group___u_c_p___c_o_n_t_e_x_t.html#ggaca5990bc015e7e9ac3e3be4e3611c5beaf374a837508d798fb36abd22a7a0a033',1,'ucp.h']]], + ['ucp_5ffeature_5fstream_180',['UCP_FEATURE_STREAM',['../group___u_c_p___c_o_n_t_e_x_t.html#ggaca5990bc015e7e9ac3e3be4e3611c5bea0c3896ead0887f9c650b221831e16b5c',1,'ucp.h']]], + ['ucp_5ffeature_5ftag_181',['UCP_FEATURE_TAG',['../group___u_c_p___c_o_n_t_e_x_t.html#ggaca5990bc015e7e9ac3e3be4e3611c5bea244187ad85296b3784d302db00f66b9e',1,'ucp.h']]], + ['ucp_5ffeature_5fwakeup_182',['UCP_FEATURE_WAKEUP',['../group___u_c_p___c_o_n_t_e_x_t.html#ggaca5990bc015e7e9ac3e3be4e3611c5beabc3fea5aff6b7453e24235bceb102b5a',1,'ucp.h']]], + ['ucp_5fgeneric_5fdt_5fops_183',['ucp_generic_dt_ops',['../structucp__generic__dt__ops.html',1,'']]], + ['ucp_5fgeneric_5fdt_5fops_5ft_184',['ucp_generic_dt_ops_t',['../group___u_c_p___d_a_t_a_t_y_p_e.html#gabece4d5eeeb7f7f22b03dd2fc00e1fdd',1,'ucp.h']]], + ['ucp_5fget_185',['ucp_get',['../group___u_c_p___c_o_m_m.html#gaf4a465cff6c1691106430564899f6f3e',1,'ucp_compat.h']]], + ['ucp_5fget_5fnb_186',['ucp_get_nb',['../group___u_c_p___c_o_m_m.html#ga7cb68811f53a69d37fd16e8ddb46e23b',1,'ucp_compat.h']]], + ['ucp_5fget_5fnbi_187',['ucp_get_nbi',['../group___u_c_p___c_o_m_m.html#gae3597f699227d598651f6630fbd7968b',1,'ucp_compat.h']]], + ['ucp_5fget_5fnbx_188',['ucp_get_nbx',['../group___u_c_p___c_o_m_m.html#gaa06c6521592661a8123c11426074d880',1,'ucp.h']]], + ['ucp_5fget_5fversion_189',['ucp_get_version',['../group___u_c_p___c_o_n_t_e_x_t.html#gae57b8eee6087f5e1d056d8075751042e',1,'ucp.h']]], + ['ucp_5fget_5fversion_5fstring_190',['ucp_get_version_string',['../group___u_c_p___c_o_n_t_e_x_t.html#gaf3dbbb68cb6a9236a2ea8a2e624553de',1,'ucp.h']]], + ['ucp_5finit_191',['ucp_init',['../group___u_c_p___c_o_n_t_e_x_t.html#ga3ad3662ebafac88ec666be4caeb76cb2',1,'ucp.h']]], + ['ucp_5flib_5fattr_192',['ucp_lib_attr',['../group___u_c_p___c_o_n_t_e_x_t.html#structucp__lib__attr',1,'']]], + ['ucp_5flib_5fattr_5ffield_193',['ucp_lib_attr_field',['../group___u_c_p___c_o_n_t_e_x_t.html#ga2791b2b44c55fdb685dcd4dad8c8ae3c',1,'ucp.h']]], + ['ucp_5flib_5fattr_5ffield_5fmax_5fthread_5flevel_194',['UCP_LIB_ATTR_FIELD_MAX_THREAD_LEVEL',['../group___u_c_p___c_o_n_t_e_x_t.html#gga2791b2b44c55fdb685dcd4dad8c8ae3ca96a3edd65a30f00765d330342d3c1267',1,'ucp.h']]], + ['ucp_5flib_5fattr_5ft_195',['ucp_lib_attr_t',['../group___u_c_p___c_o_n_t_e_x_t.html#ga0b1aa9a567a689ccc7bd9848c2bc0ba1',1,'ucp.h']]], + ['ucp_5flib_5fquery_196',['ucp_lib_query',['../group___u_c_p___c_o_n_t_e_x_t.html#ga4f8c11637791304bd7fcc9aceafbb1dd',1,'ucp.h']]], + ['ucp_5flistener_5faccept_5fcallback_5ft_197',['ucp_listener_accept_callback_t',['../group___u_c_p___w_o_r_k_e_r.html#ga9a1d61f9a3c1fd97c008dd77ae86c02c',1,'ucp_def.h']]], + ['ucp_5flistener_5faccept_5fhandler_198',['ucp_listener_accept_handler',['../group___u_c_p___w_o_r_k_e_r.html#structucp__listener__accept__handler',1,'']]], + ['ucp_5flistener_5faccept_5fhandler_5ft_199',['ucp_listener_accept_handler_t',['../group___u_c_p___w_o_r_k_e_r.html#ga6b4950841b36dfddd268fcb2cce2a52c',1,'ucp_compat.h']]], + ['ucp_5flistener_5fattr_200',['ucp_listener_attr',['../group___u_c_p___w_o_r_k_e_r.html#structucp__listener__attr',1,'']]], + ['ucp_5flistener_5fattr_5ffield_201',['ucp_listener_attr_field',['../group___u_c_p___w_o_r_k_e_r.html#ga54059507b51041359aedffbe75635720',1,'ucp.h']]], + ['ucp_5flistener_5fattr_5ffield_5fsockaddr_202',['UCP_LISTENER_ATTR_FIELD_SOCKADDR',['../group___u_c_p___w_o_r_k_e_r.html#gga54059507b51041359aedffbe75635720a5a58fea3f5a4daa6b055306a6798ec26',1,'ucp.h']]], + ['ucp_5flistener_5fattr_5ft_203',['ucp_listener_attr_t',['../group___u_c_p___w_o_r_k_e_r.html#gaa8d7abc94888383e95d19067a78ecb1e',1,'ucp.h']]], + ['ucp_5flistener_5fconn_5fcallback_5ft_204',['ucp_listener_conn_callback_t',['../group___u_c_p___w_o_r_k_e_r.html#ga389a8cfa253f87eb9d8cc7b8d4747c82',1,'ucp_def.h']]], + ['ucp_5flistener_5fconn_5fhandler_205',['ucp_listener_conn_handler',['../group___u_c_p___w_o_r_k_e_r.html#structucp__listener__conn__handler',1,'']]], + ['ucp_5flistener_5fconn_5fhandler_5ft_206',['ucp_listener_conn_handler_t',['../group___u_c_p___w_o_r_k_e_r.html#gaec337bd9fcab44386c01f76699010b63',1,'ucp_def.h']]], + ['ucp_5flistener_5fcreate_207',['ucp_listener_create',['../group___u_c_p___w_o_r_k_e_r.html#ga7a8943f89a7b49c1f1abc562fb5178ad',1,'ucp.h']]], + ['ucp_5flistener_5fdestroy_208',['ucp_listener_destroy',['../group___u_c_p___w_o_r_k_e_r.html#gae45c609cd659bdd0e205d30627b7af21',1,'ucp.h']]], + ['ucp_5flistener_5fh_209',['ucp_listener_h',['../group___u_c_p___w_o_r_k_e_r.html#gac0496f7102c43cf339cc760b9e5724a2',1,'ucp_def.h']]], + ['ucp_5flistener_5fparam_5ffield_5faccept_5fhandler_210',['UCP_LISTENER_PARAM_FIELD_ACCEPT_HANDLER',['../group___u_c_p___w_o_r_k_e_r.html#gga36d95269fcce844261494cbd4f5e26fca3cdf187536d998c115377f8de396ac66',1,'ucp.h']]], + ['ucp_5flistener_5fparam_5ffield_5fconn_5fhandler_211',['UCP_LISTENER_PARAM_FIELD_CONN_HANDLER',['../group___u_c_p___w_o_r_k_e_r.html#gga36d95269fcce844261494cbd4f5e26fca6f28cd3c96e0ada4fafc63d6f67e48bc',1,'ucp.h']]], + ['ucp_5flistener_5fparam_5ffield_5fsock_5faddr_212',['UCP_LISTENER_PARAM_FIELD_SOCK_ADDR',['../group___u_c_p___w_o_r_k_e_r.html#gga36d95269fcce844261494cbd4f5e26fca0eed5ab19654fabc0afceb5b439c6f05',1,'ucp.h']]], + ['ucp_5flistener_5fparams_213',['ucp_listener_params',['../group___u_c_p___w_o_r_k_e_r.html#structucp__listener__params',1,'']]], + ['ucp_5flistener_5fparams_5ffield_214',['ucp_listener_params_field',['../group___u_c_p___w_o_r_k_e_r.html#ga36d95269fcce844261494cbd4f5e26fc',1,'ucp.h']]], + ['ucp_5flistener_5fparams_5ft_215',['ucp_listener_params_t',['../group___u_c_p___w_o_r_k_e_r.html#ga440ab104a3ed59271948a28d6eb1f224',1,'ucp.h']]], + ['ucp_5flistener_5fquery_216',['ucp_listener_query',['../group___u_c_p___w_o_r_k_e_r.html#ga785a8cc6adab6c01bb2354a38bcd9928',1,'ucp.h']]], + ['ucp_5flistener_5freject_217',['ucp_listener_reject',['../group___u_c_p___w_o_r_k_e_r.html#ga1f1620fdbae11ea076875fd6ac644241',1,'ucp.h']]], + ['ucp_5fmadv_5fnormal_218',['UCP_MADV_NORMAL',['../group___u_c_p___m_e_m.html#gga1a73c4a7fc1d8a6d75e6b53256eec0b8a3a335aa51dc934e57f4ccbd26fb32fb0',1,'ucp.h']]], + ['ucp_5fmadv_5fwillneed_219',['UCP_MADV_WILLNEED',['../group___u_c_p___m_e_m.html#gga1a73c4a7fc1d8a6d75e6b53256eec0b8a882711eaac0fe1172570783e9824e12f',1,'ucp.h']]], + ['ucp_5fmem_5fadvice_220',['ucp_mem_advice',['../group___u_c_p___m_e_m.html#ga1a73c4a7fc1d8a6d75e6b53256eec0b8',1,'ucp.h']]], + ['ucp_5fmem_5fadvice_5ft_221',['ucp_mem_advice_t',['../group___u_c_p___m_e_m.html#ga54153fa56291a9c0cb149029e23e85d1',1,'ucp.h']]], + ['ucp_5fmem_5fadvise_222',['ucp_mem_advise',['../group___u_c_p___m_e_m.html#ga455313831b8734fe1a824109c3ffc588',1,'ucp.h']]], + ['ucp_5fmem_5fadvise_5fparam_5ffield_5faddress_223',['UCP_MEM_ADVISE_PARAM_FIELD_ADDRESS',['../group___u_c_p___m_e_m.html#gga3c0f7ca217c77fa0ae8649e21b24a1fca19cd431b1a46a62abaf904d0358ffaad',1,'ucp.h']]], + ['ucp_5fmem_5fadvise_5fparam_5ffield_5fadvice_224',['UCP_MEM_ADVISE_PARAM_FIELD_ADVICE',['../group___u_c_p___m_e_m.html#gga3c0f7ca217c77fa0ae8649e21b24a1fca8834ee80833e5509eea118807dc1a213',1,'ucp.h']]], + ['ucp_5fmem_5fadvise_5fparam_5ffield_5flength_225',['UCP_MEM_ADVISE_PARAM_FIELD_LENGTH',['../group___u_c_p___m_e_m.html#gga3c0f7ca217c77fa0ae8649e21b24a1fcac60bdd12018a716587c71883ae408b60',1,'ucp.h']]], + ['ucp_5fmem_5fadvise_5fparams_226',['ucp_mem_advise_params',['../group___u_c_p___m_e_m.html#structucp__mem__advise__params',1,'']]], + ['ucp_5fmem_5fadvise_5fparams_5ffield_227',['ucp_mem_advise_params_field',['../group___u_c_p___m_e_m.html#ga3c0f7ca217c77fa0ae8649e21b24a1fc',1,'ucp.h']]], + ['ucp_5fmem_5fadvise_5fparams_5ft_228',['ucp_mem_advise_params_t',['../group___u_c_p___m_e_m.html#ga3bbc14ac42d6465b98e9b63107d9f6be',1,'ucp.h']]], + ['ucp_5fmem_5fattr_229',['ucp_mem_attr',['../group___u_c_p___m_e_m.html#structucp__mem__attr',1,'']]], + ['ucp_5fmem_5fattr_5ffield_230',['ucp_mem_attr_field',['../group___u_c_p___m_e_m.html#gab0d7a54391c964c59b2cfbf30e23dc14',1,'ucp_def.h']]], + ['ucp_5fmem_5fattr_5ffield_5faddress_231',['UCP_MEM_ATTR_FIELD_ADDRESS',['../group___u_c_p___m_e_m.html#ggab0d7a54391c964c59b2cfbf30e23dc14a7255d71b73495f3466b2b3938f85630f',1,'ucp_def.h']]], + ['ucp_5fmem_5fattr_5ffield_5flength_232',['UCP_MEM_ATTR_FIELD_LENGTH',['../group___u_c_p___m_e_m.html#ggab0d7a54391c964c59b2cfbf30e23dc14aaf7684459badd65a4e70a65813ae1e35',1,'ucp_def.h']]], + ['ucp_5fmem_5fattr_5ffield_5fmem_5ftype_233',['UCP_MEM_ATTR_FIELD_MEM_TYPE',['../group___u_c_p___m_e_m.html#ggab0d7a54391c964c59b2cfbf30e23dc14a97c63bcd6332d0556e4439bc65531116',1,'ucp_def.h']]], + ['ucp_5fmem_5fattr_5ft_234',['ucp_mem_attr_t',['../group___u_c_p___m_e_m.html#ga501b036afde29169c2f9472f532d3355',1,'ucp_def.h']]], + ['ucp_5fmem_5fh_235',['ucp_mem_h',['../group___u_c_p___m_e_m.html#gacf61d6417524329d75f239d3f2ea8d3b',1,'ucp_def.h']]], + ['ucp_5fmem_5fmap_236',['ucp_mem_map',['../group___u_c_p___m_e_m.html#ga1af508a609cc7f2cebf4b33f9ee6ac66',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5fallocate_237',['UCP_MEM_MAP_ALLOCATE',['../group___u_c_p___m_e_m.html#gga06fc87d81c62e9abb8790b6e5713c55ba8cb2c18c15da7e8da9aa2de5b407957a',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5ffixed_238',['UCP_MEM_MAP_FIXED',['../group___u_c_p___m_e_m.html#gga06fc87d81c62e9abb8790b6e5713c55ba937051276d5a7825211189c84d7f2922',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5fnonblock_239',['UCP_MEM_MAP_NONBLOCK',['../group___u_c_p___m_e_m.html#gga06fc87d81c62e9abb8790b6e5713c55ba31fa3f795110becccb25734067b5e203',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5fparam_5ffield_5faddress_240',['UCP_MEM_MAP_PARAM_FIELD_ADDRESS',['../group___u_c_p___m_e_m.html#gga1b78010c24c834aadc9fb8f1083e226faa3ddd6c11c7610ae3c97fcb4473d9332',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5fparam_5ffield_5fexported_5fmemh_5fbuffer_241',['UCP_MEM_MAP_PARAM_FIELD_EXPORTED_MEMH_BUFFER',['../group___u_c_p___m_e_m.html#gga1b78010c24c834aadc9fb8f1083e226faf130e704ffef248e615f5aeb25208ce9',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5fparam_5ffield_5fflags_242',['UCP_MEM_MAP_PARAM_FIELD_FLAGS',['../group___u_c_p___m_e_m.html#gga1b78010c24c834aadc9fb8f1083e226fafc2e699ec811b6848bfc40d4a6c1b049',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5fparam_5ffield_5flength_243',['UCP_MEM_MAP_PARAM_FIELD_LENGTH',['../group___u_c_p___m_e_m.html#gga1b78010c24c834aadc9fb8f1083e226faa4aa7e36cd51262837f9179cb74fb22a',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5fparam_5ffield_5fmemory_5ftype_244',['UCP_MEM_MAP_PARAM_FIELD_MEMORY_TYPE',['../group___u_c_p___m_e_m.html#gga1b78010c24c834aadc9fb8f1083e226fab5d6cd1e76f334a4ae5d10d5955d51b7',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5fparam_5ffield_5fprot_245',['UCP_MEM_MAP_PARAM_FIELD_PROT',['../group___u_c_p___m_e_m.html#gga1b78010c24c834aadc9fb8f1083e226fa349ca907322a708479795afef1fe28ff',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5fparams_246',['ucp_mem_map_params',['../group___u_c_p___m_e_m.html#structucp__mem__map__params',1,'']]], + ['ucp_5fmem_5fmap_5fparams_5ffield_247',['ucp_mem_map_params_field',['../group___u_c_p___m_e_m.html#ga1b78010c24c834aadc9fb8f1083e226f',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5fparams_5ft_248',['ucp_mem_map_params_t',['../group___u_c_p___m_e_m.html#ga1651ea0d7b1db95a8f9683c24ecc5f37',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5fprot_5flocal_5fread_249',['UCP_MEM_MAP_PROT_LOCAL_READ',['../group___u_c_p___m_e_m.html#ggadf764cbdea00d65edcd07bb9953ad2b7a78c92c33fb131e7084b6a2933632ec17',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5fprot_5flocal_5fwrite_250',['UCP_MEM_MAP_PROT_LOCAL_WRITE',['../group___u_c_p___m_e_m.html#ggadf764cbdea00d65edcd07bb9953ad2b7a6961fd2dcb7ff1fd5980f2d09bb40c39',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5fprot_5fremote_5fread_251',['UCP_MEM_MAP_PROT_REMOTE_READ',['../group___u_c_p___m_e_m.html#ggadf764cbdea00d65edcd07bb9953ad2b7a2dc03b7f80ce18c5ec948d1039342bdb',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5fprot_5fremote_5fwrite_252',['UCP_MEM_MAP_PROT_REMOTE_WRITE',['../group___u_c_p___m_e_m.html#ggadf764cbdea00d65edcd07bb9953ad2b7a4d1429c096e17c691ca710aeb6385fe8',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5fsymmetric_5frkey_253',['UCP_MEM_MAP_SYMMETRIC_RKEY',['../group___u_c_p___m_e_m.html#gga06fc87d81c62e9abb8790b6e5713c55ba3e27fc9d8ad8b346a73417a654c96033',1,'ucp.h']]], + ['ucp_5fmem_5fprint_5finfo_254',['ucp_mem_print_info',['../group___u_c_p___m_e_m.html#ga3240a60d906b2ecf5d0a19acdf13850f',1,'ucp.h']]], + ['ucp_5fmem_5fquery_255',['ucp_mem_query',['../group___u_c_p___m_e_m.html#ga080c10aaf347682594092d796bbc913f',1,'ucp.h']]], + ['ucp_5fmem_5funmap_256',['ucp_mem_unmap',['../group___u_c_p___m_e_m.html#gac8bd616375fe05594690b5e0cddd6318',1,'ucp.h']]], + ['ucp_5fmemh_5fbuffer_5frelease_257',['ucp_memh_buffer_release',['../group___u_c_p___m_e_m.html#gab016c446e78e171c03a2fe11ab5fe48d',1,'ucp.h']]], + ['ucp_5fmemh_5fbuffer_5frelease_5fparams_258',['ucp_memh_buffer_release_params',['../group___u_c_p___m_e_m.html#structucp__memh__buffer__release__params',1,'']]], + ['ucp_5fmemh_5fbuffer_5frelease_5fparams_5ft_259',['ucp_memh_buffer_release_params_t',['../group___u_c_p___m_e_m.html#ga219b34ef6d297d418f8ee618021284c9',1,'ucp.h']]], + ['ucp_5fmemh_5fpack_260',['ucp_memh_pack',['../group___u_c_p___m_e_m.html#ga8540eb3c5b885dfddbca0e39e00117ad',1,'ucp.h']]], + ['ucp_5fmemh_5fpack_5fflag_5fexport_261',['UCP_MEMH_PACK_FLAG_EXPORT',['../group___u_c_p___m_e_m.html#gga83ac2dbb4fe6b93948b00c9a2ad16efead1933cc321da0f7ab0428070d36d1e00',1,'ucp.h']]], + ['ucp_5fmemh_5fpack_5fflags_262',['ucp_memh_pack_flags',['../group___u_c_p___m_e_m.html#ga83ac2dbb4fe6b93948b00c9a2ad16efe',1,'ucp.h']]], + ['ucp_5fmemh_5fpack_5fparam_5ffield_5fflags_263',['UCP_MEMH_PACK_PARAM_FIELD_FLAGS',['../group___u_c_p___m_e_m.html#gga9143b85c7c40d6b13020a13bc13f9dbfaa88937590bafafda1088444634173fa8',1,'ucp.h']]], + ['ucp_5fmemh_5fpack_5fparams_264',['ucp_memh_pack_params',['../group___u_c_p___m_e_m.html#structucp__memh__pack__params',1,'']]], + ['ucp_5fmemh_5fpack_5fparams_5ffield_265',['ucp_memh_pack_params_field',['../group___u_c_p___m_e_m.html#ga9143b85c7c40d6b13020a13bc13f9dbf',1,'ucp.h']]], + ['ucp_5fmemh_5fpack_5fparams_5ft_266',['ucp_memh_pack_params_t',['../group___u_c_p___m_e_m.html#ga44ac2f9786b95ae0ca5854edbc498eb5',1,'ucp.h']]], + ['ucp_5fop_5fattr_5ffield_5fcallback_267',['UCP_OP_ATTR_FIELD_CALLBACK',['../group___u_c_p___c_o_m_m.html#gga67fae646dd1668efba6efe49a35a6610a73e3a6e8b96b37ec1b0764e67dd13602',1,'ucp.h']]], + ['ucp_5fop_5fattr_5ffield_5fdatatype_268',['UCP_OP_ATTR_FIELD_DATATYPE',['../group___u_c_p___c_o_m_m.html#gga67fae646dd1668efba6efe49a35a6610a354ef92dd9352dfccc859cd2ca3558d8',1,'ucp.h']]], + ['ucp_5fop_5fattr_5ffield_5fflags_269',['UCP_OP_ATTR_FIELD_FLAGS',['../group___u_c_p___c_o_m_m.html#gga67fae646dd1668efba6efe49a35a6610a2f2586686e21b2700fd7cd4a8efb5a1b',1,'ucp.h']]], + ['ucp_5fop_5fattr_5ffield_5fmemh_270',['UCP_OP_ATTR_FIELD_MEMH',['../group___u_c_p___c_o_m_m.html#gga67fae646dd1668efba6efe49a35a6610a84426c4dea4dceee1b015c3ccdcb7a78',1,'ucp.h']]], + ['ucp_5fop_5fattr_5ffield_5fmemory_5ftype_271',['UCP_OP_ATTR_FIELD_MEMORY_TYPE',['../group___u_c_p___c_o_m_m.html#gga67fae646dd1668efba6efe49a35a6610a768b4c6759502c34b0051ba33c0d05b3',1,'ucp.h']]], + ['ucp_5fop_5fattr_5ffield_5frecv_5finfo_272',['UCP_OP_ATTR_FIELD_RECV_INFO',['../group___u_c_p___c_o_m_m.html#gga67fae646dd1668efba6efe49a35a6610ac5a4c17a81a2efefae5e338479ae06cb',1,'ucp.h']]], + ['ucp_5fop_5fattr_5ffield_5freply_5fbuffer_273',['UCP_OP_ATTR_FIELD_REPLY_BUFFER',['../group___u_c_p___c_o_m_m.html#gga67fae646dd1668efba6efe49a35a6610a8eb660399c093d89d5deae5c847019f0',1,'ucp.h']]], + ['ucp_5fop_5fattr_5ffield_5frequest_274',['UCP_OP_ATTR_FIELD_REQUEST',['../group___u_c_p___c_o_m_m.html#gga67fae646dd1668efba6efe49a35a6610acfac7dfc3e7b5967870f5376c334b996',1,'ucp.h']]], + ['ucp_5fop_5fattr_5ffield_5fuser_5fdata_275',['UCP_OP_ATTR_FIELD_USER_DATA',['../group___u_c_p___c_o_m_m.html#gga67fae646dd1668efba6efe49a35a6610af6f932f15331fe7c9efacbfe2578e5ec',1,'ucp.h']]], + ['ucp_5fop_5fattr_5fflag_5ffast_5fcmpl_276',['UCP_OP_ATTR_FLAG_FAST_CMPL',['../group___u_c_p___c_o_m_m.html#gga67fae646dd1668efba6efe49a35a6610a69a2066ee5f68e57021f622b0cc859a8',1,'ucp.h']]], + ['ucp_5fop_5fattr_5fflag_5fforce_5fimm_5fcmpl_277',['UCP_OP_ATTR_FLAG_FORCE_IMM_CMPL',['../group___u_c_p___c_o_m_m.html#gga67fae646dd1668efba6efe49a35a6610aeb35a090d86119cfd25d4e82753e943f',1,'ucp.h']]], + ['ucp_5fop_5fattr_5fflag_5fmulti_5fsend_278',['UCP_OP_ATTR_FLAG_MULTI_SEND',['../group___u_c_p___c_o_m_m.html#gga67fae646dd1668efba6efe49a35a6610a405517272bc4319aa3b49638f5626c7b',1,'ucp.h']]], + ['ucp_5fop_5fattr_5fflag_5fno_5fimm_5fcmpl_279',['UCP_OP_ATTR_FLAG_NO_IMM_CMPL',['../group___u_c_p___c_o_m_m.html#gga67fae646dd1668efba6efe49a35a6610a8805045d48573e9aa5751b439be114d0',1,'ucp.h']]], + ['ucp_5fop_5fattr_5ft_280',['ucp_op_attr_t',['../group___u_c_p___c_o_m_m.html#ga67fae646dd1668efba6efe49a35a6610',1,'ucp.h']]], + ['ucp_5fparam_5ffield_5festimated_5fnum_5feps_281',['UCP_PARAM_FIELD_ESTIMATED_NUM_EPS',['../group___u_c_p___c_o_n_t_e_x_t.html#ggab43f613a2365147415abf66f571cfa71a834c5a969e0d41a90d54a6955b7414eb',1,'ucp.h']]], + ['ucp_5fparam_5ffield_5festimated_5fnum_5fppn_282',['UCP_PARAM_FIELD_ESTIMATED_NUM_PPN',['../group___u_c_p___c_o_n_t_e_x_t.html#ggab43f613a2365147415abf66f571cfa71a22fcdc29e68f36d97a0f389712529976',1,'ucp.h']]], + ['ucp_5fparam_5ffield_5ffeatures_283',['UCP_PARAM_FIELD_FEATURES',['../group___u_c_p___c_o_n_t_e_x_t.html#ggab43f613a2365147415abf66f571cfa71a454f1e90a324095192d87d97b8a4321f',1,'ucp.h']]], + ['ucp_5fparam_5ffield_5fmt_5fworkers_5fshared_284',['UCP_PARAM_FIELD_MT_WORKERS_SHARED',['../group___u_c_p___c_o_n_t_e_x_t.html#ggab43f613a2365147415abf66f571cfa71aa8d5e573f9d52358f50ae2725a08e10e',1,'ucp.h']]], + ['ucp_5fparam_5ffield_5fname_285',['UCP_PARAM_FIELD_NAME',['../group___u_c_p___c_o_n_t_e_x_t.html#ggab43f613a2365147415abf66f571cfa71a9bf23645413cc4f5e753cf99b4379eb6',1,'ucp.h']]], + ['ucp_5fparam_5ffield_5frequest_5fcleanup_286',['UCP_PARAM_FIELD_REQUEST_CLEANUP',['../group___u_c_p___c_o_n_t_e_x_t.html#ggab43f613a2365147415abf66f571cfa71a9e2c9cebfbf51d47df31ffd019eb01c6',1,'ucp.h']]], + ['ucp_5fparam_5ffield_5frequest_5finit_287',['UCP_PARAM_FIELD_REQUEST_INIT',['../group___u_c_p___c_o_n_t_e_x_t.html#ggab43f613a2365147415abf66f571cfa71ac95d94f94370df6cd79db8e830505738',1,'ucp.h']]], + ['ucp_5fparam_5ffield_5frequest_5fsize_288',['UCP_PARAM_FIELD_REQUEST_SIZE',['../group___u_c_p___c_o_n_t_e_x_t.html#ggab43f613a2365147415abf66f571cfa71a8385ca52048353e69b90fb7c6b0799ee',1,'ucp.h']]], + ['ucp_5fparam_5ffield_5ftag_5fsender_5fmask_289',['UCP_PARAM_FIELD_TAG_SENDER_MASK',['../group___u_c_p___c_o_n_t_e_x_t.html#ggab43f613a2365147415abf66f571cfa71a030b9866b2b6167cbdcfe9ce321d1f28',1,'ucp.h']]], + ['ucp_5fparams_290',['ucp_params',['../group___u_c_p___c_o_n_f_i_g.html#structucp__params',1,'']]], + ['ucp_5fparams_5ffield_291',['ucp_params_field',['../group___u_c_p___c_o_n_t_e_x_t.html#gab43f613a2365147415abf66f571cfa71',1,'ucp.h']]], + ['ucp_5fparams_5ft_292',['ucp_params_t',['../group___u_c_p___c_o_n_f_i_g.html#ga91aad075a1692f3bea2df3c59e63ed5c',1,'ucp.h']]], + ['ucp_5fput_293',['ucp_put',['../group___u_c_p___c_o_m_m.html#ga85b0a27cf8a3239decabad6a9104eb31',1,'ucp_compat.h']]], + ['ucp_5fput_5fnb_294',['ucp_put_nb',['../group___u_c_p___c_o_m_m.html#ga1ba986b2bde69c215abd5766dbceeb18',1,'ucp_compat.h']]], + ['ucp_5fput_5fnbi_295',['ucp_put_nbi',['../group___u_c_p___c_o_m_m.html#ga77f3d5def7a77c4ba88f9e1eefa4b7e6',1,'ucp_compat.h']]], + ['ucp_5fput_5fnbx_296',['ucp_put_nbx',['../group___u_c_p___c_o_m_m.html#ga29e7b9b70b782140e63544b8613a5fe7',1,'ucp.h']]], + ['ucp_5freq_5fattr_5ffield_297',['ucp_req_attr_field',['../group___u_c_p___c_o_m_m.html#gab383d860475f8917f51afb542e7d02ff',1,'ucp.h']]], + ['ucp_5frequest_5falloc_298',['ucp_request_alloc',['../group___u_c_p___c_o_m_m.html#ga896e6f781c5fb026a6e25b0151bdb745',1,'ucp.h']]], + ['ucp_5frequest_5fattr_5ffield_5finfo_5fstring_299',['UCP_REQUEST_ATTR_FIELD_INFO_STRING',['../group___u_c_p___c_o_m_m.html#ggab383d860475f8917f51afb542e7d02ffa45086e70d5035d92a601605a689178b9',1,'ucp.h']]], + ['ucp_5frequest_5fattr_5ffield_5finfo_5fstring_5fsize_300',['UCP_REQUEST_ATTR_FIELD_INFO_STRING_SIZE',['../group___u_c_p___c_o_m_m.html#ggab383d860475f8917f51afb542e7d02ffaaae11c040c811d14362cbbc47ea9f772',1,'ucp.h']]], + ['ucp_5frequest_5fattr_5ffield_5fmem_5ftype_301',['UCP_REQUEST_ATTR_FIELD_MEM_TYPE',['../group___u_c_p___c_o_m_m.html#ggab383d860475f8917f51afb542e7d02ffa7a1764b4ce21085ecbbdd13a1f183df5',1,'ucp.h']]], + ['ucp_5frequest_5fattr_5ffield_5fstatus_302',['UCP_REQUEST_ATTR_FIELD_STATUS',['../group___u_c_p___c_o_m_m.html#ggab383d860475f8917f51afb542e7d02ffa9d41f03b4a79e21265ad15f87d3ff8ed',1,'ucp.h']]], + ['ucp_5frequest_5fattr_5ft_303',['ucp_request_attr_t',['../group___u_c_p___c_o_m_m.html#structucp__request__attr__t',1,'']]], + ['ucp_5frequest_5fcancel_304',['ucp_request_cancel',['../group___u_c_p___c_o_m_m.html#ga3553f89a61d6b40af4633a2e7c84fc1d',1,'ucp.h']]], + ['ucp_5frequest_5fcheck_5fstatus_305',['ucp_request_check_status',['../group___u_c_p___c_o_m_m.html#gae082ad7af428645ebe6e469d3d06a757',1,'ucp.h']]], + ['ucp_5frequest_5fcleanup_5fcallback_5ft_306',['ucp_request_cleanup_callback_t',['../group___u_c_p___c_o_n_t_e_x_t.html#gaa0db30ca2911587c444d63b6a54b3625',1,'ucp_def.h']]], + ['ucp_5frequest_5ffree_307',['ucp_request_free',['../group___u_c_p___c_o_m_m.html#ga0e8e46f5953d464382b21edef3ec9994',1,'ucp.h']]], + ['ucp_5frequest_5finit_5fcallback_5ft_308',['ucp_request_init_callback_t',['../group___u_c_p___c_o_n_t_e_x_t.html#ga0cc0c63694e7e9ee370bbee017aee7fb',1,'ucp_def.h']]], + ['ucp_5frequest_5fis_5fcompleted_309',['ucp_request_is_completed',['../group___u_c_p___c_o_m_m.html#ga432e478b97575b21855074a45d54520d',1,'ucp_compat.h']]], + ['ucp_5frequest_5fparam_5ft_310',['ucp_request_param_t',['../group___u_c_p___c_o_n_t_e_x_t.html#structucp__request__param__t',1,'']]], + ['ucp_5frequest_5fparam_5ft_2ecb_311',['ucp_request_param_t.cb',['../group___u_c_p___c_o_n_t_e_x_t.html#unionucp__request__param__t_8cb',1,'']]], + ['ucp_5frequest_5fparam_5ft_2erecv_5finfo_312',['ucp_request_param_t.recv_info',['../group___u_c_p___c_o_n_t_e_x_t.html#unionucp__request__param__t_8recv__info',1,'']]], + ['ucp_5frequest_5fquery_313',['ucp_request_query',['../group___u_c_p___c_o_m_m.html#gafc247802373bbe39e9866745e102a064',1,'ucp.h']]], + ['ucp_5frequest_5frelease_314',['ucp_request_release',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gaabf569a298946627fbc8d66814c35e68',1,'ucp_compat.h']]], + ['ucp_5frequest_5ftest_315',['ucp_request_test',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga3802a983138ed27034b7d52026dccb2f',1,'ucp_compat.h']]], + ['ucp_5frkey_5fbuffer_5frelease_316',['ucp_rkey_buffer_release',['../group___u_c_p___m_e_m.html#ga8bc005f53da015f4a062087e6eb064e9',1,'ucp_compat.h']]], + ['ucp_5frkey_5fcompare_317',['ucp_rkey_compare',['../group___u_c_p___m_e_m.html#gae3adf84d5cb8465ba6d9f5766211be17',1,'ucp.h']]], + ['ucp_5frkey_5fcompare_5fparams_318',['ucp_rkey_compare_params',['../group___u_c_p___m_e_m.html#structucp__rkey__compare__params',1,'']]], + ['ucp_5frkey_5fcompare_5fparams_5ft_319',['ucp_rkey_compare_params_t',['../group___u_c_p___m_e_m.html#ga28b7edf516eb2fdf29b4c30c46c5bfe4',1,'ucp.h']]], + ['ucp_5frkey_5fdestroy_320',['ucp_rkey_destroy',['../group___u_c_p___m_e_m.html#gae33d7cc264e0fe1b11e27ae4289fba39',1,'ucp.h']]], + ['ucp_5frkey_5fh_321',['ucp_rkey_h',['../group___u_c_p___m_e_m.html#gaefeb4e775983f4313691a6b465e36c24',1,'ucp_def.h']]], + ['ucp_5frkey_5fpack_322',['ucp_rkey_pack',['../group___u_c_p___m_e_m.html#gadbb6b3ace4ab988cd7660319123407b4',1,'ucp_compat.h']]], + ['ucp_5frkey_5fptr_323',['ucp_rkey_ptr',['../group___u_c_p___m_e_m.html#ga68f3458805ba15d6a5883219ecd56c1e',1,'ucp.h']]], + ['ucp_5fsend_5fam_5fflags_324',['ucp_send_am_flags',['../group___u_c_p___w_o_r_k_e_r.html#ga583228e89cd5c882025ed04c76106aa6',1,'ucp.h']]], + ['ucp_5fsend_5fcallback_5ft_325',['ucp_send_callback_t',['../group___u_c_p___c_o_m_m.html#gaad905bbbff95166a1e9b0e9743feb677',1,'ucp_def.h']]], + ['ucp_5fsend_5fnbx_5fcallback_5ft_326',['ucp_send_nbx_callback_t',['../group___u_c_p___c_o_m_m.html#gaee41a74074b37f96dad5b29c9af17faf',1,'ucp_def.h']]], + ['ucp_5fstream_5fdata_5frelease_327',['ucp_stream_data_release',['../group___u_c_p___c_o_m_m.html#ga1d1c1c1b2caf4f26c9872e1d708d5f68',1,'ucp.h']]], + ['ucp_5fstream_5fpoll_5fep_328',['ucp_stream_poll_ep',['../group___u_c_p___e_n_d_p_o_i_n_t.html#structucp__stream__poll__ep',1,'']]], + ['ucp_5fstream_5fpoll_5fep_5ft_329',['ucp_stream_poll_ep_t',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gac7c775b6f8e929ca725a0b16ad9b244e',1,'ucp.h']]], + ['ucp_5fstream_5frecv_5fcallback_5ft_330',['ucp_stream_recv_callback_t',['../group___u_c_p___c_o_m_m.html#ga6a6234b8497006e26ba02f10ddc0bbf5',1,'ucp_def.h']]], + ['ucp_5fstream_5frecv_5fdata_5fnb_331',['ucp_stream_recv_data_nb',['../group___u_c_p___c_o_m_m.html#ga47f307f4765eb5410f24ac27986b59d7',1,'ucp.h']]], + ['ucp_5fstream_5frecv_5fflag_5fwaitall_332',['UCP_STREAM_RECV_FLAG_WAITALL',['../group___u_c_p___c_o_m_m.html#ggab471a9c7ab815e3d3ad7af80253f5cc2a5fb4ed4f8009d969ea9a8b3f3542424c',1,'ucp.h']]], + ['ucp_5fstream_5frecv_5fflags_5ft_333',['ucp_stream_recv_flags_t',['../group___u_c_p___c_o_m_m.html#gab471a9c7ab815e3d3ad7af80253f5cc2',1,'ucp.h']]], + ['ucp_5fstream_5frecv_5fnb_334',['ucp_stream_recv_nb',['../group___u_c_p___c_o_m_m.html#gadf3b4504a329a46d2d4ec0a8cec08130',1,'ucp_compat.h']]], + ['ucp_5fstream_5frecv_5fnbx_335',['ucp_stream_recv_nbx',['../group___u_c_p___c_o_m_m.html#ga30494ce33e63823c81c2c5b3656d25c3',1,'ucp.h']]], + ['ucp_5fstream_5frecv_5fnbx_5fcallback_5ft_336',['ucp_stream_recv_nbx_callback_t',['../group___u_c_p___c_o_m_m.html#gaf9e253400533137ba2a5a49a111a9ee8',1,'ucp_def.h']]], + ['ucp_5fstream_5frecv_5frequest_5ftest_337',['ucp_stream_recv_request_test',['../group___u_c_p___c_o_m_m.html#ga4d8d8823b24cb25dcab8bf44c72fa25e',1,'ucp.h']]], + ['ucp_5fstream_5fsend_5fnb_338',['ucp_stream_send_nb',['../group___u_c_p___c_o_m_m.html#ga9022ff0ebb56cac81f6ba81bb28f71b3',1,'ucp_compat.h']]], + ['ucp_5fstream_5fsend_5fnbx_339',['ucp_stream_send_nbx',['../group___u_c_p___c_o_m_m.html#gae9fe6efe6b05e4e78f58bee68c68b252',1,'ucp.h']]], + ['ucp_5fstream_5fworker_5fpoll_340',['ucp_stream_worker_poll',['../group___u_c_p___w_o_r_k_e_r.html#gaacff2409268fc6620d9a2bca4fa01950',1,'ucp.h']]], + ['ucp_5ftag_5fmessage_5fh_341',['ucp_tag_message_h',['../group___u_c_p___c_o_m_m.html#ga6a8b5741a4e66d7e890d31ef7cbf88ec',1,'ucp_def.h']]], + ['ucp_5ftag_5fmsg_5frecv_5fnb_342',['ucp_tag_msg_recv_nb',['../group___u_c_p___c_o_m_m.html#gac335b3ae4c9577728d9c0f2ecd44c084',1,'ucp_compat.h']]], + ['ucp_5ftag_5fmsg_5frecv_5fnbx_343',['ucp_tag_msg_recv_nbx',['../group___u_c_p___c_o_m_m.html#ga48c61d44f18362bdaf8fca3122efcea6',1,'ucp.h']]], + ['ucp_5ftag_5fprobe_5fnb_344',['ucp_tag_probe_nb',['../group___u_c_p___c_o_m_m.html#ga41668f468dc37a7634116b8210815f22',1,'ucp.h']]], + ['ucp_5ftag_5frecv_5fcallback_5ft_345',['ucp_tag_recv_callback_t',['../group___u_c_p___c_o_m_m.html#ga00ac0fe5665d15fab5cd254af9b07758',1,'ucp_def.h']]], + ['ucp_5ftag_5frecv_5finfo_346',['ucp_tag_recv_info',['../group___u_c_p___c_o_n_t_e_x_t.html#structucp__tag__recv__info',1,'']]], + ['ucp_5ftag_5frecv_5finfo_5ft_347',['ucp_tag_recv_info_t',['../group___u_c_p___c_o_n_t_e_x_t.html#ga118ca6feabfc3b35c7b37002c40ca7e2',1,'ucp_def.h']]], + ['ucp_5ftag_5frecv_5fnb_348',['ucp_tag_recv_nb',['../group___u_c_p___c_o_m_m.html#gaeb24cdfc33dfb2886551b51843aa6304',1,'ucp_compat.h']]], + ['ucp_5ftag_5frecv_5fnbr_349',['ucp_tag_recv_nbr',['../group___u_c_p___c_o_m_m.html#ga5a86663a4a144fd81d7a4e3378c5edd2',1,'ucp_compat.h']]], + ['ucp_5ftag_5frecv_5fnbx_350',['ucp_tag_recv_nbx',['../group___u_c_p___c_o_m_m.html#gaa842f8ca8ad1363ed857ab938285a16f',1,'ucp.h']]], + ['ucp_5ftag_5frecv_5fnbx_5fcallback_5ft_351',['ucp_tag_recv_nbx_callback_t',['../group___u_c_p___c_o_m_m.html#ga70e110cf7c85ed5f281bd52438488d75',1,'ucp_def.h']]], + ['ucp_5ftag_5frecv_5frequest_5ftest_352',['ucp_tag_recv_request_test',['../group___u_c_p___c_o_m_m.html#ga707cbbef8cdcf90fa7cf63c922ef2c7f',1,'ucp.h']]], + ['ucp_5ftag_5fsend_5fnb_353',['ucp_tag_send_nb',['../group___u_c_p___c_o_m_m.html#gaae7343bd638924e5518041311d5c1dfc',1,'ucp_compat.h']]], + ['ucp_5ftag_5fsend_5fnbr_354',['ucp_tag_send_nbr',['../group___u_c_p___c_o_m_m.html#gad90aa964e14fef59b4e3bd9120cca669',1,'ucp_compat.h']]], + ['ucp_5ftag_5fsend_5fnbx_355',['ucp_tag_send_nbx',['../group___u_c_p___c_o_m_m.html#ga8323878b60f426c630d4ff8996ede3cc',1,'ucp.h']]], + ['ucp_5ftag_5fsend_5fsync_5fnb_356',['ucp_tag_send_sync_nb',['../group___u_c_p___c_o_m_m.html#gabd3e1ccae2ef34463e8313d09d3db17f',1,'ucp_compat.h']]], + ['ucp_5ftag_5fsend_5fsync_5fnbx_357',['ucp_tag_send_sync_nbx',['../group___u_c_p___c_o_m_m.html#ga0d96a2aac42fe99ce0c79f15dda8bd06',1,'ucp.h']]], + ['ucp_5ftag_5ft_358',['ucp_tag_t',['../group___u_c_p___c_o_m_m.html#ga55df42689ef1f5621eae4d1ffb16856e',1,'ucp_def.h']]], + ['ucp_5ftransport_5fentry_5ft_359',['ucp_transport_entry_t',['../group___u_c_p___e_n_d_p_o_i_n_t.html#structucp__transport__entry__t',1,'']]], + ['ucp_5ftransports_5ft_360',['ucp_transports_t',['../group___u_c_p___e_n_d_p_o_i_n_t.html#structucp__transports__t',1,'']]], + ['ucp_5fwakeup_5famo_361',['UCP_WAKEUP_AMO',['../group___u_c_p___w_o_r_k_e_r.html#gga66be8946dcd33051d40ceca65ba28e22a1f8891a39fe63593947811936a9af8f7',1,'ucp_def.h']]], + ['ucp_5fwakeup_5fedge_362',['UCP_WAKEUP_EDGE',['../group___u_c_p___w_o_r_k_e_r.html#gga66be8946dcd33051d40ceca65ba28e22a474ecc6ca013d28f71ade5d85aafd1c8',1,'ucp_def.h']]], + ['ucp_5fwakeup_5fevent_5ft_363',['ucp_wakeup_event_t',['../group___u_c_p___w_o_r_k_e_r.html#ga10aa3ad0bd9107c6bd4161c07eb50fe3',1,'ucp_def.h']]], + ['ucp_5fwakeup_5fevent_5ftypes_364',['ucp_wakeup_event_types',['../group___u_c_p___w_o_r_k_e_r.html#ga66be8946dcd33051d40ceca65ba28e22',1,'ucp_def.h']]], + ['ucp_5fwakeup_5frma_365',['UCP_WAKEUP_RMA',['../group___u_c_p___w_o_r_k_e_r.html#gga66be8946dcd33051d40ceca65ba28e22a80fc6d63077023d905d9f3adfb37c50a',1,'ucp_def.h']]], + ['ucp_5fwakeup_5frx_366',['UCP_WAKEUP_RX',['../group___u_c_p___w_o_r_k_e_r.html#gga66be8946dcd33051d40ceca65ba28e22a182a353c533fc335e638e41fdaf7c6b5',1,'ucp_def.h']]], + ['ucp_5fwakeup_5ftag_5frecv_367',['UCP_WAKEUP_TAG_RECV',['../group___u_c_p___w_o_r_k_e_r.html#gga66be8946dcd33051d40ceca65ba28e22a15bd79b8acc9815513dccf43fc350435',1,'ucp_def.h']]], + ['ucp_5fwakeup_5ftag_5fsend_368',['UCP_WAKEUP_TAG_SEND',['../group___u_c_p___w_o_r_k_e_r.html#gga66be8946dcd33051d40ceca65ba28e22a136d0a608b0dcceb731d3022f1cb0e91',1,'ucp_def.h']]], + ['ucp_5fwakeup_5ftx_369',['UCP_WAKEUP_TX',['../group___u_c_p___w_o_r_k_e_r.html#gga66be8946dcd33051d40ceca65ba28e22ad70899effbabed3294c35b9b0f2a747b',1,'ucp_def.h']]], + ['ucp_5fworker_5faddress_5fattr_370',['ucp_worker_address_attr',['../group___u_c_p___w_o_r_k_e_r.html#structucp__worker__address__attr',1,'']]], + ['ucp_5fworker_5faddress_5fattr_5ffield_371',['ucp_worker_address_attr_field',['../group___u_c_p___w_o_r_k_e_r.html#gaadc74e7e271c4e181263115b08bf71c8',1,'ucp.h']]], + ['ucp_5fworker_5faddress_5fattr_5ffield_5fuid_372',['UCP_WORKER_ADDRESS_ATTR_FIELD_UID',['../group___u_c_p___w_o_r_k_e_r.html#ggaadc74e7e271c4e181263115b08bf71c8af5d5293830102fa30e1e26cfbdde0772',1,'ucp.h']]], + ['ucp_5fworker_5faddress_5fattr_5ft_373',['ucp_worker_address_attr_t',['../group___u_c_p___w_o_r_k_e_r.html#ga70e28a0293df12979a6cedd7878ac8d3',1,'ucp.h']]], + ['ucp_5fworker_5faddress_5fflag_5fnet_5fonly_374',['UCP_WORKER_ADDRESS_FLAG_NET_ONLY',['../group___u_c_p___w_o_r_k_e_r.html#ggab1ec638cc4a7498a85017d132492d195af9fe9ee3edc7fe21c889437941bb4117',1,'ucp.h']]], + ['ucp_5fworker_5faddress_5fflags_5ft_375',['ucp_worker_address_flags_t',['../group___u_c_p___w_o_r_k_e_r.html#gab1ec638cc4a7498a85017d132492d195',1,'ucp.h']]], + ['ucp_5fworker_5faddress_5fquery_376',['ucp_worker_address_query',['../group___u_c_p___w_o_r_k_e_r.html#ga0fac7f3d7bf9970e837732557e4277b0',1,'ucp.h']]], + ['ucp_5fworker_5farm_377',['ucp_worker_arm',['../group___u_c_p___w_a_k_e_u_p.html#gadce97937294aae0f5f599d58d68904d6',1,'ucp.h']]], + ['ucp_5fworker_5fattr_378',['ucp_worker_attr',['../group___u_c_p___w_o_r_k_e_r.html#structucp__worker__attr',1,'']]], + ['ucp_5fworker_5fattr_5ffield_379',['ucp_worker_attr_field',['../group___u_c_p___w_o_r_k_e_r.html#gacf03ee299a48c2f9c776516cc82c7194',1,'ucp.h']]], + ['ucp_5fworker_5fattr_5ffield_5faddress_380',['UCP_WORKER_ATTR_FIELD_ADDRESS',['../group___u_c_p___w_o_r_k_e_r.html#ggacf03ee299a48c2f9c776516cc82c7194a0dde53e12c0ab222ddcf2a52984fddd2',1,'ucp.h']]], + ['ucp_5fworker_5fattr_5ffield_5faddress_5fflags_381',['UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS',['../group___u_c_p___w_o_r_k_e_r.html#ggacf03ee299a48c2f9c776516cc82c7194a9b007ce57d2935817f86b4c4c6aad8c9',1,'ucp.h']]], + ['ucp_5fworker_5fattr_5ffield_5fmax_5fam_5fheader_382',['UCP_WORKER_ATTR_FIELD_MAX_AM_HEADER',['../group___u_c_p___w_o_r_k_e_r.html#ggacf03ee299a48c2f9c776516cc82c7194a4ad76742671a6282274e48dc904f145e',1,'ucp.h']]], + ['ucp_5fworker_5fattr_5ffield_5fmax_5finfo_5fstring_383',['UCP_WORKER_ATTR_FIELD_MAX_INFO_STRING',['../group___u_c_p___w_o_r_k_e_r.html#ggacf03ee299a48c2f9c776516cc82c7194aa92fba4ea095cc171b1153b88684213d',1,'ucp.h']]], + ['ucp_5fworker_5fattr_5ffield_5fname_384',['UCP_WORKER_ATTR_FIELD_NAME',['../group___u_c_p___w_o_r_k_e_r.html#ggacf03ee299a48c2f9c776516cc82c7194a806d5f1afd1e673b78888588b03ae95e',1,'ucp.h']]], + ['ucp_5fworker_5fattr_5ffield_5fthread_5fmode_385',['UCP_WORKER_ATTR_FIELD_THREAD_MODE',['../group___u_c_p___w_o_r_k_e_r.html#ggacf03ee299a48c2f9c776516cc82c7194a6d3178929ef9e6570999384991fbd42d',1,'ucp.h']]], + ['ucp_5fworker_5fattr_5ft_386',['ucp_worker_attr_t',['../group___u_c_p___w_o_r_k_e_r.html#gad29a316a83f74775060023852aeec763',1,'ucp.h']]], + ['ucp_5fworker_5fcreate_387',['ucp_worker_create',['../group___u_c_p___w_o_r_k_e_r.html#ga0aec01ed3dad646ca6cd3814b13054b1',1,'ucp.h']]], + ['ucp_5fworker_5fdestroy_388',['ucp_worker_destroy',['../group___u_c_p___w_o_r_k_e_r.html#ga6b6c5bf97d16e7fc4b7c815875e92676',1,'ucp.h']]], + ['ucp_5fworker_5ffence_389',['ucp_worker_fence',['../group___u_c_p___w_o_r_k_e_r.html#ga05b3b5887475966631c62119d64c6182',1,'ucp.h']]], + ['ucp_5fworker_5fflag_5fignore_5frequest_5fleak_390',['UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK',['../group___u_c_p___w_o_r_k_e_r.html#gga11a37476d021e1ad36c1b727373212b4a367a4eddbf55c75a186584fef73a484a',1,'ucp.h']]], + ['ucp_5fworker_5fflags_5ft_391',['ucp_worker_flags_t',['../group___u_c_p___w_o_r_k_e_r.html#ga11a37476d021e1ad36c1b727373212b4',1,'ucp.h']]], + ['ucp_5fworker_5fflush_392',['ucp_worker_flush',['../group___u_c_p___w_o_r_k_e_r.html#gae20b8bc9fbbde208ea266490bde4cbcb',1,'ucp_compat.h']]], + ['ucp_5fworker_5fflush_5fnb_393',['ucp_worker_flush_nb',['../group___u_c_p___w_o_r_k_e_r.html#gac461d1034a3313612243a5829b7e3847',1,'ucp_compat.h']]], + ['ucp_5fworker_5fflush_5fnbx_394',['ucp_worker_flush_nbx',['../group___u_c_p___w_o_r_k_e_r.html#ga57fedddf88d4b777f5c16b39b5fcf52e',1,'ucp.h']]], + ['ucp_5fworker_5fget_5faddress_395',['ucp_worker_get_address',['../group___u_c_p___w_o_r_k_e_r.html#ga41aaa5fb8fbd3de50a39b1fda12977cc',1,'ucp_compat.h']]], + ['ucp_5fworker_5fget_5fefd_396',['ucp_worker_get_efd',['../group___u_c_p___w_a_k_e_u_p.html#gadf849649110fa338fd891548198a578b',1,'ucp.h']]], + ['ucp_5fworker_5fh_397',['ucp_worker_h',['../group___u_c_p___w_o_r_k_e_r.html#ga5fd52efba31d20fc52055bb19270729f',1,'ucp_def.h']]], + ['ucp_5fworker_5fparam_5ffield_5fam_5falignment_398',['UCP_WORKER_PARAM_FIELD_AM_ALIGNMENT',['../group___u_c_p___w_o_r_k_e_r.html#ggadbfc8fd5eaa65351d1617f2f158b80f6a68376de940e85a5ee4ffa6359c5ee2bc',1,'ucp.h']]], + ['ucp_5fworker_5fparam_5ffield_5fclient_5fid_399',['UCP_WORKER_PARAM_FIELD_CLIENT_ID',['../group___u_c_p___w_o_r_k_e_r.html#ggadbfc8fd5eaa65351d1617f2f158b80f6a20b21817e31db3e2ef52b507abbfa0bb',1,'ucp.h']]], + ['ucp_5fworker_5fparam_5ffield_5fcpu_5fmask_400',['UCP_WORKER_PARAM_FIELD_CPU_MASK',['../group___u_c_p___w_o_r_k_e_r.html#ggadbfc8fd5eaa65351d1617f2f158b80f6a0ba499461804b26850d6a530609e228d',1,'ucp.h']]], + ['ucp_5fworker_5fparam_5ffield_5fevent_5ffd_401',['UCP_WORKER_PARAM_FIELD_EVENT_FD',['../group___u_c_p___w_o_r_k_e_r.html#ggadbfc8fd5eaa65351d1617f2f158b80f6ae743c2d23a0d7b0a9a8c6362a7611139',1,'ucp.h']]], + ['ucp_5fworker_5fparam_5ffield_5fevents_402',['UCP_WORKER_PARAM_FIELD_EVENTS',['../group___u_c_p___w_o_r_k_e_r.html#ggadbfc8fd5eaa65351d1617f2f158b80f6ac756667325d053bd1cc11cccf853b0c9',1,'ucp.h']]], + ['ucp_5fworker_5fparam_5ffield_5fflags_403',['UCP_WORKER_PARAM_FIELD_FLAGS',['../group___u_c_p___w_o_r_k_e_r.html#ggadbfc8fd5eaa65351d1617f2f158b80f6a4a43ec7752c45629a3fc229a31d33617',1,'ucp.h']]], + ['ucp_5fworker_5fparam_5ffield_5fname_404',['UCP_WORKER_PARAM_FIELD_NAME',['../group___u_c_p___w_o_r_k_e_r.html#ggadbfc8fd5eaa65351d1617f2f158b80f6a57069c65941e47f35bea0478ddf0a829',1,'ucp.h']]], + ['ucp_5fworker_5fparam_5ffield_5fthread_5fmode_405',['UCP_WORKER_PARAM_FIELD_THREAD_MODE',['../group___u_c_p___w_o_r_k_e_r.html#ggadbfc8fd5eaa65351d1617f2f158b80f6a651598f7340d42cafb0876d918c83ec8',1,'ucp.h']]], + ['ucp_5fworker_5fparam_5ffield_5fuser_5fdata_406',['UCP_WORKER_PARAM_FIELD_USER_DATA',['../group___u_c_p___w_o_r_k_e_r.html#ggadbfc8fd5eaa65351d1617f2f158b80f6a1243d403aeceab36eee6d9cb985e8eb0',1,'ucp.h']]], + ['ucp_5fworker_5fparams_407',['ucp_worker_params',['../group___u_c_p___w_o_r_k_e_r.html#structucp__worker__params',1,'']]], + ['ucp_5fworker_5fparams_5ffield_408',['ucp_worker_params_field',['../group___u_c_p___w_o_r_k_e_r.html#gadbfc8fd5eaa65351d1617f2f158b80f6',1,'ucp.h']]], + ['ucp_5fworker_5fparams_5ft_409',['ucp_worker_params_t',['../group___u_c_p___w_o_r_k_e_r.html#ga06d7269d208e74bbf09fda6b4d3a7109',1,'ucp.h']]], + ['ucp_5fworker_5fprint_5finfo_410',['ucp_worker_print_info',['../group___u_c_p___w_o_r_k_e_r.html#gab746c6cccbfe8d25a892eb415bcedd97',1,'ucp.h']]], + ['ucp_5fworker_5fprogress_411',['ucp_worker_progress',['../group___u_c_p___w_o_r_k_e_r.html#ga340784a8528d4932916651460dc481c0',1,'ucp.h']]], + ['ucp_5fworker_5fquery_412',['ucp_worker_query',['../group___u_c_p___w_o_r_k_e_r.html#gaab678930b792e328eb4f0a17654e5e42',1,'ucp.h']]], + ['ucp_5fworker_5frelease_5faddress_413',['ucp_worker_release_address',['../group___u_c_p___w_o_r_k_e_r.html#ga94260829739496267d2c8d86414b863d',1,'ucp.h']]], + ['ucp_5fworker_5fset_5fam_5fhandler_414',['ucp_worker_set_am_handler',['../group___u_c_p___w_o_r_k_e_r.html#gab8e272749e7a396643caf8775889df4e',1,'ucp_compat.h']]], + ['ucp_5fworker_5fset_5fam_5frecv_5fhandler_415',['ucp_worker_set_am_recv_handler',['../group___u_c_p___w_o_r_k_e_r.html#ga410d5e90c2abc6997924cbf7dee4a1f3',1,'ucp.h']]], + ['ucp_5fworker_5fsignal_416',['ucp_worker_signal',['../group___u_c_p___w_a_k_e_u_p.html#ga4f83bf7620a2ea765fb7167c756b8e48',1,'ucp.h']]], + ['ucp_5fworker_5fwait_417',['ucp_worker_wait',['../group___u_c_p___w_a_k_e_u_p.html#gaa6d1fba4d8a2525b74174a8c344ae9aa',1,'ucp.h']]], + ['ucp_5fworker_5fwait_5fmem_418',['ucp_worker_wait_mem',['../group___u_c_p___w_a_k_e_u_p.html#ga8b9a2ca2795f083e3b1250d698162aa6',1,'ucp.h']]], + ['ucs_20api_419',['Unified Communication Services (UCS) API',['../group___u_c_s___a_p_i.html',1,'']]], + ['ucs_20communication_20resource_420',['UCS Communication Resource',['../group___u_c_s___r_e_s_o_u_r_c_e.html',1,'']]], + ['ucs_5fasync_5fadd_5ftimer_421',['ucs_async_add_timer',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ga11a624df0bff9513f87b273506a8f711',1,'async_fwd.h']]], + ['ucs_5fasync_5fcontext_5fcreate_422',['ucs_async_context_create',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ga8c3ad862fef1d35af708628d778a5a5b',1,'async_fwd.h']]], + ['ucs_5fasync_5fcontext_5fdestroy_423',['ucs_async_context_destroy',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ga65db07fbee18ab2bd46a738c89ccc8f7',1,'async_fwd.h']]], + ['ucs_5fasync_5fevent_5fcb_5ft_424',['ucs_async_event_cb_t',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ga6175fd675274497a9d714623a6ffba6f',1,'async_fwd.h']]], + ['ucs_5fasync_5fmodify_5fhandler_425',['ucs_async_modify_handler',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ga46ac2384234000408d56065a8e43fc5a',1,'async_fwd.h']]], + ['ucs_5fasync_5fpoll_426',['ucs_async_poll',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ga41fb5f0e0719d9b6d2c07358c6a9e6ae',1,'async_fwd.h']]], + ['ucs_5fasync_5fremove_5fhandler_427',['ucs_async_remove_handler',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ga7253f7d2762b8d288e78d573f9948aef',1,'async_fwd.h']]], + ['ucs_5fasync_5fset_5fevent_5fhandler_428',['ucs_async_set_event_handler',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ga4bd1833c4a212330cbdff7605858819c',1,'async_fwd.h']]], + ['ucs_5fcallbackq_429',['ucs_callbackq',['../namespace_3global_scope_4.html#structucs__callbackq',1,'']]], + ['ucs_5fcallbackq_5felem_430',['ucs_callbackq_elem',['../namespace_3global_scope_4.html#structucs__callbackq__elem',1,'']]], + ['ucs_5fcallbackq_5fflag_5ffast_431',['UCS_CALLBACKQ_FLAG_FAST',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ggaa693580c739b1ba94bd6218d00222110a05c5239629fdbfb4dc63a2b354b93e93',1,'callbackq_compat.h']]], + ['ucs_5fcallbackq_5fflag_5foneshot_432',['UCS_CALLBACKQ_FLAG_ONESHOT',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ggaa693580c739b1ba94bd6218d00222110aabec96aecc786be2edb8f16c5034c493',1,'callbackq_compat.h']]], + ['ucs_5fcallbackq_5fflags_433',['ucs_callbackq_flags',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gaa693580c739b1ba94bd6218d00222110',1,'callbackq_compat.h']]], + ['ucs_5fconfig_5fallow_5flist_5ft_434',['ucs_config_allow_list_t',['../namespace_3global_scope_4.html#structucs__config__allow__list__t',1,'']]], + ['ucs_5ferr_5falready_5fexists_435',['UCS_ERR_ALREADY_EXISTS',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a8295b85b654e3145ee08a94714832112',1,'status.h']]], + ['ucs_5ferr_5fbuffer_5ftoo_5fsmall_436',['UCS_ERR_BUFFER_TOO_SMALL',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a2ab3b7e6c60cb0afe80c2e11cc39122f',1,'status.h']]], + ['ucs_5ferr_5fbusy_437',['UCS_ERR_BUSY',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a331d8719f76965a4514684c570110105',1,'status.h']]], + ['ucs_5ferr_5fcanceled_438',['UCS_ERR_CANCELED',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a446ce3cf260eab2465e9f7adfbad1f11',1,'status.h']]], + ['ucs_5ferr_5fconnection_5freset_439',['UCS_ERR_CONNECTION_RESET',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a3845462922a8704ddca8be0dafc47cd5',1,'status.h']]], + ['ucs_5ferr_5fendpoint_5ftimeout_440',['UCS_ERR_ENDPOINT_TIMEOUT',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558adc9adfec2d408b4efd95be36dcb119cf',1,'status.h']]], + ['ucs_5ferr_5fexceeds_5flimit_441',['UCS_ERR_EXCEEDS_LIMIT',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a45d1cd8512f1ba4391f91b0bc399f1fb',1,'status.h']]], + ['ucs_5ferr_5ffirst_5fendpoint_5ffailure_442',['UCS_ERR_FIRST_ENDPOINT_FAILURE',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a2441db0c09803ed41453968577e29446',1,'status.h']]], + ['ucs_5ferr_5ffirst_5flink_5ffailure_443',['UCS_ERR_FIRST_LINK_FAILURE',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a8356f94996c7759a785f8d508ff58779',1,'status.h']]], + ['ucs_5ferr_5finvalid_5faddr_444',['UCS_ERR_INVALID_ADDR',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558aaebc6a3a7f1626b431f80ff66e9a4922',1,'status.h']]], + ['ucs_5ferr_5finvalid_5fparam_445',['UCS_ERR_INVALID_PARAM',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558ab5a5c5278c83f957a096444de28db597',1,'status.h']]], + ['ucs_5ferr_5fio_5ferror_446',['UCS_ERR_IO_ERROR',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558aaaf39ceea715057fdec5736443e0265b',1,'status.h']]], + ['ucs_5ferr_5flast_447',['UCS_ERR_LAST',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a359c2fe5ffba5911f340ec8a750917bb',1,'status.h']]], + ['ucs_5ferr_5flast_5fendpoint_5ffailure_448',['UCS_ERR_LAST_ENDPOINT_FAILURE',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558aa54339cfd8cefc96aa4e9d5d0b824284',1,'status.h']]], + ['ucs_5ferr_5flast_5flink_5ffailure_449',['UCS_ERR_LAST_LINK_FAILURE',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a9e4aac3283309260e9b8f34bca72209c',1,'status.h']]], + ['ucs_5ferr_5fmessage_5ftruncated_450',['UCS_ERR_MESSAGE_TRUNCATED',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558aef3defd5d754266db882e079fad7c544',1,'status.h']]], + ['ucs_5ferr_5fno_5fdevice_451',['UCS_ERR_NO_DEVICE',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558af42564cbfb39953294f80d782404a3bf',1,'status.h']]], + ['ucs_5ferr_5fno_5felem_452',['UCS_ERR_NO_ELEM',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558ab67faa1abcd824b5bb47a094491524ba',1,'status.h']]], + ['ucs_5ferr_5fno_5fmemory_453',['UCS_ERR_NO_MEMORY',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a9919ffd4eaf870612c4aa63df65ae0a6',1,'status.h']]], + ['ucs_5ferr_5fno_5fmessage_454',['UCS_ERR_NO_MESSAGE',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a1bbd2445646883a1ef758fe2ef75e586',1,'status.h']]], + ['ucs_5ferr_5fno_5fprogress_455',['UCS_ERR_NO_PROGRESS',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558aa3e6111410197f82888c6527258a5149',1,'status.h']]], + ['ucs_5ferr_5fno_5fresource_456',['UCS_ERR_NO_RESOURCE',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a83fc93632e7b3e3251410985aab27edc',1,'status.h']]], + ['ucs_5ferr_5fnot_5fconnected_457',['UCS_ERR_NOT_CONNECTED',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a19ed4a30ff1b25ffdc00adeb8cd211fa',1,'status.h']]], + ['ucs_5ferr_5fnot_5fimplemented_458',['UCS_ERR_NOT_IMPLEMENTED',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a623f715116a8d8986c737bf626e956b4',1,'status.h']]], + ['ucs_5ferr_5fout_5fof_5frange_459',['UCS_ERR_OUT_OF_RANGE',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a7ce30c5ce3f9b06ed9d51a618dc76920',1,'status.h']]], + ['ucs_5ferr_5frejected_460',['UCS_ERR_REJECTED',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a7ebfa416cd741e37ec1a0371feaaa10a',1,'status.h']]], + ['ucs_5ferr_5fshmem_5fsegment_461',['UCS_ERR_SHMEM_SEGMENT',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a5cfb884e5be55df1f4acf19990f4029d',1,'status.h']]], + ['ucs_5ferr_5fsome_5fconnects_5ffailed_462',['UCS_ERR_SOME_CONNECTS_FAILED',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558aa74d2a7cf7aeeaaaff6724bf0d700743',1,'status.h']]], + ['ucs_5ferr_5ftimed_5fout_463',['UCS_ERR_TIMED_OUT',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a28655a75087757c2b6c28adcae5562c7',1,'status.h']]], + ['ucs_5ferr_5funreachable_464',['UCS_ERR_UNREACHABLE',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558ab56647f308360ef22316ed42a700e057',1,'status.h']]], + ['ucs_5ferr_5funsupported_465',['UCS_ERR_UNSUPPORTED',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a252c38290855ceaf849c04b7fa52dc23',1,'status.h']]], + ['ucs_5finprogress_466',['UCS_INPROGRESS',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a77aa02620851779729e4ad6ceb41f84a',1,'status.h']]], + ['ucs_5flog_5fcomponent_5fconfig_467',['ucs_log_component_config',['../namespace_3global_scope_4.html#structucs__log__component__config',1,'']]], + ['ucs_5fmemory_5ftype_468',['ucs_memory_type',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ga5cfcc524f5dc586101a3e7caff8d982d',1,'memory_type.h']]], + ['ucs_5fmemory_5ftype_5fcuda_469',['UCS_MEMORY_TYPE_CUDA',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga5cfcc524f5dc586101a3e7caff8d982dafc4cb4732ebd0539e364bb6a4466c2fc',1,'memory_type.h']]], + ['ucs_5fmemory_5ftype_5fcuda_5fmanaged_470',['UCS_MEMORY_TYPE_CUDA_MANAGED',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga5cfcc524f5dc586101a3e7caff8d982dab61ccfc729e22de60f4831cc60ef1e16',1,'memory_type.h']]], + ['ucs_5fmemory_5ftype_5fhost_471',['UCS_MEMORY_TYPE_HOST',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga5cfcc524f5dc586101a3e7caff8d982da4bebe1325d9a3be9b5821bec4f78a55f',1,'memory_type.h']]], + ['ucs_5fmemory_5ftype_5flast_472',['UCS_MEMORY_TYPE_LAST',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga5cfcc524f5dc586101a3e7caff8d982da6105aba9983dc25cbf7cbf4d03f655d7',1,'memory_type.h']]], + ['ucs_5fmemory_5ftype_5frdma_473',['UCS_MEMORY_TYPE_RDMA',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga5cfcc524f5dc586101a3e7caff8d982da5c02a356fb482a5d0308d8ad0de0854c',1,'memory_type.h']]], + ['ucs_5fmemory_5ftype_5frocm_474',['UCS_MEMORY_TYPE_ROCM',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga5cfcc524f5dc586101a3e7caff8d982da84a165376983da6abbdf0e9cc7d3d546',1,'memory_type.h']]], + ['ucs_5fmemory_5ftype_5frocm_5fmanaged_475',['UCS_MEMORY_TYPE_ROCM_MANAGED',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga5cfcc524f5dc586101a3e7caff8d982dabc097618d75594ac6df460592561cd77',1,'memory_type.h']]], + ['ucs_5fmemory_5ftype_5ft_476',['ucs_memory_type_t',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ga0da130a6b3524f3f7642b76f698903c7',1,'memory_type.h']]], + ['ucs_5fmemory_5ftype_5funknown_477',['UCS_MEMORY_TYPE_UNKNOWN',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga5cfcc524f5dc586101a3e7caff8d982dab0e5609f442bf33d5447c6e8b5928215',1,'memory_type.h']]], + ['ucs_5fmemory_5ftype_5fze_5fdevice_478',['UCS_MEMORY_TYPE_ZE_DEVICE',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga5cfcc524f5dc586101a3e7caff8d982da37ae904cb9338fee541fb3ed807b1112',1,'memory_type.h']]], + ['ucs_5fmemory_5ftype_5fze_5fhost_479',['UCS_MEMORY_TYPE_ZE_HOST',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga5cfcc524f5dc586101a3e7caff8d982daa5d7e1db9e767486bddd9beb3c797f45',1,'memory_type.h']]], + ['ucs_5fmemory_5ftype_5fze_5fmanaged_480',['UCS_MEMORY_TYPE_ZE_MANAGED',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga5cfcc524f5dc586101a3e7caff8d982da194795ec217f5ef6c3e8faafc4f09e34',1,'memory_type.h']]], + ['ucs_5fok_481',['UCS_OK',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a1a7fbae02ac33fb94f519c7c773f419a',1,'status.h']]], + ['ucs_5fsock_5faddr_482',['ucs_sock_addr',['../group___u_c_s___r_e_s_o_u_r_c_e.html#structucs__sock__addr',1,'']]], + ['ucs_5fsock_5faddr_5ft_483',['ucs_sock_addr_t',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ga66409ecb6655d099e1375e1225475601',1,'types.h']]], + ['ucs_5fstatus_5fptr_5ft_484',['ucs_status_ptr_t',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gaf4381d25f2fb0cf02f996f3e0729ed62',1,'status.h']]], + ['ucs_5fstatus_5ft_485',['ucs_status_t',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ga88ca72d7294772e7d2edb70a2df15558',1,'status.h']]], + ['ucs_5fthread_5fmode_5flast_486',['UCS_THREAD_MODE_LAST',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga40e9f363c389e702ad9920f5d52525ceaf7b465a8a13f216fd6c35a828a8c7986',1,'thread_mode.h']]], + ['ucs_5fthread_5fmode_5fmulti_487',['UCS_THREAD_MODE_MULTI',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga40e9f363c389e702ad9920f5d52525cea8f8e252ce479d99c7cdc708321534904',1,'thread_mode.h']]], + ['ucs_5fthread_5fmode_5fserialized_488',['UCS_THREAD_MODE_SERIALIZED',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga40e9f363c389e702ad9920f5d52525cea95d2ddb2144f8cfebfe305be13bd6776',1,'thread_mode.h']]], + ['ucs_5fthread_5fmode_5fsingle_489',['UCS_THREAD_MODE_SINGLE',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga40e9f363c389e702ad9920f5d52525ceabc2f71e39a3527f7abe6a1c47f0a5a25',1,'thread_mode.h']]], + ['ucs_5fthread_5fmode_5ft_490',['ucs_thread_mode_t',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ga40e9f363c389e702ad9920f5d52525ce',1,'thread_mode.h']]], + ['ucs_5ftime_5ft_491',['ucs_time_t',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ga69fbc58f4523686b459ee0fff60b5197',1,'time_def.h']]], + ['uct_20active_20messages_492',['UCT Active messages',['../group___u_c_t___a_m.html',1,'']]], + ['uct_20api_493',['Unified Communication Transport (UCT) API',['../group___u_c_t___a_p_i.html',1,'']]], + ['uct_20atomic_20operations_494',['UCT Atomic operations',['../group___u_c_t___a_m_o.html',1,'']]], + ['uct_20client_20server_20operations_495',['UCT client-server operations',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html',1,'']]], + ['uct_20communication_20context_496',['UCT Communication Context',['../group___u_c_t___c_o_n_t_e_x_t.html',1,'']]], + ['uct_20communication_20resource_497',['UCT Communication Resource',['../group___u_c_t___r_e_s_o_u_r_c_e.html',1,'']]], + ['uct_20interface_20for_20asynchronous_20event_20capabilities_498',['UCT interface for asynchronous event capabilities',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___e_v_e_n_t___c_a_p.html',1,'']]], + ['uct_20interface_20operations_20and_20capabilities_499',['UCT interface operations and capabilities',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html',1,'']]], + ['uct_20memory_20domain_500',['UCT Memory Domain',['../group___u_c_t___m_d.html',1,'']]], + ['uct_20remote_20memory_20access_20operations_501',['UCT Remote memory access operations',['../group___u_c_t___r_m_a.html',1,'']]], + ['uct_20tag_20matching_20operations_502',['UCT Tag matching operations',['../group___u_c_t___t_a_g.html',1,'']]], + ['uct_5falloc_5fmethod_5fdefault_503',['UCT_ALLOC_METHOD_DEFAULT',['../group___u_c_t___c_o_n_t_e_x_t.html#gga019362c62f98ff7935b05c512eb0ab09aee732738d1b13520beeefda125e40665',1,'uct.h']]], + ['uct_5falloc_5fmethod_5fheap_504',['UCT_ALLOC_METHOD_HEAP',['../group___u_c_t___c_o_n_t_e_x_t.html#gga019362c62f98ff7935b05c512eb0ab09ab026ce58725388c3dca9d1a5d152250c',1,'uct.h']]], + ['uct_5falloc_5fmethod_5fhuge_505',['UCT_ALLOC_METHOD_HUGE',['../group___u_c_t___c_o_n_t_e_x_t.html#gga019362c62f98ff7935b05c512eb0ab09ad542185f2c8f7a7ff89f3a1b0581439d',1,'uct.h']]], + ['uct_5falloc_5fmethod_5flast_506',['UCT_ALLOC_METHOD_LAST',['../group___u_c_t___c_o_n_t_e_x_t.html#gga019362c62f98ff7935b05c512eb0ab09a3b9f6f050e19d2d85425d2c87d4bdbb8',1,'uct.h']]], + ['uct_5falloc_5fmethod_5fmd_507',['UCT_ALLOC_METHOD_MD',['../group___u_c_t___c_o_n_t_e_x_t.html#gga019362c62f98ff7935b05c512eb0ab09a2036e15fb7da79b6cb7af6e8bda700c7',1,'uct.h']]], + ['uct_5falloc_5fmethod_5fmmap_508',['UCT_ALLOC_METHOD_MMAP',['../group___u_c_t___c_o_n_t_e_x_t.html#gga019362c62f98ff7935b05c512eb0ab09a496187eba67f49a27e0017a4290505cc',1,'uct.h']]], + ['uct_5falloc_5fmethod_5ft_509',['uct_alloc_method_t',['../group___u_c_t___c_o_n_t_e_x_t.html#ga019362c62f98ff7935b05c512eb0ab09',1,'uct.h']]], + ['uct_5falloc_5fmethod_5fthp_510',['UCT_ALLOC_METHOD_THP',['../group___u_c_t___c_o_n_t_e_x_t.html#gga019362c62f98ff7935b05c512eb0ab09ae4e651614b0a020b351b94f4a589fd07',1,'uct.h']]], + ['uct_5fallocated_5fmemory_511',['uct_allocated_memory',['../group___u_c_t___m_d.html#structuct__allocated__memory',1,'']]], + ['uct_5fallocated_5fmemory_5ft_512',['uct_allocated_memory_t',['../group___u_c_t___m_d.html#ga3a11b017769f9a1cc5c1be535a7782fe',1,'uct.h']]], + ['uct_5fam_5fcallback_5ft_513',['uct_am_callback_t',['../group___u_c_t___a_m.html#gaeeaac1f152fc82d237e286a663e83d04',1,'uct_def.h']]], + ['uct_5fam_5ftrace_5ftype_514',['uct_am_trace_type',['../group___u_c_t___a_m.html#gacbe4c7fdcaf25cd7bd004a3c2d54f067',1,'uct_def.h']]], + ['uct_5fam_5ftrace_5ftype_5flast_515',['UCT_AM_TRACE_TYPE_LAST',['../group___u_c_t___a_m.html#ggacbe4c7fdcaf25cd7bd004a3c2d54f067a74589340125a9634d4f1cba73da0b0a1',1,'uct_def.h']]], + ['uct_5fam_5ftrace_5ftype_5frecv_516',['UCT_AM_TRACE_TYPE_RECV',['../group___u_c_t___a_m.html#ggacbe4c7fdcaf25cd7bd004a3c2d54f067a02b0b980c43b7d66823bb0169d03f98f',1,'uct_def.h']]], + ['uct_5fam_5ftrace_5ftype_5frecv_5fdrop_517',['UCT_AM_TRACE_TYPE_RECV_DROP',['../group___u_c_t___a_m.html#ggacbe4c7fdcaf25cd7bd004a3c2d54f067aa2125f63177d657998f381a60e60e8fd',1,'uct_def.h']]], + ['uct_5fam_5ftrace_5ftype_5fsend_518',['UCT_AM_TRACE_TYPE_SEND',['../group___u_c_t___a_m.html#ggacbe4c7fdcaf25cd7bd004a3c2d54f067aef58a6db54a952e5e34edd91325a83ed',1,'uct_def.h']]], + ['uct_5fam_5ftrace_5ftype_5fsend_5fdrop_519',['UCT_AM_TRACE_TYPE_SEND_DROP',['../group___u_c_t___a_m.html#ggacbe4c7fdcaf25cd7bd004a3c2d54f067a70335ae779aaa99685d6842f9e85a6db',1,'uct_def.h']]], + ['uct_5fam_5ftrace_5ftype_5ft_520',['uct_am_trace_type_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga8d195c0008dbf59eb931504c3b2590fc',1,'uct_def.h']]], + ['uct_5fam_5ftracer_5ft_521',['uct_am_tracer_t',['../group___u_c_t___a_m.html#gae089079bf0edee87f4f8be3edc0164cb',1,'uct_def.h']]], + ['uct_5fasync_5fevent_5fcb_5ft_522',['uct_async_event_cb_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gafb7251839b08fac157af1c9b85430e16',1,'uct_def.h']]], + ['uct_5fcb_5fflag_5fasync_523',['UCT_CB_FLAG_ASYNC',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ggaca1e07b69024fec26746e3a19b4de9d0a2de3b7622afcabd645878e0540f062aa',1,'uct.h']]], + ['uct_5fcb_5fflag_5freserved_524',['UCT_CB_FLAG_RESERVED',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ggaca1e07b69024fec26746e3a19b4de9d0a93c65c155511b258449363ea8cad8f7f',1,'uct.h']]], + ['uct_5fcb_5fflags_525',['uct_cb_flags',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gaca1e07b69024fec26746e3a19b4de9d0',1,'uct.h']]], + ['uct_5fcb_5fparam_5fflag_5fdesc_526',['UCT_CB_PARAM_FLAG_DESC',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga36bfc11c722b01a11e1949e8329262c9a741f6a62c34d5484fa6999b1e097e42a',1,'uct_def.h']]], + ['uct_5fcb_5fparam_5fflag_5ffirst_527',['UCT_CB_PARAM_FLAG_FIRST',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga36bfc11c722b01a11e1949e8329262c9aef5b11372c919dfcdc55602d48e67135',1,'uct_def.h']]], + ['uct_5fcb_5fparam_5fflag_5fmore_528',['UCT_CB_PARAM_FLAG_MORE',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga36bfc11c722b01a11e1949e8329262c9a2d9bb153789aeae6d1ecf0173cf483e9',1,'uct_def.h']]], + ['uct_5fcb_5fparam_5fflags_529',['uct_cb_param_flags',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga36bfc11c722b01a11e1949e8329262c9',1,'uct_def.h']]], + ['uct_5fcm_5fattr_530',['uct_cm_attr',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__cm__attr',1,'']]], + ['uct_5fcm_5fattr_5ffield_531',['uct_cm_attr_field',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga2b308be867e1e13dcb7d941b07835431',1,'uct.h']]], + ['uct_5fcm_5fattr_5ffield_5fmax_5fconn_5fpriv_532',['UCT_CM_ATTR_FIELD_MAX_CONN_PRIV',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga2b308be867e1e13dcb7d941b07835431a2521b69fbc5dd8dff615878729572978',1,'uct.h']]], + ['uct_5fcm_5fattr_5ft_533',['uct_cm_attr_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gac97ab5f8fc69893d70fd3dc374687a71',1,'uct_def.h']]], + ['uct_5fcm_5fclient_5fep_5fconn_5fnotify_534',['uct_cm_client_ep_conn_notify',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga45664fb4113fa1f2ddad4fc181e0d62a',1,'uct.h']]], + ['uct_5fcm_5fclose_535',['uct_cm_close',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga2d4b7947a338ad8721390f8c292a4dfa',1,'uct.h']]], + ['uct_5fcm_5fconfig_5fread_536',['uct_cm_config_read',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gaec01265a1d6fbbeef49ca3bdb5bbf2b4',1,'uct.h']]], + ['uct_5fcm_5fconfig_5ft_537',['uct_cm_config_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga98237d6d7f9a212449f6469d0d0eefd9',1,'uct_def.h']]], + ['uct_5fcm_5fep_5fclient_5fconnect_5fargs_538',['uct_cm_ep_client_connect_args',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__cm__ep__client__connect__args',1,'']]], + ['uct_5fcm_5fep_5fclient_5fconnect_5fargs_5ffield_539',['uct_cm_ep_client_connect_args_field',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga6746759cc1850c6e260fca7e3de008ad',1,'uct_def.h']]], + ['uct_5fcm_5fep_5fclient_5fconnect_5fargs_5ffield_5fremote_5fdata_540',['UCT_CM_EP_CLIENT_CONNECT_ARGS_FIELD_REMOTE_DATA',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga6746759cc1850c6e260fca7e3de008ada9657c720a60df0b6b89bd9b019ac01cc',1,'uct_def.h']]], + ['uct_5fcm_5fep_5fclient_5fconnect_5fargs_5ffield_5fstatus_541',['UCT_CM_EP_CLIENT_CONNECT_ARGS_FIELD_STATUS',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga6746759cc1850c6e260fca7e3de008ada21ad19d697d3ff1b5a3acb0fcb4a7cfc',1,'uct_def.h']]], + ['uct_5fcm_5fep_5fclient_5fconnect_5fargs_5ft_542',['uct_cm_ep_client_connect_args_t',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga933f702714bc1ebb3d172ef74f2cfdab',1,'uct_def.h']]], + ['uct_5fcm_5fep_5fclient_5fconnect_5fcallback_5ft_543',['uct_cm_ep_client_connect_callback_t',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gad221f8e9528614b0688ea3097cc0c2bc',1,'uct_def.h']]], + ['uct_5fcm_5fep_5fpriv_5fdata_5fpack_5fargs_544',['uct_cm_ep_priv_data_pack_args',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__cm__ep__priv__data__pack__args',1,'']]], + ['uct_5fcm_5fep_5fpriv_5fdata_5fpack_5fargs_5ffield_545',['uct_cm_ep_priv_data_pack_args_field',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga405dee8e814ebc33f14c5f44e80d008c',1,'uct_def.h']]], + ['uct_5fcm_5fep_5fpriv_5fdata_5fpack_5fargs_5ffield_5fdevice_5fname_546',['UCT_CM_EP_PRIV_DATA_PACK_ARGS_FIELD_DEVICE_NAME',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga405dee8e814ebc33f14c5f44e80d008ca39e1834470a48aaaa5b9e6fbef11b5f1',1,'uct_def.h']]], + ['uct_5fcm_5fep_5fpriv_5fdata_5fpack_5fargs_5ft_547',['uct_cm_ep_priv_data_pack_args_t',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga72c3431a351c6f4defb61368c0ec7806',1,'uct_def.h']]], + ['uct_5fcm_5fep_5fpriv_5fdata_5fpack_5fcallback_5ft_548',['uct_cm_ep_priv_data_pack_callback_t',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga4eb772a7b4af18ae62b546bcd85250ef',1,'uct_def.h']]], + ['uct_5fcm_5fep_5fresolve_5fargs_549',['uct_cm_ep_resolve_args',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__cm__ep__resolve__args',1,'']]], + ['uct_5fcm_5fep_5fresolve_5fargs_5ffield_550',['uct_cm_ep_resolve_args_field',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga6c342b6c43e178b73f567bd0fb253e62',1,'uct_def.h']]], + ['uct_5fcm_5fep_5fresolve_5fargs_5ffield_5fdev_5fname_551',['UCT_CM_EP_RESOLVE_ARGS_FIELD_DEV_NAME',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga6c342b6c43e178b73f567bd0fb253e62ab617fac24c5437d6acd095c84eb0a6a1',1,'uct_def.h']]], + ['uct_5fcm_5fep_5fresolve_5fargs_5ffield_5fstatus_552',['UCT_CM_EP_RESOLVE_ARGS_FIELD_STATUS',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga6c342b6c43e178b73f567bd0fb253e62ad7cc5818b0812933a99f25378be77cb5',1,'uct_def.h']]], + ['uct_5fcm_5fep_5fresolve_5fargs_5ft_553',['uct_cm_ep_resolve_args_t',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gaab6b697d57f77c7e5ab8665cb66f138c',1,'uct_def.h']]], + ['uct_5fcm_5fep_5fresolve_5fcallback_5ft_554',['uct_cm_ep_resolve_callback_t',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gad96e813463556ed4d5e9258b4ceee78d',1,'uct_def.h']]], + ['uct_5fcm_5fep_5fserver_5fconn_5fnotify_5fargs_555',['uct_cm_ep_server_conn_notify_args',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__cm__ep__server__conn__notify__args',1,'']]], + ['uct_5fcm_5fep_5fserver_5fconn_5fnotify_5fargs_5ffield_556',['uct_cm_ep_server_conn_notify_args_field',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gaf1cffc53a9b63fb98a77503917f5fd79',1,'uct_def.h']]], + ['uct_5fcm_5fep_5fserver_5fconn_5fnotify_5fargs_5ffield_5fstatus_557',['UCT_CM_EP_SERVER_CONN_NOTIFY_ARGS_FIELD_STATUS',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ggaf1cffc53a9b63fb98a77503917f5fd79a84648af7a2470a6869bd8d05e894b0a5',1,'uct_def.h']]], + ['uct_5fcm_5fep_5fserver_5fconn_5fnotify_5fargs_5ft_558',['uct_cm_ep_server_conn_notify_args_t',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gadfa5264d4edfe19fc3dd6d1ceed218d5',1,'uct_def.h']]], + ['uct_5fcm_5fep_5fserver_5fconn_5fnotify_5fcallback_5ft_559',['uct_cm_ep_server_conn_notify_callback_t',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gaaffce62ed4f37b665a71a88f37cbfec6',1,'uct_def.h']]], + ['uct_5fcm_5fh_560',['uct_cm_h',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gab88b0c85922e6c157fae605a42647dd7',1,'uct_def.h']]], + ['uct_5fcm_5flistener_5fconn_5frequest_5fargs_561',['uct_cm_listener_conn_request_args',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__cm__listener__conn__request__args',1,'']]], + ['uct_5fcm_5flistener_5fconn_5frequest_5fargs_5ffield_562',['uct_cm_listener_conn_request_args_field',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga9e97a59a0593244e730734d592b642df',1,'uct_def.h']]], + ['uct_5fcm_5flistener_5fconn_5frequest_5fargs_5ffield_5fclient_5faddr_563',['UCT_CM_LISTENER_CONN_REQUEST_ARGS_FIELD_CLIENT_ADDR',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga9e97a59a0593244e730734d592b642dfae396fa228bfaf18e554eaa2e91f19333',1,'uct_def.h']]], + ['uct_5fcm_5flistener_5fconn_5frequest_5fargs_5ffield_5fconn_5frequest_564',['UCT_CM_LISTENER_CONN_REQUEST_ARGS_FIELD_CONN_REQUEST',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga9e97a59a0593244e730734d592b642dfadf438afd4aa996a342ddb1e69894882b',1,'uct_def.h']]], + ['uct_5fcm_5flistener_5fconn_5frequest_5fargs_5ffield_5fdev_5fname_565',['UCT_CM_LISTENER_CONN_REQUEST_ARGS_FIELD_DEV_NAME',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga9e97a59a0593244e730734d592b642dfab3c57e4db473538c60b5feaf094833d9',1,'uct_def.h']]], + ['uct_5fcm_5flistener_5fconn_5frequest_5fargs_5ffield_5fremote_5fdata_566',['UCT_CM_LISTENER_CONN_REQUEST_ARGS_FIELD_REMOTE_DATA',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga9e97a59a0593244e730734d592b642dfab87a184e4a1684ba337aaff9547c2753',1,'uct_def.h']]], + ['uct_5fcm_5flistener_5fconn_5frequest_5fargs_5ft_567',['uct_cm_listener_conn_request_args_t',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga7268a2ca363cb04b529026b99dd56da0',1,'uct_def.h']]], + ['uct_5fcm_5flistener_5fconn_5frequest_5fcallback_5ft_568',['uct_cm_listener_conn_request_callback_t',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga8c150a87e614379b42283be7e91b0dec',1,'uct_def.h']]], + ['uct_5fcm_5fopen_569',['uct_cm_open',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gaa388b4d447f77dbb9dcc45f4fff4e9b9',1,'uct.h']]], + ['uct_5fcm_5fquery_570',['uct_cm_query',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga4a47044a01e1cefbe7a1fd6a7e9a6857',1,'uct.h']]], + ['uct_5fcm_5fremote_5fdata_571',['uct_cm_remote_data',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__cm__remote__data',1,'']]], + ['uct_5fcm_5fremote_5fdata_5ffield_572',['uct_cm_remote_data_field',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga3e023485a86ad4092497ffe58cddef37',1,'uct_def.h']]], + ['uct_5fcm_5fremote_5fdata_5ffield_5fconn_5fpriv_5fdata_573',['UCT_CM_REMOTE_DATA_FIELD_CONN_PRIV_DATA',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga3e023485a86ad4092497ffe58cddef37a86ed1d1f02236dd9467176b2130fba32',1,'uct_def.h']]], + ['uct_5fcm_5fremote_5fdata_5ffield_5fconn_5fpriv_5fdata_5flength_574',['UCT_CM_REMOTE_DATA_FIELD_CONN_PRIV_DATA_LENGTH',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga3e023485a86ad4092497ffe58cddef37a550619037bb2bad0ad2a46dfe68f6cc3',1,'uct_def.h']]], + ['uct_5fcm_5fremote_5fdata_5ffield_5fdev_5faddr_575',['UCT_CM_REMOTE_DATA_FIELD_DEV_ADDR',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga3e023485a86ad4092497ffe58cddef37af5ba4b8423006af3e3b0342b9cea533b',1,'uct_def.h']]], + ['uct_5fcm_5fremote_5fdata_5ffield_5fdev_5faddr_5flength_576',['UCT_CM_REMOTE_DATA_FIELD_DEV_ADDR_LENGTH',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga3e023485a86ad4092497ffe58cddef37a22ac6bf59b6b07381c25ba808254092b',1,'uct_def.h']]], + ['uct_5fcm_5fremote_5fdata_5ft_577',['uct_cm_remote_data_t',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga2458f8dde2369d49eec3453fb6722674',1,'uct_def.h']]], + ['uct_5fcm_5ft_578',['uct_cm_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gaf0ad3383e80500c7b5f1ac9a93ca1525',1,'uct_def.h']]], + ['uct_5fcompletion_579',['uct_completion',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__completion',1,'']]], + ['uct_5fcompletion_5fcallback_5ft_580',['uct_completion_callback_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gafe8643ddb601908eab1d92ee2f012f8c',1,'uct_def.h']]], + ['uct_5fcompletion_5ft_581',['uct_completion_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga1c5e511c1cbe1734b317f7688a5cdb90',1,'uct_def.h']]], + ['uct_5fcompletion_5fupdate_5fstatus_582',['uct_completion_update_status',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga6d517ca850e8bb367939139b6b24cc87',1,'uct.h']]], + ['uct_5fcomponent_5fattr_583',['uct_component_attr',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__component__attr',1,'']]], + ['uct_5fcomponent_5fattr_5ffield_584',['uct_component_attr_field',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga246ded5e20aa09c590673c771c74b68b',1,'uct.h']]], + ['uct_5fcomponent_5fattr_5ffield_5fflags_585',['UCT_COMPONENT_ATTR_FIELD_FLAGS',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga246ded5e20aa09c590673c771c74b68baf29cd3b384fbddeccc937d42abbd6b41',1,'uct.h']]], + ['uct_5fcomponent_5fattr_5ffield_5fmd_5fresource_5fcount_586',['UCT_COMPONENT_ATTR_FIELD_MD_RESOURCE_COUNT',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga246ded5e20aa09c590673c771c74b68ba25d44baf92c5c7673dbbf44de35fdc84',1,'uct.h']]], + ['uct_5fcomponent_5fattr_5ffield_5fmd_5fresources_587',['UCT_COMPONENT_ATTR_FIELD_MD_RESOURCES',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga246ded5e20aa09c590673c771c74b68ba4ffc9f65e0b3d7cb07db745e7e61ba47',1,'uct.h']]], + ['uct_5fcomponent_5fattr_5ffield_5fname_588',['UCT_COMPONENT_ATTR_FIELD_NAME',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga246ded5e20aa09c590673c771c74b68ba45f30f9f196f5f75309882d48c435a26',1,'uct.h']]], + ['uct_5fcomponent_5fattr_5ft_589',['uct_component_attr_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga09ca059b9929301d94b90194f1631fd0',1,'uct.h']]], + ['uct_5fcomponent_5fflag_5fcm_590',['UCT_COMPONENT_FLAG_CM',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ggadc29c2ff13d900c2f185ee95427fb06cac3f00c23358624b53732e413433f1d8d',1,'uct.h']]], + ['uct_5fcomponent_5fflag_5frkey_5fptr_591',['UCT_COMPONENT_FLAG_RKEY_PTR',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ggadc29c2ff13d900c2f185ee95427fb06cab20fb035dcd4f2aa6eee77dd501880c3',1,'uct.h']]], + ['uct_5fcomponent_5fh_592',['uct_component_h',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga970f9dcfebb42f0209c2c7e23eca99f6',1,'uct_def.h']]], + ['uct_5fcomponent_5fquery_593',['uct_component_query',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga437597d034328ce061df61647add1891',1,'uct.h']]], + ['uct_5fconfig_5fget_594',['uct_config_get',['../group___u_c_t___c_o_n_t_e_x_t.html#ga711e3a72f282ad7d11d2945ea2dd7b4c',1,'uct.h']]], + ['uct_5fconfig_5fmodify_595',['uct_config_modify',['../group___u_c_t___c_o_n_t_e_x_t.html#ga00b51bffb44b91b256dd6d6e6e99f98f',1,'uct.h']]], + ['uct_5fconfig_5frelease_596',['uct_config_release',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga951ea184730bc0b9cf659b1038e999a4',1,'uct.h']]], + ['uct_5fconn_5frequest_5fh_597',['uct_conn_request_h',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga71c5cb66cb921d62e609d02ca628c90f',1,'uct_def.h']]], + ['uct_5fdevice_5faddr_5ft_598',['uct_device_addr_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gac88423ede47b1ecaf895996971cfdf53',1,'uct_def.h']]], + ['uct_5fdevice_5ftype_5facc_599',['UCT_DEVICE_TYPE_ACC',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ggae0c25b8c160e49fbb9cc122c9807f20da4830aee82331272d4acfc027d733613f',1,'uct.h']]], + ['uct_5fdevice_5ftype_5flast_600',['UCT_DEVICE_TYPE_LAST',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ggae0c25b8c160e49fbb9cc122c9807f20dacd8f593dedbce6ce4d40115b593451e1',1,'uct.h']]], + ['uct_5fdevice_5ftype_5fnet_601',['UCT_DEVICE_TYPE_NET',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ggae0c25b8c160e49fbb9cc122c9807f20da5996d835fc60fcdca9c03539b99a0a2d',1,'uct.h']]], + ['uct_5fdevice_5ftype_5fself_602',['UCT_DEVICE_TYPE_SELF',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ggae0c25b8c160e49fbb9cc122c9807f20da86a97f09cfba66ff7170f77faaa2d89b',1,'uct.h']]], + ['uct_5fdevice_5ftype_5fshm_603',['UCT_DEVICE_TYPE_SHM',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ggae0c25b8c160e49fbb9cc122c9807f20da3d586e5bccd77cfe8bb3c87ce3fcce06',1,'uct.h']]], + ['uct_5fdevice_5ftype_5ft_604',['uct_device_type_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gae0c25b8c160e49fbb9cc122c9807f20d',1,'uct.h']]], + ['uct_5fep_5faddr_5ft_605',['uct_ep_addr_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga808816ad1373f05b9ed7f3432d9f78c6',1,'uct_def.h']]], + ['uct_5fep_5fam_5fbcopy_606',['uct_ep_am_bcopy',['../group___u_c_t___a_m.html#gae29dad6b69beaf21c19255906742e14d',1,'uct.h']]], + ['uct_5fep_5fam_5fshort_607',['uct_ep_am_short',['../group___u_c_t___a_m.html#ga0d170165e2d16dccbe45588ebad181f3',1,'uct.h']]], + ['uct_5fep_5fam_5fshort_5fiov_608',['uct_ep_am_short_iov',['../group___u_c_t___a_m.html#ga54b4c1f0426349ac9fc498736c53c0e7',1,'uct.h']]], + ['uct_5fep_5fam_5fzcopy_609',['uct_ep_am_zcopy',['../group___u_c_t___a_m.html#gae79d303f72e688df6d49bc44823c2210',1,'uct.h']]], + ['uct_5fep_5fatomic32_5ffetch_610',['uct_ep_atomic32_fetch',['../group___u_c_t___a_m_o.html#ga2d4fba85b9c7e5d70f09579bddbd91c6',1,'uct.h']]], + ['uct_5fep_5fatomic32_5fpost_611',['uct_ep_atomic32_post',['../group___u_c_t___a_m_o.html#ga81f59547148ece219e188d4196932e9f',1,'uct.h']]], + ['uct_5fep_5fatomic64_5ffetch_612',['uct_ep_atomic64_fetch',['../group___u_c_t___a_m_o.html#gae13c6bff2a3e26a133a3d17253fa3428',1,'uct.h']]], + ['uct_5fep_5fatomic64_5fpost_613',['uct_ep_atomic64_post',['../group___u_c_t___a_m_o.html#ga0e702db435215d222e12186cdcdf737c',1,'uct.h']]], + ['uct_5fep_5fatomic_5fcswap32_614',['uct_ep_atomic_cswap32',['../group___u_c_t___a_m_o.html#ga8c93ec75fb32dd52cda9cbe628b1077f',1,'uct.h']]], + ['uct_5fep_5fatomic_5fcswap64_615',['uct_ep_atomic_cswap64',['../group___u_c_t___a_m_o.html#ga84362057b7249456e00c00844fc60290',1,'uct.h']]], + ['uct_5fep_5fattr_5ft_616',['uct_ep_attr_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gaad8747fe0969320a445f7b9cba53d50c',1,'uct_def.h']]], + ['uct_5fep_5fcheck_617',['uct_ep_check',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga45924a1e90cc4747fd23b36a21fc07af',1,'uct.h']]], + ['uct_5fep_5fconnect_618',['uct_ep_connect',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gaec09721914083255f4856da1a9541880',1,'uct.h']]], + ['uct_5fep_5fconnect_5fparam_5ffield_5fprivate_5fdata_619',['UCT_EP_CONNECT_PARAM_FIELD_PRIVATE_DATA',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ggaa821e2f4247cd5e72632e5ea7008e6e1a51f30ec2f30a63bdea6660a0ad61305e',1,'uct.h']]], + ['uct_5fep_5fconnect_5fparam_5ffield_5fprivate_5fdata_5flength_620',['UCT_EP_CONNECT_PARAM_FIELD_PRIVATE_DATA_LENGTH',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ggaa821e2f4247cd5e72632e5ea7008e6e1accc8d70e4ee5ee60283e1b53456963e1',1,'uct.h']]], + ['uct_5fep_5fconnect_5fparams_621',['uct_ep_connect_params',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__ep__connect__params',1,'']]], + ['uct_5fep_5fconnect_5fparams_5ffield_622',['uct_ep_connect_params_field',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gaa821e2f4247cd5e72632e5ea7008e6e1',1,'uct.h']]], + ['uct_5fep_5fconnect_5fparams_5ft_623',['uct_ep_connect_params_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gaddad06e96eb39d96239d984bfbbbb5c0',1,'uct_def.h']]], + ['uct_5fep_5fconnect_5fto_5fep_624',['uct_ep_connect_to_ep',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga371685403748eb72784fdcb17f9e4bdf',1,'uct.h']]], + ['uct_5fep_5fcreate_625',['uct_ep_create',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga0b2d38bde2651977c2b476e6e8866acc',1,'uct.h']]], + ['uct_5fep_5fdestroy_626',['uct_ep_destroy',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gac7d6537c7cdacdf24afeafe9c0085163',1,'uct.h']]], + ['uct_5fep_5fdisconnect_627',['uct_ep_disconnect',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga97049050f63eab653949cceef8fe4ba0',1,'uct.h']]], + ['uct_5fep_5fdisconnect_5fcb_5ft_628',['uct_ep_disconnect_cb_t',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gaf1b75ee068dfa5fbf7194f999360197a',1,'uct_def.h']]], + ['uct_5fep_5ffence_629',['uct_ep_fence',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga34719e12b68f8ac890f261018aa6ddb3',1,'uct.h']]], + ['uct_5fep_5fflush_630',['uct_ep_flush',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga2a7a12705b1f4af41792282b59fbc8c2',1,'uct.h']]], + ['uct_5fep_5fget_5faddress_631',['uct_ep_get_address',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga23773d9d87524cfa6dc6c2d1e094d487',1,'uct.h']]], + ['uct_5fep_5fget_5fbcopy_632',['uct_ep_get_bcopy',['../group___u_c_t___r_m_a.html#ga82b06eb1ca3be490d39c70a664f12742',1,'uct.h']]], + ['uct_5fep_5fget_5fshort_633',['uct_ep_get_short',['../group___u_c_t___r_m_a.html#gaed5201516e35d10605e5db1fd0dea674',1,'uct.h']]], + ['uct_5fep_5fget_5fzcopy_634',['uct_ep_get_zcopy',['../group___u_c_t___r_m_a.html#ga535095dfcb356cfab17c319f7993d53a',1,'uct.h']]], + ['uct_5fep_5fh_635',['uct_ep_h',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gae7298a2b6fdb0e7771868459b10d6b20',1,'uct_def.h']]], + ['uct_5fep_5fparam_5ffield_5fcm_636',['UCT_EP_PARAM_FIELD_CM',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658bab089df3f421f6fc0ccdda8b36ecd4e42',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fcm_5fresolve_5fcb_637',['UCT_EP_PARAM_FIELD_CM_RESOLVE_CB',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658bab8af49c5286ab9f6b6f6f62743960f8f',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fconn_5frequest_638',['UCT_EP_PARAM_FIELD_CONN_REQUEST',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658ba313aa3f8e5e089fc57a0c53fa48ee72d',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fdev_5faddr_639',['UCT_EP_PARAM_FIELD_DEV_ADDR',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658ba14fb24fafcf9fdd0418a5dd348ab828c',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fiface_640',['UCT_EP_PARAM_FIELD_IFACE',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658ba082065ffa8866740ca6418a9c38b503d',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fiface_5faddr_641',['UCT_EP_PARAM_FIELD_IFACE_ADDR',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658baef938215a002d0b59812c737db0a965d',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5flocal_5fsockaddr_642',['UCT_EP_PARAM_FIELD_LOCAL_SOCKADDR',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658bafdb48e56bfcdd0b9439329568885f8df',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fpath_5findex_643',['UCT_EP_PARAM_FIELD_PATH_INDEX',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658baf1b7df888b75b42a627b327003bffdb6',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fpriv_5fdata_644',['UCT_EP_PARAM_FIELD_PRIV_DATA',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658ba43b2ccfee5e1811447b1902e6d9962c4',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fpriv_5fdata_5flength_645',['UCT_EP_PARAM_FIELD_PRIV_DATA_LENGTH',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658bac5bd575d5dddf9dd99e90251bb56faea',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fsockaddr_646',['UCT_EP_PARAM_FIELD_SOCKADDR',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658bae4c4f4f2110b170ed4920529821387e6',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fsockaddr_5fcb_5fflags_647',['UCT_EP_PARAM_FIELD_SOCKADDR_CB_FLAGS',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658ba6489f1bcbdd0de8e2aee80661aa37ec1',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fsockaddr_5fconnect_5fcb_5fclient_648',['UCT_EP_PARAM_FIELD_SOCKADDR_CONNECT_CB_CLIENT',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658bad59d4bae36d22a6d5da01512d9861256',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fsockaddr_5fdisconnect_5fcb_649',['UCT_EP_PARAM_FIELD_SOCKADDR_DISCONNECT_CB',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658ba148d1e23de6d640612457216ad81da29',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fsockaddr_5fnotify_5fcb_5fserver_650',['UCT_EP_PARAM_FIELD_SOCKADDR_NOTIFY_CB_SERVER',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658bad86327449165ad945e6ae8a7c36c1c8c',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fsockaddr_5fpack_5fcb_651',['UCT_EP_PARAM_FIELD_SOCKADDR_PACK_CB',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658ba61e749dca15775eb4cbc492c020027ca',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fuser_5fdata_652',['UCT_EP_PARAM_FIELD_USER_DATA',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658babbff9b7d6a5114860d6b40f3b0c445dc',1,'uct.h']]], + ['uct_5fep_5fparams_653',['uct_ep_params',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__ep__params',1,'']]], + ['uct_5fep_5fparams_5ffield_654',['uct_ep_params_field',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga8e76f363d8805669fb5371b404c5658b',1,'uct.h']]], + ['uct_5fep_5fparams_5ft_655',['uct_ep_params_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gaff904a2be18f709176eaec75e4a93251',1,'uct_def.h']]], + ['uct_5fep_5fpending_5fadd_656',['uct_ep_pending_add',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga40f4b92dd4af8da92e138816d57dfece',1,'uct.h']]], + ['uct_5fep_5fpending_5fpurge_657',['uct_ep_pending_purge',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga11196076031e7c8601241a3adbe1e561',1,'uct.h']]], + ['uct_5fep_5fput_5fbcopy_658',['uct_ep_put_bcopy',['../group___u_c_t___r_m_a.html#gad0b6f7d4ad48f672e20ff70c8e0faadc',1,'uct.h']]], + ['uct_5fep_5fput_5fshort_659',['uct_ep_put_short',['../group___u_c_t___r_m_a.html#ga2dfc08ad6547e081cddd7457c19417b1',1,'uct.h']]], + ['uct_5fep_5fput_5fzcopy_660',['uct_ep_put_zcopy',['../group___u_c_t___r_m_a.html#gaed8c42bab761c97bc0a1516fbf552583',1,'uct.h']]], + ['uct_5fep_5ftag_5feager_5fbcopy_661',['uct_ep_tag_eager_bcopy',['../group___u_c_t___t_a_g.html#ga08d520cd093b8c661c3f5a3bd863b7c2',1,'uct.h']]], + ['uct_5fep_5ftag_5feager_5fshort_662',['uct_ep_tag_eager_short',['../group___u_c_t___t_a_g.html#ga5e595ff1d9e77bd5b4abe84fae3ac117',1,'uct.h']]], + ['uct_5fep_5ftag_5feager_5fzcopy_663',['uct_ep_tag_eager_zcopy',['../group___u_c_t___t_a_g.html#gaab6efb1df0527e53a0c1528cc80f64e4',1,'uct.h']]], + ['uct_5fep_5ftag_5frndv_5fcancel_664',['uct_ep_tag_rndv_cancel',['../group___u_c_t___t_a_g.html#gaee99ff7af5b69b653977e4db2b5fef8b',1,'uct.h']]], + ['uct_5fep_5ftag_5frndv_5frequest_665',['uct_ep_tag_rndv_request',['../group___u_c_t___t_a_g.html#ga0b01e46c59a9d713495e4be1cdc6edda',1,'uct.h']]], + ['uct_5fep_5ftag_5frndv_5fzcopy_666',['uct_ep_tag_rndv_zcopy',['../group___u_c_t___t_a_g.html#ga897e5cfaa4998fdcb36128624635460a',1,'uct.h']]], + ['uct_5ferror_5fhandler_5ft_667',['uct_error_handler_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga119fc03d8825b540252406cfeb280897',1,'uct_def.h']]], + ['uct_5fevent_5frecv_668',['UCT_EVENT_RECV',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ggaef09139f303b0a3d28a1cea524dc3bd2a1381e135252b79646cdb3a6f3d15431e',1,'uct.h']]], + ['uct_5fevent_5frecv_5fsig_669',['UCT_EVENT_RECV_SIG',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ggaef09139f303b0a3d28a1cea524dc3bd2ab5b97562ce555a0979a56bd1d9810eaf',1,'uct.h']]], + ['uct_5fevent_5fsend_5fcomp_670',['UCT_EVENT_SEND_COMP',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ggaef09139f303b0a3d28a1cea524dc3bd2aba611824db8eb31b9eb07111f987e011',1,'uct.h']]], + ['uct_5fflush_5fflag_5fcancel_671',['UCT_FLUSH_FLAG_CANCEL',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga84ba23c28fda1c96f5018bbafb7ffed6a556a8cb417f5b6e21b0be93297eb2f45',1,'uct.h']]], + ['uct_5fflush_5fflag_5flocal_672',['UCT_FLUSH_FLAG_LOCAL',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga84ba23c28fda1c96f5018bbafb7ffed6ad0b221329684853b22a60d88e0dd8bac',1,'uct.h']]], + ['uct_5fflush_5fflag_5fremote_673',['UCT_FLUSH_FLAG_REMOTE',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga84ba23c28fda1c96f5018bbafb7ffed6a0c1b82dd17faf5ece84a69702168afe7',1,'uct.h']]], + ['uct_5fflush_5fflags_674',['uct_flush_flags',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga84ba23c28fda1c96f5018bbafb7ffed6',1,'uct.h']]], + ['uct_5fiface_5faccept_675',['uct_iface_accept',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gaadcca33083e95033b161b4f5b1365dc9',1,'uct.h']]], + ['uct_5fiface_5faddr_5ft_676',['uct_iface_addr_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga96d01980a33064e85158b9028073e96c',1,'uct_def.h']]], + ['uct_5fiface_5fattr_677',['uct_iface_attr',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr',1,'']]], + ['uct_5fiface_5fattr_2ecap_678',['uct_iface_attr.cap',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap',1,'']]], + ['uct_5fiface_5fattr_2ecap_2eam_679',['uct_iface_attr.cap.am',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap_8am',1,'']]], + ['uct_5fiface_5fattr_2ecap_2eatomic32_680',['uct_iface_attr.cap.atomic32',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap_8atomic32',1,'']]], + ['uct_5fiface_5fattr_2ecap_2eatomic64_681',['uct_iface_attr.cap.atomic64',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap_8atomic64',1,'']]], + ['uct_5fiface_5fattr_2ecap_2eget_682',['uct_iface_attr.cap.get',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap_8get',1,'']]], + ['uct_5fiface_5fattr_2ecap_2eput_683',['uct_iface_attr.cap.put',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap_8put',1,'']]], + ['uct_5fiface_5fattr_2ecap_2etag_684',['uct_iface_attr.cap.tag',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap_8tag',1,'']]], + ['uct_5fiface_5fattr_2ecap_2etag_2eeager_685',['uct_iface_attr.cap.tag.eager',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap_8tag_8eager',1,'']]], + ['uct_5fiface_5fattr_2ecap_2etag_2erecv_686',['uct_iface_attr.cap.tag.recv',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap_8tag_8recv',1,'']]], + ['uct_5fiface_5fattr_2ecap_2etag_2erndv_687',['uct_iface_attr.cap.tag.rndv',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap_8tag_8rndv',1,'']]], + ['uct_5fiface_5fattr_5ft_688',['uct_iface_attr_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga64b102833286ad65e2802002e0f403be',1,'uct_def.h']]], + ['uct_5fiface_5fclose_689',['uct_iface_close',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga748bd92ba4e62fd86c6b002f9198e2aa',1,'uct.h']]], + ['uct_5fiface_5fconfig_5ft_690',['uct_iface_config_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga9769f5a67e7c711eb95abe993f794207',1,'uct_def.h']]], + ['uct_5fiface_5fevent_5farm_691',['uct_iface_event_arm',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gaf15e9f37d3ce5273153861522a443acf',1,'uct.h']]], + ['uct_5fiface_5fevent_5ffd_5fget_692',['uct_iface_event_fd_get',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gae3aa273c042171bee7292da0d7f774d1',1,'uct.h']]], + ['uct_5fiface_5fevent_5ftypes_693',['uct_iface_event_types',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gaef09139f303b0a3d28a1cea524dc3bd2',1,'uct.h']]], + ['uct_5fiface_5ffeature_694',['uct_iface_feature',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga078dd84cff9d6b1cda5692fbf6b1e7c7',1,'uct.h']]], + ['uct_5fiface_5ffeature_5fam_695',['UCT_IFACE_FEATURE_AM',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga078dd84cff9d6b1cda5692fbf6b1e7c7a4bce30860f36cee1a7b74f6cd2c061ad',1,'uct.h']]], + ['uct_5fiface_5ffeature_5famo32_696',['UCT_IFACE_FEATURE_AMO32',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga078dd84cff9d6b1cda5692fbf6b1e7c7a06a813eb45714bc70e154691d82e5e81',1,'uct.h']]], + ['uct_5fiface_5ffeature_5famo64_697',['UCT_IFACE_FEATURE_AMO64',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga078dd84cff9d6b1cda5692fbf6b1e7c7af6bebc50b5e4169f38cddaacc7ba7a7a',1,'uct.h']]], + ['uct_5fiface_5ffeature_5fflush_5fremote_698',['UCT_IFACE_FEATURE_FLUSH_REMOTE',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga078dd84cff9d6b1cda5692fbf6b1e7c7ac161e1b9f69409f4e2238af1c6d4d155',1,'uct.h']]], + ['uct_5fiface_5ffeature_5fget_699',['UCT_IFACE_FEATURE_GET',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga078dd84cff9d6b1cda5692fbf6b1e7c7ae80cd4ab8043e2df41d2d81854686415',1,'uct.h']]], + ['uct_5fiface_5ffeature_5flast_700',['UCT_IFACE_FEATURE_LAST',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga078dd84cff9d6b1cda5692fbf6b1e7c7ab317c0279d872516f011df628d67dd9f',1,'uct.h']]], + ['uct_5fiface_5ffeature_5fput_701',['UCT_IFACE_FEATURE_PUT',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga078dd84cff9d6b1cda5692fbf6b1e7c7a59d0a64607692e3ff39fa61a899c7633',1,'uct.h']]], + ['uct_5fiface_5ffeature_5ftag_702',['UCT_IFACE_FEATURE_TAG',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga078dd84cff9d6b1cda5692fbf6b1e7c7a08d34bf9a962d1b27b0c92865c773854',1,'uct.h']]], + ['uct_5fiface_5ffence_703',['uct_iface_fence',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gaa8d42856661922581a683030dd9c8990',1,'uct.h']]], + ['uct_5fiface_5fflag_5fam_5fbcopy_704',['UCT_IFACE_FLAG_AM_BCOPY',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#ga157f699933110d47857b84d06de36c21',1,'uct.h']]], + ['uct_5fiface_5fflag_5fam_5fdup_705',['UCT_IFACE_FLAG_AM_DUP',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#ga57467dcc8d7be9b69caa2c886e2bf05a',1,'uct.h']]], + ['uct_5fiface_5fflag_5fam_5fshort_706',['UCT_IFACE_FLAG_AM_SHORT',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#gaa58cb476c781afcc74ce00849cc1884c',1,'uct.h']]], + ['uct_5fiface_5fflag_5fam_5fzcopy_707',['UCT_IFACE_FLAG_AM_ZCOPY',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#ga480d42a7324a6944049f5f2ded5da783',1,'uct.h']]], + ['uct_5fiface_5fflag_5fatomic_5fcpu_708',['UCT_IFACE_FLAG_ATOMIC_CPU',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#gad3c9946b758176b203769c4257751e05',1,'uct.h']]], + ['uct_5fiface_5fflag_5fatomic_5fdevice_709',['UCT_IFACE_FLAG_ATOMIC_DEVICE',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#ga264f4b6d97d47bba154940db2d39108f',1,'uct.h']]], + ['uct_5fiface_5fflag_5fcb_5fasync_710',['UCT_IFACE_FLAG_CB_ASYNC',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#ga0d11615d226392d79f547669968b4b90',1,'uct.h']]], + ['uct_5fiface_5fflag_5fcb_5fsync_711',['UCT_IFACE_FLAG_CB_SYNC',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#ga2e3c98ee6cfe8abe7769a3442fbaffaf',1,'uct.h']]], + ['uct_5fiface_5fflag_5fconnect_5fto_5fep_712',['UCT_IFACE_FLAG_CONNECT_TO_EP',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#ga598f1ae11f9ed8cfed2f6c04bbb0bfe8',1,'uct.h']]], + ['uct_5fiface_5fflag_5fconnect_5fto_5fiface_713',['UCT_IFACE_FLAG_CONNECT_TO_IFACE',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#gac56a560766f8c50bef684e0e6b4efd18',1,'uct.h']]], + ['uct_5fiface_5fflag_5fconnect_5fto_5fsockaddr_714',['UCT_IFACE_FLAG_CONNECT_TO_SOCKADDR',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#gadd27aab0e67faf844b0ec9011b5ff7dc',1,'uct.h']]], + ['uct_5fiface_5fflag_5fep_5fcheck_715',['UCT_IFACE_FLAG_EP_CHECK',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#ga0faa7a7889f57ccdc40fcb4c949d177c',1,'uct.h']]], + ['uct_5fiface_5fflag_5fep_5fkeepalive_716',['UCT_IFACE_FLAG_EP_KEEPALIVE',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#gafd21d995c6a98421676ff9881c3fd30d',1,'uct.h']]], + ['uct_5fiface_5fflag_5ferrhandle_5fam_5fid_717',['UCT_IFACE_FLAG_ERRHANDLE_AM_ID',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#ga645a61b3a77a69abd3263b4c8cff162c',1,'uct.h']]], + ['uct_5fiface_5fflag_5ferrhandle_5fbcopy_5fbuf_718',['UCT_IFACE_FLAG_ERRHANDLE_BCOPY_BUF',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#gac0767646add241453d8835c81a370ad4',1,'uct.h']]], + ['uct_5fiface_5fflag_5ferrhandle_5fbcopy_5flen_719',['UCT_IFACE_FLAG_ERRHANDLE_BCOPY_LEN',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#ga4fc39074e1a50d6fd8e5b009634090a8',1,'uct.h']]], + ['uct_5fiface_5fflag_5ferrhandle_5fpeer_5ffailure_720',['UCT_IFACE_FLAG_ERRHANDLE_PEER_FAILURE',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#ga2dd3b3fa9d757d3835a5cfe33778e51c',1,'uct.h']]], + ['uct_5fiface_5fflag_5ferrhandle_5fremote_5fmem_721',['UCT_IFACE_FLAG_ERRHANDLE_REMOTE_MEM',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#ga72ea5a02a74d3badb058dcb27c28d33f',1,'uct.h']]], + ['uct_5fiface_5fflag_5ferrhandle_5fshort_5fbuf_722',['UCT_IFACE_FLAG_ERRHANDLE_SHORT_BUF',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#ga8c2b68ef2471f41887923d60d7e7bc30',1,'uct.h']]], + ['uct_5fiface_5fflag_5ferrhandle_5fzcopy_5fbuf_723',['UCT_IFACE_FLAG_ERRHANDLE_ZCOPY_BUF',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#ga58d7b4bd4ce94d95f91f95cbfacc3687',1,'uct.h']]], + ['uct_5fiface_5fflag_5fevent_5fasync_5fcb_724',['UCT_IFACE_FLAG_EVENT_ASYNC_CB',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___e_v_e_n_t___c_a_p.html#gae0199c5efa567b5906fb4119c84eeb90',1,'uct.h']]], + ['uct_5fiface_5fflag_5fevent_5ffd_725',['UCT_IFACE_FLAG_EVENT_FD',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___e_v_e_n_t___c_a_p.html#gab3643d171600157693ecbc8b8a57ddb8',1,'uct.h']]], + ['uct_5fiface_5fflag_5fevent_5frecv_726',['UCT_IFACE_FLAG_EVENT_RECV',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___e_v_e_n_t___c_a_p.html#ga8f30d238efddb2735f400a93d84741ec',1,'uct.h']]], + ['uct_5fiface_5fflag_5fevent_5frecv_5fsig_727',['UCT_IFACE_FLAG_EVENT_RECV_SIG',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___e_v_e_n_t___c_a_p.html#ga92e91487e2c27a69934f84e3331012da',1,'uct.h']]], + ['uct_5fiface_5fflag_5fevent_5fsend_5fcomp_728',['UCT_IFACE_FLAG_EVENT_SEND_COMP',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___e_v_e_n_t___c_a_p.html#ga4070a894b32d49061c07d5e636d2c7ae',1,'uct.h']]], + ['uct_5fiface_5fflag_5fget_5fbcopy_729',['UCT_IFACE_FLAG_GET_BCOPY',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#ga2bd7e6c6fb89b6f6922e4cd5b22976d1',1,'uct.h']]], + ['uct_5fiface_5fflag_5fget_5fshort_730',['UCT_IFACE_FLAG_GET_SHORT',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#ga71df9bc5c060b753e50ddeabf05464f8',1,'uct.h']]], + ['uct_5fiface_5fflag_5fget_5fzcopy_731',['UCT_IFACE_FLAG_GET_ZCOPY',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#ga2b06fb927355693fd2887a237521238a',1,'uct.h']]], + ['uct_5fiface_5fflag_5fpending_732',['UCT_IFACE_FLAG_PENDING',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#gaeaaca09dbcf32488f508327b00d6f386',1,'uct.h']]], + ['uct_5fiface_5fflag_5fput_5fbcopy_733',['UCT_IFACE_FLAG_PUT_BCOPY',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#ga8370f7eb1b51d788b28a7b9391818b5a',1,'uct.h']]], + ['uct_5fiface_5fflag_5fput_5fshort_734',['UCT_IFACE_FLAG_PUT_SHORT',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#ga505de892b063f532d31e4903ad9c1126',1,'uct.h']]], + ['uct_5fiface_5fflag_5fput_5fzcopy_735',['UCT_IFACE_FLAG_PUT_ZCOPY',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#gabb6ace47f4fac09f529b21e1e0b3aef8',1,'uct.h']]], + ['uct_5fiface_5fflag_5ftag_5feager_5fbcopy_736',['UCT_IFACE_FLAG_TAG_EAGER_BCOPY',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#gaa31a85814a4c1f1d2b650ed962697c24',1,'uct.h']]], + ['uct_5fiface_5fflag_5ftag_5feager_5fshort_737',['UCT_IFACE_FLAG_TAG_EAGER_SHORT',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#ga3d034538bcf657f976ae500d8143ed64',1,'uct.h']]], + ['uct_5fiface_5fflag_5ftag_5feager_5fzcopy_738',['UCT_IFACE_FLAG_TAG_EAGER_ZCOPY',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#ga8bdcd3907a6cf4f5cb951994ae9da7bb',1,'uct.h']]], + ['uct_5fiface_5fflag_5ftag_5frndv_5fzcopy_739',['UCT_IFACE_FLAG_TAG_RNDV_ZCOPY',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html#gac7f2200f52db88d3634089d8cdf2100c',1,'uct.h']]], + ['uct_5fiface_5fflush_740',['uct_iface_flush',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga6cda14e7c03e4f400be46fe97aa23bed',1,'uct.h']]], + ['uct_5fiface_5fget_5faddress_741',['uct_iface_get_address',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga7da50f02f6cfaaf16f11c620fba9f3b8',1,'uct.h']]], + ['uct_5fiface_5fget_5fdevice_5faddress_742',['uct_iface_get_device_address',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga67f64f9b1971622ab8e7c8410cc5ab44',1,'uct.h']]], + ['uct_5fiface_5fh_743',['uct_iface_h',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gab6decd0363732ac4187bf7aa37883c35',1,'uct_def.h']]], + ['uct_5fiface_5fis_5freachable_744',['uct_iface_is_reachable',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gadf8829d8c85620cbc1ddfc0f3e8ec9a8',1,'uct.h']]], + ['uct_5fiface_5fmem_5falloc_745',['uct_iface_mem_alloc',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gaa29727b03b244839f0c068d0785f0050',1,'uct.h']]], + ['uct_5fiface_5fmem_5ffree_746',['uct_iface_mem_free',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga198359eccf0ae85f1c13d4d8509f5532',1,'uct.h']]], + ['uct_5fiface_5fopen_747',['uct_iface_open',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga031e2c99f03585c0f4c7356c71f0fbb1',1,'uct.h']]], + ['uct_5fiface_5fopen_5fmode_748',['uct_iface_open_mode',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga8bc9c95ee7fbd76321940e2853d08bb5',1,'uct.h']]], + ['uct_5fiface_5fopen_5fmode_5fdevice_749',['UCT_IFACE_OPEN_MODE_DEVICE',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8bc9c95ee7fbd76321940e2853d08bb5a504bef9a8574445a0dfdcf517160fef0',1,'uct.h']]], + ['uct_5fiface_5fopen_5fmode_5fsockaddr_5fclient_750',['UCT_IFACE_OPEN_MODE_SOCKADDR_CLIENT',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8bc9c95ee7fbd76321940e2853d08bb5ab596bc437bc4e84500039aafcf5adfeb',1,'uct.h']]], + ['uct_5fiface_5fopen_5fmode_5fsockaddr_5fserver_751',['UCT_IFACE_OPEN_MODE_SOCKADDR_SERVER',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8bc9c95ee7fbd76321940e2853d08bb5a9b2655b644fae2cf20d5b673854c9ad0',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fam_5falign_5foffset_752',['UCT_IFACE_PARAM_FIELD_AM_ALIGN_OFFSET',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a22a9554ccdc8209f81d7d5b5a8e39780',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fam_5falignment_753',['UCT_IFACE_PARAM_FIELD_AM_ALIGNMENT',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a8d676d1b40253cacf1abb4302d448d3a',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fasync_5fevent_5farg_754',['UCT_IFACE_PARAM_FIELD_ASYNC_EVENT_ARG',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a8d6361b77aae50f66b88b13826375aed',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fasync_5fevent_5fcb_755',['UCT_IFACE_PARAM_FIELD_ASYNC_EVENT_CB',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a83e8eb07f6d7e357001a0ac826857ebd',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fcpu_5fmask_756',['UCT_IFACE_PARAM_FIELD_CPU_MASK',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a80cd3b1a8f9de031df8aa12e7a0eb08b',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fdevice_757',['UCT_IFACE_PARAM_FIELD_DEVICE',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a0f56ae54f7fcd7a002588a75e207f8a2',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5ferr_5fhandler_758',['UCT_IFACE_PARAM_FIELD_ERR_HANDLER',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a57771259693749559910cbf8256ef7a1',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5ferr_5fhandler_5farg_759',['UCT_IFACE_PARAM_FIELD_ERR_HANDLER_ARG',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596ab0a406683b45f265eaf9edc794e72e7e',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5ferr_5fhandler_5fflags_760',['UCT_IFACE_PARAM_FIELD_ERR_HANDLER_FLAGS',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a2f97be5b7ef0e542fc39fe778c85097e',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5ffeatures_761',['UCT_IFACE_PARAM_FIELD_FEATURES',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596ad5efe451d0f04d6929f39b66cdc8d889',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fhw_5ftm_5feager_5farg_762',['UCT_IFACE_PARAM_FIELD_HW_TM_EAGER_ARG',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596ad4afd13a4a6e36adb6e5576de666ab64',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fhw_5ftm_5feager_5fcb_763',['UCT_IFACE_PARAM_FIELD_HW_TM_EAGER_CB',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a9dcb103f9b93d5c37d5b1ff401fda324',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fhw_5ftm_5frndv_5farg_764',['UCT_IFACE_PARAM_FIELD_HW_TM_RNDV_ARG',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a5b7da96e1cd28639f489bcf08194ecd7',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fhw_5ftm_5frndv_5fcb_765',['UCT_IFACE_PARAM_FIELD_HW_TM_RNDV_CB',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a2c2b16ef1c537d1596ceb7b72fbf3145',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fkeepalive_5finterval_766',['UCT_IFACE_PARAM_FIELD_KEEPALIVE_INTERVAL',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a3b05690f0c5ae7cf346a1e7a00186953',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fopen_5fmode_767',['UCT_IFACE_PARAM_FIELD_OPEN_MODE',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a436751cf65204ec8d37e649b0913eff7',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5frx_5fheadroom_768',['UCT_IFACE_PARAM_FIELD_RX_HEADROOM',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596aabb0425ec3c58345ba973683b72dc255',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fsockaddr_769',['UCT_IFACE_PARAM_FIELD_SOCKADDR',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596af01913e91929ae3c52c465e5df97bec3',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fstats_5froot_770',['UCT_IFACE_PARAM_FIELD_STATS_ROOT',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a7af1c01a0aa6c8d7ddc167cd516f3272',1,'uct.h']]], + ['uct_5fiface_5fparams_771',['uct_iface_params',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__params',1,'']]], + ['uct_5fiface_5fparams_2emode_772',['uct_iface_params.mode',['../group___u_c_t___r_e_s_o_u_r_c_e.html#unionuct__iface__params_8mode',1,'']]], + ['uct_5fiface_5fparams_2emode_2edevice_773',['uct_iface_params.mode.device',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__params_8mode_8device',1,'']]], + ['uct_5fiface_5fparams_2emode_2esockaddr_774',['uct_iface_params.mode.sockaddr',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__params_8mode_8sockaddr',1,'']]], + ['uct_5fiface_5fparams_5ffield_775',['uct_iface_params_field',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga896baeefc7933d925202c32b0d09f596',1,'uct.h']]], + ['uct_5fiface_5fparams_5ft_776',['uct_iface_params_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gaff593598b5296991d8081a289f7a7d40',1,'uct_def.h']]], + ['uct_5fiface_5fprogress_777',['uct_iface_progress',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga56dd7c8b9f4b02ae5da179a3055bcb81',1,'uct.h']]], + ['uct_5fiface_5fprogress_5fdisable_778',['uct_iface_progress_disable',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga7acfd29e7d7bb8566cfbbf02916bc466',1,'uct.h']]], + ['uct_5fiface_5fprogress_5fenable_779',['uct_iface_progress_enable',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga9f14d2694a06d5ea9e6434a52f8d3ff0',1,'uct.h']]], + ['uct_5fiface_5fquery_780',['uct_iface_query',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gac2ec7cdee76fa075cc65185d7c134bc2',1,'uct.h']]], + ['uct_5fiface_5freject_781',['uct_iface_reject',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga31c30e35f43121d1715620931860dafe',1,'uct.h']]], + ['uct_5fiface_5frelease_5fdesc_782',['uct_iface_release_desc',['../group___u_c_t___a_m.html#gac894ed0c24a3481f316945a462d67921',1,'uct.h']]], + ['uct_5fiface_5fset_5fam_5fhandler_783',['uct_iface_set_am_handler',['../group___u_c_t___a_m.html#ga81dd3f74f8dc8c2c950d932fca0f799e',1,'uct.h']]], + ['uct_5fiface_5fset_5fam_5ftracer_784',['uct_iface_set_am_tracer',['../group___u_c_t___a_m.html#gaed13079973d867e4bb18be3696216a3a',1,'uct.h']]], + ['uct_5fiface_5ftag_5frecv_5fcancel_785',['uct_iface_tag_recv_cancel',['../group___u_c_t___t_a_g.html#gad2448d4cf5325dec5aa9c69ae4a025e1',1,'uct.h']]], + ['uct_5fiface_5ftag_5frecv_5fzcopy_786',['uct_iface_tag_recv_zcopy',['../group___u_c_t___t_a_g.html#gac4ba076343a68f330e5c4659d38bb383',1,'uct.h']]], + ['uct_5fiov_787',['uct_iov',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iov',1,'']]], + ['uct_5fiov_5ft_788',['uct_iov_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga0012e635ed11cf3ffd9f61705de73b52',1,'uct_def.h']]], + ['uct_5flistener_5fattr_789',['uct_listener_attr',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__listener__attr',1,'']]], + ['uct_5flistener_5fattr_5ffield_790',['uct_listener_attr_field',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gad253d9c2e4116f9a137a2d2450afbe66',1,'uct.h']]], + ['uct_5flistener_5fattr_5ffield_5fsockaddr_791',['UCT_LISTENER_ATTR_FIELD_SOCKADDR',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ggad253d9c2e4116f9a137a2d2450afbe66af566cba098163f464bdad7c392232c3f',1,'uct.h']]], + ['uct_5flistener_5fattr_5ft_792',['uct_listener_attr_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gad9c5692c9af9e043f6ee4ad3a15dced6',1,'uct_def.h']]], + ['uct_5flistener_5fcreate_793',['uct_listener_create',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gadb87c52696a73feae4e1d6e0b9a01911',1,'uct.h']]], + ['uct_5flistener_5fdestroy_794',['uct_listener_destroy',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga8f6a0c420fbca1b5fbe7c1d919757d3f',1,'uct.h']]], + ['uct_5flistener_5fh_795',['uct_listener_h',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gaf88468443532bb4b677b18f038b6f60e',1,'uct_def.h']]], + ['uct_5flistener_5fparam_5ffield_5fbacklog_796',['UCT_LISTENER_PARAM_FIELD_BACKLOG',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ggaf716bd7cdc636377ef78c258886693c7aa2a3bbfd550dc87ed8bba5cf960068fa',1,'uct.h']]], + ['uct_5flistener_5fparam_5ffield_5fconn_5frequest_5fcb_797',['UCT_LISTENER_PARAM_FIELD_CONN_REQUEST_CB',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ggaf716bd7cdc636377ef78c258886693c7a8a9ba7427c813614e65f29c38225ab44',1,'uct.h']]], + ['uct_5flistener_5fparam_5ffield_5fuser_5fdata_798',['UCT_LISTENER_PARAM_FIELD_USER_DATA',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ggaf716bd7cdc636377ef78c258886693c7af6172e01a7919f4afd27fa5e0aa0b794',1,'uct.h']]], + ['uct_5flistener_5fparams_799',['uct_listener_params',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__listener__params',1,'']]], + ['uct_5flistener_5fparams_5ffield_800',['uct_listener_params_field',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gaf716bd7cdc636377ef78c258886693c7',1,'uct.h']]], + ['uct_5flistener_5fparams_5ft_801',['uct_listener_params_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga8d8a6ca0e12e5f1bc54f8c85bda14d59',1,'uct_def.h']]], + ['uct_5flistener_5fquery_802',['uct_listener_query',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gae8b7a5fbada262d0f312970f018a916e',1,'uct.h']]], + ['uct_5flistener_5freject_803',['uct_listener_reject',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gaa8d1ea690c1600dc334ae6a014110d5e',1,'uct.h']]], + ['uct_5fmadv_5fnormal_804',['UCT_MADV_NORMAL',['../group___u_c_t___m_d.html#gga72172b231f5e9df777cb130b9f908397a44cc1f4e9d750610f872680ad83a5693',1,'uct.h']]], + ['uct_5fmadv_5fwillneed_805',['UCT_MADV_WILLNEED',['../group___u_c_t___m_d.html#gga72172b231f5e9df777cb130b9f908397af2f40857cea090977db8a5994b334594',1,'uct.h']]], + ['uct_5fmd_5fattr_806',['uct_md_attr',['../group___u_c_t___m_d.html#structuct__md__attr',1,'']]], + ['uct_5fmd_5fattr_2ecap_807',['uct_md_attr.cap',['../group___u_c_t___m_d.html#structuct__md__attr_8cap',1,'']]], + ['uct_5fmd_5fattr_5ft_808',['uct_md_attr_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga9e9485d79fdf2f153e05cc5282ab57fd',1,'uct_def.h']]], + ['uct_5fmd_5fclose_809',['uct_md_close',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gac9ab18f8a48b07429c9987b584fe5574',1,'uct.h']]], + ['uct_5fmd_5fconfig_5fread_810',['uct_md_config_read',['../group___u_c_t___m_d.html#ga8fd8d3ebc188c9016a179d5678c0a71f',1,'uct.h']]], + ['uct_5fmd_5fconfig_5ft_811',['uct_md_config_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gabfb351862f43010ab8d5bbdb2495d0ee',1,'uct_def.h']]], + ['uct_5fmd_5fdetect_5fmemory_5ftype_812',['uct_md_detect_memory_type',['../group___u_c_t___m_d.html#gac69d1df8de5ff0b6422af01c3befe67f',1,'uct.h']]], + ['uct_5fmd_5fflag_5fadvise_813',['UCT_MD_FLAG_ADVISE',['../group___u_c_t___m_d.html#gga61dadd085c1777f559549e05962b2c9ea489e86d8c4f7630c5b15ba37c11e8598',1,'uct.h']]], + ['uct_5fmd_5fflag_5falloc_814',['UCT_MD_FLAG_ALLOC',['../group___u_c_t___m_d.html#gga61dadd085c1777f559549e05962b2c9eace1638df732eb289b9dd6255101c6532',1,'uct.h']]], + ['uct_5fmd_5fflag_5fexported_5fmkey_815',['UCT_MD_FLAG_EXPORTED_MKEY',['../group___u_c_t___m_d.html#gga61dadd085c1777f559549e05962b2c9ea8aad09237d801dbd3a7636ebb18c40e4',1,'uct.h']]], + ['uct_5fmd_5fflag_5ffixed_816',['UCT_MD_FLAG_FIXED',['../group___u_c_t___m_d.html#gga61dadd085c1777f559549e05962b2c9eae948128d19128010bff52f39b2ea8528',1,'uct.h']]], + ['uct_5fmd_5fflag_5finvalidate_817',['UCT_MD_FLAG_INVALIDATE',['../group___u_c_t___m_d.html#gga61dadd085c1777f559549e05962b2c9ea3b11ef8fb3fcf99c71ce1f91b03ecd2d',1,'uct.h']]], + ['uct_5fmd_5fflag_5flast_818',['UCT_MD_FLAG_LAST',['../group___u_c_t___m_d.html#gga61dadd085c1777f559549e05962b2c9eac8f7c4abf5df8c2bffb5ad533c7102b3',1,'uct.h']]], + ['uct_5fmd_5fflag_5fneed_5fmemh_819',['UCT_MD_FLAG_NEED_MEMH',['../group___u_c_t___m_d.html#gga61dadd085c1777f559549e05962b2c9ea8badc53da14cdd45fa70178483091e55',1,'uct.h']]], + ['uct_5fmd_5fflag_5fneed_5frkey_820',['UCT_MD_FLAG_NEED_RKEY',['../group___u_c_t___m_d.html#gga61dadd085c1777f559549e05962b2c9eafc6830135c641eecf0200f9990257e10',1,'uct.h']]], + ['uct_5fmd_5fflag_5freg_821',['UCT_MD_FLAG_REG',['../group___u_c_t___m_d.html#gga61dadd085c1777f559549e05962b2c9eac2a33833ce3c103c3de54332c512eba7',1,'uct.h']]], + ['uct_5fmd_5fflag_5freg_5fdmabuf_822',['UCT_MD_FLAG_REG_DMABUF',['../group___u_c_t___m_d.html#gga61dadd085c1777f559549e05962b2c9ea88f4343ee73e7b4da46e98d07023b9f5',1,'uct.h']]], + ['uct_5fmd_5fflag_5frkey_5fptr_823',['UCT_MD_FLAG_RKEY_PTR',['../group___u_c_t___m_d.html#gga61dadd085c1777f559549e05962b2c9ea8e6750832a6a17fc5aff65c767d0e5b5',1,'uct.h']]], + ['uct_5fmd_5fflag_5fsockaddr_824',['UCT_MD_FLAG_SOCKADDR',['../group___u_c_t___m_d.html#gga61dadd085c1777f559549e05962b2c9ea1ef79afc094919112724f8eb82c2484b',1,'uct.h']]], + ['uct_5fmd_5fh_825',['uct_md_h',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga80ea2d5570f0cef850d315ce72ea8307',1,'uct_def.h']]], + ['uct_5fmd_5fiface_5fconfig_5fread_826',['uct_md_iface_config_read',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gace64468ec8d46cbcbcfa6efd74e1148c',1,'uct.h']]], + ['uct_5fmd_5fis_5fsockaddr_5faccessible_827',['uct_md_is_sockaddr_accessible',['../group___u_c_t___m_d.html#ga9d4cd6b6f3206610cbe83cab3eb1e90d',1,'uct.h']]], + ['uct_5fmd_5fmem_5faccess_5fall_828',['UCT_MD_MEM_ACCESS_ALL',['../group___u_c_t___m_d.html#gga3b0345adc84e4b3224366502aca5e11aa8de9fc3e5e9a93abee846dbce6f51471',1,'uct.h']]], + ['uct_5fmd_5fmem_5faccess_5flocal_5fread_829',['UCT_MD_MEM_ACCESS_LOCAL_READ',['../group___u_c_t___m_d.html#gga3b0345adc84e4b3224366502aca5e11aaec71b48ac78529034432e702ae2497af',1,'uct.h']]], + ['uct_5fmd_5fmem_5faccess_5flocal_5fwrite_830',['UCT_MD_MEM_ACCESS_LOCAL_WRITE',['../group___u_c_t___m_d.html#gga3b0345adc84e4b3224366502aca5e11aa3da522cc5178d7330279de64c6d8a42d',1,'uct.h']]], + ['uct_5fmd_5fmem_5faccess_5fremote_5fatomic_831',['UCT_MD_MEM_ACCESS_REMOTE_ATOMIC',['../group___u_c_t___m_d.html#gga3b0345adc84e4b3224366502aca5e11aa4478fefd476fe66f7a1721161e3773e1',1,'uct.h']]], + ['uct_5fmd_5fmem_5faccess_5fremote_5fget_832',['UCT_MD_MEM_ACCESS_REMOTE_GET',['../group___u_c_t___m_d.html#gga3b0345adc84e4b3224366502aca5e11aa4a699e49e99a57afab4fb7b4825e8a5e',1,'uct.h']]], + ['uct_5fmd_5fmem_5faccess_5fremote_5fput_833',['UCT_MD_MEM_ACCESS_REMOTE_PUT',['../group___u_c_t___m_d.html#gga3b0345adc84e4b3224366502aca5e11aa107516b36500372eac7e05bdb71cf4a1',1,'uct.h']]], + ['uct_5fmd_5fmem_5faccess_5frma_834',['UCT_MD_MEM_ACCESS_RMA',['../group___u_c_t___m_d.html#gga3b0345adc84e4b3224366502aca5e11aa53c0d5770a5c69086d0aaa58e7398fa8',1,'uct.h']]], + ['uct_5fmd_5fmem_5fadvise_835',['uct_md_mem_advise',['../group___u_c_t___m_d.html#gaf5f8ef1c6302792c726b294c84ef06c6',1,'uct.h']]], + ['uct_5fmd_5fmem_5fattr_836',['uct_md_mem_attr',['../group___u_c_t___m_d.html#structuct__md__mem__attr',1,'']]], + ['uct_5fmd_5fmem_5fattr_5ffield_837',['uct_md_mem_attr_field',['../group___u_c_t___m_d.html#gac4f1c9728c529e4f35eaf03bc14c6977',1,'uct.h']]], + ['uct_5fmd_5fmem_5fattr_5ffield_5falloc_5flength_838',['UCT_MD_MEM_ATTR_FIELD_ALLOC_LENGTH',['../group___u_c_t___m_d.html#ggac4f1c9728c529e4f35eaf03bc14c6977a7f5f99bb05148218a1855f3f8344aabb',1,'uct.h']]], + ['uct_5fmd_5fmem_5fattr_5ffield_5fbase_5faddress_839',['UCT_MD_MEM_ATTR_FIELD_BASE_ADDRESS',['../group___u_c_t___m_d.html#ggac4f1c9728c529e4f35eaf03bc14c6977a132548201e6dba2fca6b03385eed2356',1,'uct.h']]], + ['uct_5fmd_5fmem_5fattr_5ffield_5fdmabuf_5ffd_840',['UCT_MD_MEM_ATTR_FIELD_DMABUF_FD',['../group___u_c_t___m_d.html#ggac4f1c9728c529e4f35eaf03bc14c6977a1178afc62486924f953e18fbf1613754',1,'uct.h']]], + ['uct_5fmd_5fmem_5fattr_5ffield_5fdmabuf_5foffset_841',['UCT_MD_MEM_ATTR_FIELD_DMABUF_OFFSET',['../group___u_c_t___m_d.html#ggac4f1c9728c529e4f35eaf03bc14c6977a7511ff87de4e1dcd4140acc9a6131df4',1,'uct.h']]], + ['uct_5fmd_5fmem_5fattr_5ffield_5fmem_5ftype_842',['UCT_MD_MEM_ATTR_FIELD_MEM_TYPE',['../group___u_c_t___m_d.html#ggac4f1c9728c529e4f35eaf03bc14c6977a873fb4c4b884a7598873badb63a8caf9',1,'uct.h']]], + ['uct_5fmd_5fmem_5fattr_5ffield_5fsys_5fdev_843',['UCT_MD_MEM_ATTR_FIELD_SYS_DEV',['../group___u_c_t___m_d.html#ggac4f1c9728c529e4f35eaf03bc14c6977a1b869b2080c1ab765fa0b67a86dabb24',1,'uct.h']]], + ['uct_5fmd_5fmem_5fattr_5ffield_5ft_844',['uct_md_mem_attr_field_t',['../group___u_c_t___m_d.html#ga917d3c2d8def6607353178b53c159f79',1,'uct.h']]], + ['uct_5fmd_5fmem_5fattr_5ft_845',['uct_md_mem_attr_t',['../group___u_c_t___m_d.html#ga99d7da89ab336ca94345be7f887a5877',1,'uct.h']]], + ['uct_5fmd_5fmem_5fdereg_846',['uct_md_mem_dereg',['../group___u_c_t___m_d.html#gaf1e9ff0364ec4d2bb05c06a2fab67dd5',1,'uct.h']]], + ['uct_5fmd_5fmem_5fflag_5ffixed_847',['UCT_MD_MEM_FLAG_FIXED',['../group___u_c_t___m_d.html#gga3b0345adc84e4b3224366502aca5e11aac91502fd80954a19287b56c82d8c15e8',1,'uct.h']]], + ['uct_5fmd_5fmem_5fflag_5fhide_5ferrors_848',['UCT_MD_MEM_FLAG_HIDE_ERRORS',['../group___u_c_t___m_d.html#gga3b0345adc84e4b3224366502aca5e11aac9affab2e3fc8ce0237b8b7800731c49',1,'uct.h']]], + ['uct_5fmd_5fmem_5fflag_5flock_849',['UCT_MD_MEM_FLAG_LOCK',['../group___u_c_t___m_d.html#gga3b0345adc84e4b3224366502aca5e11aa177416f1bc52ecf58571f2320ea860f4',1,'uct.h']]], + ['uct_5fmd_5fmem_5fflag_5fnonblock_850',['UCT_MD_MEM_FLAG_NONBLOCK',['../group___u_c_t___m_d.html#gga3b0345adc84e4b3224366502aca5e11aa156afde3449517fd4d518148df8e3e24',1,'uct.h']]], + ['uct_5fmd_5fmem_5fflags_851',['uct_md_mem_flags',['../group___u_c_t___m_d.html#ga3b0345adc84e4b3224366502aca5e11a',1,'uct.h']]], + ['uct_5fmd_5fmem_5fquery_852',['uct_md_mem_query',['../group___u_c_t___m_d.html#ga7d8cf921f8fd8fba4545c568d495bc8f',1,'uct.h']]], + ['uct_5fmd_5fmem_5freg_853',['uct_md_mem_reg',['../group___u_c_t___m_d.html#gadafbaee4d8462954361fd2a41c8069e0',1,'uct.h']]], + ['uct_5fmd_5fmem_5fsymmetric_5frkey_854',['UCT_MD_MEM_SYMMETRIC_RKEY',['../group___u_c_t___m_d.html#gga3b0345adc84e4b3224366502aca5e11aa2c6e61ac2086a94e8880c8ed329c09d9',1,'uct.h']]], + ['uct_5fmd_5fmkey_5fpack_855',['uct_md_mkey_pack',['../group___u_c_t___m_d.html#ga91cc404f53a9ef031c7bfbe886c0f414',1,'uct.h']]], + ['uct_5fmd_5fopen_856',['uct_md_open',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga6254b927d3bfcb9699dbf82f0987b9ce',1,'uct.h']]], + ['uct_5fmd_5fops_5ft_857',['uct_md_ops_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gac8dbb0c7c104ee4eb86cb299e56a535e',1,'uct_def.h']]], + ['uct_5fmd_5fquery_858',['uct_md_query',['../group___u_c_t___m_d.html#gae7f6d3f902cff0370fe0f07f841898f1',1,'uct.h']]], + ['uct_5fmd_5fquery_5ftl_5fresources_859',['uct_md_query_tl_resources',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gae4572e36e60bf2665e59cc7ef04bb011',1,'uct.h']]], + ['uct_5fmd_5fresource_5fdesc_860',['uct_md_resource_desc',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__md__resource__desc',1,'']]], + ['uct_5fmd_5fresource_5fdesc_5ft_861',['uct_md_resource_desc_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gaf0054bef6a6e9a76677d1d9bac50a5cb',1,'uct.h']]], + ['uct_5fmd_5ft_862',['uct_md_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gad8a3d325a68dfb193354ac884f6ddd1d',1,'uct_def.h']]], + ['uct_5fmem_5fadvice_5ft_863',['uct_mem_advice_t',['../group___u_c_t___m_d.html#ga72172b231f5e9df777cb130b9f908397',1,'uct.h']]], + ['uct_5fmem_5falloc_864',['uct_mem_alloc',['../group___u_c_t___m_d.html#ga3c91345959561cd033670a9ae527d52f',1,'uct.h']]], + ['uct_5fmem_5falloc_5fparam_5ffield_5faddress_865',['UCT_MEM_ALLOC_PARAM_FIELD_ADDRESS',['../group___u_c_t___m_d.html#gga3421ca55bc67f5752ca6164f678a7923abcfd9def1c725531f11cbbcde9fedd6f',1,'uct.h']]], + ['uct_5fmem_5falloc_5fparam_5ffield_5fflags_866',['UCT_MEM_ALLOC_PARAM_FIELD_FLAGS',['../group___u_c_t___m_d.html#gga3421ca55bc67f5752ca6164f678a7923ae179d3ffed3e53b0e2cda2d6a62280d3',1,'uct.h']]], + ['uct_5fmem_5falloc_5fparam_5ffield_5fmds_867',['UCT_MEM_ALLOC_PARAM_FIELD_MDS',['../group___u_c_t___m_d.html#gga3421ca55bc67f5752ca6164f678a7923a122274e877d32afcfafd10cde3c0b8e7',1,'uct.h']]], + ['uct_5fmem_5falloc_5fparam_5ffield_5fmem_5ftype_868',['UCT_MEM_ALLOC_PARAM_FIELD_MEM_TYPE',['../group___u_c_t___m_d.html#gga3421ca55bc67f5752ca6164f678a7923a0f09a88dc239026aefa08e4597e0d9e6',1,'uct.h']]], + ['uct_5fmem_5falloc_5fparam_5ffield_5fname_869',['UCT_MEM_ALLOC_PARAM_FIELD_NAME',['../group___u_c_t___m_d.html#gga3421ca55bc67f5752ca6164f678a7923a97de3a2b66f4cd940a271df1b9632f83',1,'uct.h']]], + ['uct_5fmem_5falloc_5fparams_5ffield_5ft_870',['uct_mem_alloc_params_field_t',['../group___u_c_t___m_d.html#ga3421ca55bc67f5752ca6164f678a7923',1,'uct.h']]], + ['uct_5fmem_5falloc_5fparams_5ft_871',['uct_mem_alloc_params_t',['../group___u_c_t___m_d.html#structuct__mem__alloc__params__t',1,'']]], + ['uct_5fmem_5falloc_5fparams_5ft_2emds_872',['uct_mem_alloc_params_t.mds',['../group___u_c_t___m_d.html#structuct__mem__alloc__params__t_8mds',1,'']]], + ['uct_5fmem_5ffree_873',['uct_mem_free',['../group___u_c_t___m_d.html#ga55be17fdb04dcf28373bef0ddf423e94',1,'uct.h']]], + ['uct_5fmem_5fh_874',['uct_mem_h',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga2af4d7f2a70d4ac5eaef079dc68506b8',1,'uct_def.h']]], + ['uct_5fmsg_5fflags_875',['uct_msg_flags',['../group___u_c_t___a_m.html#ga139e5d124e16d412200bf64bdbccab1c',1,'uct.h']]], + ['uct_5fpack_5fcallback_5ft_876',['uct_pack_callback_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga75c4600da362988f9d4f4d53a294f36b',1,'uct_def.h']]], + ['uct_5fpending_5fcallback_5ft_877',['uct_pending_callback_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gad282a6c6faf7911791c3978bcfbb3c93',1,'uct_def.h']]], + ['uct_5fpending_5fpurge_5fcallback_5ft_878',['uct_pending_purge_callback_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga35d6acc042923019e0d5819b72a465f5',1,'uct_def.h']]], + ['uct_5fpending_5freq_879',['uct_pending_req',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__pending__req',1,'']]], + ['uct_5fpending_5freq_5ft_880',['uct_pending_req_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gaacadb8cfd53f7cafd39fd7f1ae12ec02',1,'uct_def.h']]], + ['uct_5fppn_5fbandwidth_881',['uct_ppn_bandwidth',['../namespace_3global_scope_4.html#structuct__ppn__bandwidth',1,'']]], + ['uct_5fprogress_5frecv_882',['UCT_PROGRESS_RECV',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga71bfe6e07ebbcc036f883b31db1e9e51a13a7d7c06d204f61b5de0cdf3ede1957',1,'uct.h']]], + ['uct_5fprogress_5fsend_883',['UCT_PROGRESS_SEND',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga71bfe6e07ebbcc036f883b31db1e9e51a5a00ade1aed7157a0662d8a4ae9cc2f5',1,'uct.h']]], + ['uct_5fprogress_5fthread_5fsafe_884',['UCT_PROGRESS_THREAD_SAFE',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga71bfe6e07ebbcc036f883b31db1e9e51a8cba06626715c4be748d16a7baf90b77',1,'uct.h']]], + ['uct_5fprogress_5ftypes_885',['uct_progress_types',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga71bfe6e07ebbcc036f883b31db1e9e51',1,'uct.h']]], + ['uct_5fquery_5fcomponents_886',['uct_query_components',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gac11a18f80ae695355914c32095e5c75d',1,'uct.h']]], + ['uct_5frelease_5fcomponent_5flist_887',['uct_release_component_list',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gadd4eea4cf8e757f5ddd2e9edb1942dd0',1,'uct.h']]], + ['uct_5frelease_5ftl_5fresource_5flist_888',['uct_release_tl_resource_list',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga1edfeac896c9ca285ab11580c904b558',1,'uct.h']]], + ['uct_5frkey_5fbundle_889',['uct_rkey_bundle',['../group___u_c_t___m_d.html#structuct__rkey__bundle',1,'']]], + ['uct_5frkey_5fbundle_5ft_890',['uct_rkey_bundle_t',['../group___u_c_t___m_d.html#gae63a147f419ca82f65db6ae556ac3b0f',1,'uct.h']]], + ['uct_5frkey_5fctx_5fh_891',['uct_rkey_ctx_h',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gab9a50bee74dc6d4674fb3800aab19da7',1,'uct_def.h']]], + ['uct_5frkey_5fptr_892',['uct_rkey_ptr',['../group___u_c_t___m_d.html#ga0d9f92b5814f82afc67c9f4a7ba348e3',1,'uct.h']]], + ['uct_5frkey_5frelease_893',['uct_rkey_release',['../group___u_c_t___m_d.html#gaea26840237c8c112e0c1505c1423cd30',1,'uct.h']]], + ['uct_5frkey_5ft_894',['uct_rkey_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga2ccb9c7b57d14f25db9d2e850c348180',1,'uct_def.h']]], + ['uct_5frkey_5funpack_895',['uct_rkey_unpack',['../group___u_c_t___m_d.html#ga2927741255a1ab0efc82b965f4266efa',1,'uct.h']]], + ['uct_5fsend_5fflag_5fpeer_5fcheck_896',['UCT_SEND_FLAG_PEER_CHECK',['../group___u_c_t___a_m.html#gga139e5d124e16d412200bf64bdbccab1ca222442e08a093d34d6266e810346f4d8',1,'uct.h']]], + ['uct_5fsend_5fflag_5fsignaled_897',['UCT_SEND_FLAG_SIGNALED',['../group___u_c_t___a_m.html#gga139e5d124e16d412200bf64bdbccab1ca5af3a2c43c1e989a4f21f97188f38b06',1,'uct.h']]], + ['uct_5fsockaddr_5facc_5flocal_898',['UCT_SOCKADDR_ACC_LOCAL',['../group___u_c_t___m_d.html#ggacb560e35a1b169ca88792200817e219ea0f21e1dc1e98d3ee0291cc345bfe1fde',1,'uct.h']]], + ['uct_5fsockaddr_5facc_5fremote_899',['UCT_SOCKADDR_ACC_REMOTE',['../group___u_c_t___m_d.html#ggacb560e35a1b169ca88792200817e219ea4e0f66a27582dfec8698a77102fb368e',1,'uct.h']]], + ['uct_5fsockaddr_5faccessibility_5ft_900',['uct_sockaddr_accessibility_t',['../group___u_c_t___m_d.html#gacb560e35a1b169ca88792200817e219e',1,'uct.h']]], + ['uct_5fsockaddr_5fconn_5frequest_5fcallback_5ft_901',['uct_sockaddr_conn_request_callback_t',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga18a175c5b28386d6693a35ae432466ef',1,'uct_def.h']]], + ['uct_5ftag_5fcontext_902',['uct_tag_context',['../structuct__tag__context.html',1,'']]], + ['uct_5ftag_5fcontext_5ft_903',['uct_tag_context_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga65b6470372d51789a3a96cc5ea317f9d',1,'uct_def.h']]], + ['uct_5ftag_5frecv_5fcb_5finline_5fdata_904',['UCT_TAG_RECV_CB_INLINE_DATA',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga726ca809ffd3d67ab4b8476646f26635a5dcb013c4470abbabc764c473898df3e',1,'uct.h']]], + ['uct_5ftag_5ft_905',['uct_tag_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga162e00587cfb6506fe1c038c0f63e2ca',1,'uct_def.h']]], + ['uct_5ftag_5funexp_5feager_5fcb_5ft_906',['uct_tag_unexp_eager_cb_t',['../group___u_c_t___t_a_g.html#ga4ba3d3c3d35e02d9d6952d927c9b53bd',1,'uct_def.h']]], + ['uct_5ftag_5funexp_5frndv_5fcb_5ft_907',['uct_tag_unexp_rndv_cb_t',['../group___u_c_t___t_a_g.html#ga8534a90a1887092c91c4bcaf029ac6fd',1,'uct_def.h']]], + ['uct_5ftl_5fresource_5fdesc_908',['uct_tl_resource_desc',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__tl__resource__desc',1,'']]], + ['uct_5ftl_5fresource_5fdesc_5ft_909',['uct_tl_resource_desc_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gab5f56e3ba73460c560c7c1a833a991b8',1,'uct.h']]], + ['uct_5funpack_5fcallback_5ft_910',['uct_unpack_callback_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga58d033b0b2eacc05af41af8c07fde4da',1,'uct_def.h']]], + ['uct_5fworker_5fcb_5fid_5ft_911',['uct_worker_cb_id_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga9ec2e5d2c228f55751038dad0691c67b',1,'uct_def.h']]], + ['uct_5fworker_5fcreate_912',['uct_worker_create',['../group___u_c_t___c_o_n_t_e_x_t.html#ga6f21b4dd1dc16d55f4a8e6bf65f8757f',1,'uct.h']]], + ['uct_5fworker_5fdestroy_913',['uct_worker_destroy',['../group___u_c_t___c_o_n_t_e_x_t.html#ga22608452cb78bb1d3c9253860025c4fd',1,'uct.h']]], + ['uct_5fworker_5fh_914',['uct_worker_h',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga2c776904a7202aa95ec1ceecfe74f2f9',1,'uct_def.h']]], + ['uct_5fworker_5fprogress_915',['uct_worker_progress',['../group___u_c_t___c_o_n_t_e_x_t.html#ga4ec9fae48afd24d7fa7c5537e76b54e5',1,'uct.h']]], + ['uct_5fworker_5fprogress_5fregister_5fsafe_916',['uct_worker_progress_register_safe',['../group___u_c_t___c_o_n_t_e_x_t.html#ga358ed4a23be49a3c1ace5d78a0b2ee9c',1,'uct.h']]], + ['uct_5fworker_5fprogress_5funregister_5fsafe_917',['uct_worker_progress_unregister_safe',['../group___u_c_t___c_o_n_t_e_x_t.html#ga2dcbb085b3f94e5a2b6771c4cc7bcbbf',1,'uct.h']]], + ['unified_20communication_20protocol_20ucp_20api_918',['Unified Communication Protocol (UCP) API',['../group___u_c_p___a_p_i.html',1,'']]], + ['unified_20communication_20services_20ucs_20api_919',['Unified Communication Services (UCS) API',['../group___u_c_s___a_p_i.html',1,'']]], + ['unified_20communication_20transport_20uct_20api_920',['Unified Communication Transport (UCT) API',['../group___u_c_t___a_p_i.html',1,'']]], + ['unpack_921',['unpack',['../group___u_c_p___d_a_t_a_t_y_p_e.html#gaef4bcfb34731b7f113479b221304b698',1,'ucp_generic_dt_ops']]], + ['up_20routines_922',['UCP Wake-up routines',['../group___u_c_p___w_a_k_e_u_p.html',1,'']]], + ['user_5fdata_923',['user_data',['../group___u_c_p___w_o_r_k_e_r.html#a2c277d353e134219265887c4f5339159',1,'ucp_worker_params::user_data'],['../group___u_c_p___e_n_d_p_o_i_n_t.html#a202ee8e08e637b9e868387ab294a684c',1,'ucp_stream_poll_ep::user_data'],['../group___u_c_p___c_o_n_t_e_x_t.html#aa9092d65a2e4e55368ca4f88775c190b',1,'ucp_request_param_t::user_data'],['../group___u_c_p___e_n_d_p_o_i_n_t.html#adaf49e16ee05400f715f432e442336cb',1,'ucp_ep_params::user_data'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a107bb6eec86e0f877d2f256378ea0df8',1,'uct_ep_params::user_data'],['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a8a9d41566f96e942418c48139ccede90',1,'uct_listener_params::user_data']]] +]; diff --git a/api/v1.17/html/search/all_13.js b/api/v1.17/html/search/all_13.js new file mode 100644 index 00000000000..29dfb4b8f41 --- /dev/null +++ b/api/v1.17/html/search/all_13.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['wake_20up_20routines_0',['UCP Wake-up routines',['../group___u_c_p___w_a_k_e_u_p.html',1,'']]], + ['with_20signal_20handler_20functions_1',['Interaction with Signal Handler Functions',['../md_docs_2doxygen_2conventions.html#Interaction',1,'']]], + ['worker_2',['UCP Worker',['../group___u_c_p___w_o_r_k_e_r.html',1,'']]], + ['worker_5fuid_3',['worker_uid',['../group___u_c_p___w_o_r_k_e_r.html#a682d3477655dc66072e03530d95239f2',1,'ucp_worker_address_attr']]] +]; diff --git a/api/v1.17/html/search/all_2.js b/api/v1.17/html/search/all_2.js new file mode 100644 index 00000000000..3e766533e3d --- /dev/null +++ b/api/v1.17/html/search/all_2.js @@ -0,0 +1,31 @@ +var searchData= +[ + ['cap_0',['cap',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a6c55cf8697354f4ace91142100ed074e',1,'uct_iface_attr::cap'],['../group___u_c_t___m_d.html#afc943a5af89c1028723bc0046092c067',1,'uct_md_attr::cap']]], + ['capabilities_1',['capabilities',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___e_v_e_n_t___c_a_p.html',1,'UCT interface for asynchronous event capabilities'],['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html',1,'UCT interface operations and capabilities']]], + ['cb_2',['cb',['../group___u_c_p___c_o_n_t_e_x_t.html#a1859c77f14dee64f623bd9f9111200c7',1,'ucp_request_param_t::cb'],['../group___u_c_p___w_o_r_k_e_r.html#acd54cdefba3f3f5e145dfe2360485659',1,'ucp_am_handler_param::cb'],['../group___u_c_p___w_o_r_k_e_r.html#a3017ef77fb807d87b60667df14f6c0b0',1,'ucp_listener_accept_handler::cb'],['../group___u_c_p___c_o_m_m.html#a0bf3f446a1821a62dd3a300584792e33',1,'ucp_err_handler::cb'],['../group___u_c_p___w_o_r_k_e_r.html#a55ac5ba9e07ca64d55e22730038a4018',1,'ucp_listener_conn_handler::cb'],['../namespace_3global_scope_4.html#a57233b5af77231c4fb6e8d0c7a9cf279',1,'ucs_callbackq_elem::cb']]], + ['cb_5fflags_3',['cb_flags',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a8a9d798e64e80303680078082cf16dbb',1,'uct_iface_params.mode.sockaddr']]], + ['client_20server_20operations_4',['UCT client-server operations',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html',1,'']]], + ['client_5faddress_5',['client_address',['../group___u_c_p___w_o_r_k_e_r.html#a8ca1dc70d395335dc9f8fe20e9de1a0d',1,'ucp_conn_request_attr::client_address'],['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ab9e98cce78462e28a6593a891f2aa3bc',1,'uct_cm_listener_conn_request_args::client_address']]], + ['client_5fid_6',['client_id',['../group___u_c_p___w_o_r_k_e_r.html#a41afbbfba922c2bdc4f35e2c4ecfcaa4',1,'ucp_worker_params::client_id'],['../group___u_c_p___w_o_r_k_e_r.html#aff4d88d6fd3b2613e058bbcf43d0815b',1,'ucp_conn_request_attr::client_id']]], + ['cm_7',['cm',['../group___u_c_t___r_e_s_o_u_r_c_e.html#aa8133488ec45605b0c825e66d12ba1a8',1,'uct_ep_params']]], + ['cm_5fresolve_5fcb_8',['cm_resolve_cb',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a84e49366f4967ac76fad12d27295ec87',1,'uct_ep_params']]], + ['communication_20context_9',['UCT Communication Context',['../group___u_c_t___c_o_n_t_e_x_t.html',1,'']]], + ['communication_20protocol_20ucp_20api_10',['Unified Communication Protocol (UCP) API',['../group___u_c_p___a_p_i.html',1,'']]], + ['communication_20resource_11',['Communication Resource',['../group___u_c_s___r_e_s_o_u_r_c_e.html',1,'UCS Communication Resource'],['../group___u_c_t___r_e_s_o_u_r_c_e.html',1,'UCT Communication Resource']]], + ['communication_20routines_12',['UCP Communication routines',['../group___u_c_p___c_o_m_m.html',1,'']]], + ['communication_20services_20ucs_20api_13',['Unified Communication Services (UCS) API',['../group___u_c_s___a_p_i.html',1,'']]], + ['communication_20transport_20uct_20api_14',['Unified Communication Transport (UCT) API',['../group___u_c_t___a_p_i.html',1,'']]], + ['completed_5fcb_15',['completed_cb',['../structuct__tag__context.html#a8a872809ba82414123000deeb3f8dd2f',1,'uct_tag_context']]], + ['component_5fname_16',['component_name',['../group___u_c_t___m_d.html#a1f337f217f10d019529e79d9fe60af5c',1,'uct_md_attr']]], + ['configuration_17',['UCP Configuration',['../group___u_c_p___c_o_n_f_i_g.html',1,'']]], + ['conn_5fhandler_18',['conn_handler',['../group___u_c_p___w_o_r_k_e_r.html#a0694aacde5fff09dc75e556e8116098a',1,'ucp_listener_params']]], + ['conn_5fpriv_5fdata_19',['conn_priv_data',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a3557ea63ebf0f959c06ad78a592cd311',1,'uct_cm_remote_data']]], + ['conn_5fpriv_5fdata_5flength_20',['conn_priv_data_length',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ad68a816000641cdaab8b7bae782c005d',1,'uct_cm_remote_data']]], + ['conn_5frequest_21',['conn_request',['../group___u_c_p___e_n_d_p_o_i_n_t.html#a9fbba62cd4a470f2bc7c6f7e55fe3db1',1,'ucp_ep_params::conn_request'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#ad852c3138b06acb342e7f9c78ade8e41',1,'uct_ep_params::conn_request'],['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#aec2a2194a329ef66262756de423a3cb2',1,'uct_cm_listener_conn_request_args::conn_request']]], + ['conn_5frequest_5farg_22',['conn_request_arg',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ad80d0ef2043347df663b059b9f103bcd',1,'uct_iface_params.mode.sockaddr']]], + ['conn_5frequest_5fcb_23',['conn_request_cb',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a84a1de42f58965886c5d457480be3b2d',1,'uct_listener_params::conn_request_cb'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a191b74a436fbf612740a10737cc930c2',1,'uct_iface_params.mode.sockaddr::conn_request_cb']]], + ['context_24',['Context',['../group___u_c_p___c_o_n_t_e_x_t.html',1,'UCP Application Context'],['../group___u_c_t___c_o_n_t_e_x_t.html',1,'UCT Communication Context']]], + ['conventions_20and_20notations_25',['Conventions and Notations',['../md_docs_2doxygen_2conventions.html',1,'']]], + ['count_26',['count',['../group___u_c_p___d_a_t_a_t_y_p_e.html#a03dd4423d8570e5b33af6a2f2a4c164e',1,'ucp_datatype_attr::count'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#ac80f9b64f46a8a3a9de6cb0b121667ab',1,'uct_completion::count'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#addb247a8d80907156df00159bbafcda5',1,'uct_iov::count'],['../group___u_c_t___m_d.html#ae2942a04780e223b215eb8b663cf5353',1,'uct_mem_alloc_params_t.mds::count']]], + ['cpu_5fmask_27',['cpu_mask',['../group___u_c_p___w_o_r_k_e_r.html#afc8f70f3ff12f36ea34ad40ff12de61e',1,'ucp_worker_params::cpu_mask'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a7093f64ec5efe2f1c3833dbe90b9099a',1,'uct_iface_params::cpu_mask']]] +]; diff --git a/api/v1.17/html/search/all_3.js b/api/v1.17/html/search/all_3.js new file mode 100644 index 00000000000..4ae76a9da55 --- /dev/null +++ b/api/v1.17/html/search/all_3.js @@ -0,0 +1,25 @@ +var searchData= +[ + ['data_20type_20routines_0',['UCP Data type routines',['../group___u_c_p___d_a_t_a_t_y_p_e.html',1,'']]], + ['datatype_1',['datatype',['../group___u_c_p___c_o_n_t_e_x_t.html#a3988d603154f90eb5405785cac62b65f',1,'ucp_request_param_t']]], + ['debug_5fstring_2',['debug_string',['../group___u_c_p___c_o_m_m.html#aa284657c27e1a8d6d2653f12cfb61bc5',1,'ucp_request_attr_t']]], + ['debug_5fstring_5fsize_3',['debug_string_size',['../group___u_c_p___c_o_m_m.html#a871b3929bfe0b97d249016e57fd2fdd7',1,'ucp_request_attr_t']]], + ['dedicated_4',['dedicated',['../namespace_3global_scope_4.html#ab415588ec7332c0264ac81d883dd7a8c',1,'uct_ppn_bandwidth']]], + ['deprecated_20list_5',['Deprecated List',['../deprecated.html',1,'']]], + ['design_6',['Design',['../md_docs_2doxygen_2design.html',1,'']]], + ['detect_5fmem_5ftypes_7',['detect_mem_types',['../group___u_c_t___m_d.html#a4920c15760d7c80d94f2458a8db35982',1,'uct_md_attr.cap']]], + ['dev_5faddr_8',['dev_addr',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a273d48d73a6813f2fe097026d739e9d9',1,'uct_ep_params::dev_addr'],['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ada382f435e44b388e3e29b16a04c3808',1,'uct_cm_remote_data::dev_addr']]], + ['dev_5faddr_5flength_9',['dev_addr_length',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a05768f24babff9b522b4845dc2672c55',1,'uct_cm_remote_data']]], + ['dev_5fname_10',['dev_name',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a19260a4faff281f45363008cbcaa0f41',1,'uct_tl_resource_desc::dev_name'],['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a10c637e00793a55862826870bfe6499d',1,'uct_cm_ep_priv_data_pack_args::dev_name'],['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#af750fc4d3be08d8dcd81f452b1ba5ab4',1,'uct_cm_ep_resolve_args::dev_name'],['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a718770a6c8d147fadd63490c029de6d2',1,'uct_cm_listener_conn_request_args::dev_name'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a2fc9141c264d49c58c0377dd85b43744',1,'uct_iface_params.mode.device::dev_name']]], + ['dev_5fnum_5fpaths_11',['dev_num_paths',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ac9c279de0e13a96a683baf04d3c40c46',1,'uct_iface_attr']]], + ['dev_5ftype_12',['dev_type',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a83b6513b96f2a97a82dcd3ab751c996a',1,'uct_tl_resource_desc']]], + ['device_13',['device',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a913f9c49dcb544e2087cee284f4a00b7',1,'uct_iface_params.mode']]], + ['device_5faddr_5flen_14',['device_addr_len',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a150fb2fb81e47e2a97571147cdc1647e',1,'uct_iface_attr']]], + ['device_5fname_15',['device_name',['../group___u_c_p___e_n_d_p_o_i_n_t.html#a5a1ae736a47936285f9cf51ad61b0821',1,'ucp_transport_entry_t']]], + ['disconnect_5fcb_16',['disconnect_cb',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ac270000f4e5a1bbcba955098ea7e8e6a',1,'uct_ep_params']]], + ['dmabuf_5ffd_17',['dmabuf_fd',['../group___u_c_t___m_d.html#a84fd9cd1ae1fcdbaa0bd6e5cf8ac32a5',1,'uct_md_mem_attr']]], + ['dmabuf_5foffset_18',['dmabuf_offset',['../group___u_c_t___m_d.html#aa91e5831a71cbe0b19c274178cbb1353',1,'uct_md_mem_attr']]], + ['document_19',['Scope of the Document',['../index.html#Scope',1,'']]], + ['document_20status_20',['Document Status',['../index.html#Status',1,'']]], + ['domain_21',['UCT Memory Domain',['../group___u_c_t___m_d.html',1,'']]] +]; diff --git a/api/v1.17/html/search/all_4.js b/api/v1.17/html/search/all_4.js new file mode 100644 index 00000000000..2da7cd09d8c --- /dev/null +++ b/api/v1.17/html/search/all_4.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['eager_0',['eager',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a5b154520a22cb4ca5f8505fb0525abe6',1,'uct_iface_attr.cap.tag']]], + ['eager_5farg_1',['eager_arg',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a7c6b1ea224405a00438306212d30a172',1,'uct_iface_params']]], + ['eager_5fcb_2',['eager_cb',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a3e70569e1bf8a8d62fbc686dd147fd56',1,'uct_iface_params']]], + ['endpoint_3',['UCP Endpoint',['../group___u_c_p___e_n_d_p_o_i_n_t.html',1,'']]], + ['entries_4',['entries',['../group___u_c_p___e_n_d_p_o_i_n_t.html#a4603a2147c2627572889484eeed7a32e',1,'ucp_transports_t']]], + ['entry_5fsize_5',['entry_size',['../group___u_c_p___e_n_d_p_o_i_n_t.html#a0f09e5a459259f70ee7644f62daa2adc',1,'ucp_transports_t']]], + ['ep_6',['ep',['../group___u_c_p___e_n_d_p_o_i_n_t.html#aa9703a325b9dc242facae719f6cef8a7',1,'ucp_stream_poll_ep']]], + ['ep_5faddr_5flen_7',['ep_addr_len',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a70955f4d39111b0a48c85e0ff65768a0',1,'uct_iface_attr']]], + ['err_5fhandler_8',['err_handler',['../group___u_c_p___e_n_d_p_o_i_n_t.html#aaf329de9e2b45311099cee8c9df43a20',1,'ucp_ep_params::err_handler'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#afc90f76dc754aa478af524ac7c9d3f51',1,'uct_iface_params::err_handler']]], + ['err_5fhandler_5farg_9',['err_handler_arg',['../group___u_c_t___r_e_s_o_u_r_c_e.html#abd1425d7ce0507acc97361abc56ea66d',1,'uct_iface_params']]], + ['err_5fhandler_5fflags_10',['err_handler_flags',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a01b7ef6558dbe6f91ac5c59b63d5e0dd',1,'uct_iface_params']]], + ['err_5fmode_11',['err_mode',['../group___u_c_p___e_n_d_p_o_i_n_t.html#a50ce29893509695caa5b70ab4525a4d6',1,'ucp_ep_params']]], + ['estimated_5fnum_5feps_12',['estimated_num_eps',['../group___u_c_p___c_o_n_f_i_g.html#a5881757ea71d8c3ff7c15632a6cbd699',1,'ucp_params']]], + ['estimated_5fnum_5fppn_13',['estimated_num_ppn',['../group___u_c_p___c_o_n_f_i_g.html#ab5966a27f9f4cf476560f9c87ac839cc',1,'ucp_params']]], + ['estimated_5ftime_14',['estimated_time',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ac8864d77a5f8d333c2de912ad621626a',1,'ucp_ep_evaluate_perf_attr_t']]], + ['event_20capabilities_15',['UCT interface for asynchronous event capabilities',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___e_v_e_n_t___c_a_p.html',1,'']]], + ['event_5ffd_16',['event_fd',['../group___u_c_p___w_o_r_k_e_r.html#aaeaf0e7ec196ed72ee2b52183f8d1d7d',1,'ucp_worker_params']]], + ['event_5fflags_17',['event_flags',['../group___u_c_t___r_e_s_o_u_r_c_e.html#af1b7cb88db5bf93bba7cbcaa503cbd6c',1,'uct_iface_attr.cap']]], + ['events_18',['events',['../group___u_c_p___w_o_r_k_e_r.html#a89b9add865222b57caee81874704ba89',1,'ucp_worker_params']]], + ['exported_5fmemh_5fbuffer_19',['exported_memh_buffer',['../group___u_c_p___m_e_m.html#af4b12bd23e90295c7503e6dc19063a6b',1,'ucp_mem_map_params']]] +]; diff --git a/api/v1.17/html/search/all_5.js b/api/v1.17/html/search/all_5.js new file mode 100644 index 00000000000..eb71ea9288f --- /dev/null +++ b/api/v1.17/html/search/all_5.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['fairness_0',['Fairness',['../md_docs_2doxygen_2conventions.html#Fairness',1,'']]], + ['fast_5felems_1',['fast_elems',['../namespace_3global_scope_4.html#a00e13bcee0aa60124620ed02e5cd9116',1,'ucs_callbackq']]], + ['features_2',['features',['../group___u_c_p___c_o_n_f_i_g.html#afe7ed2a6c6ceb48e18a04f524d844e67',1,'ucp_params::features'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a967dbb2a49191e0b028f7058938293c6',1,'uct_iface_params::features']]], + ['field_5fmask_3',['field_mask',['../group___u_c_p___d_a_t_a_t_y_p_e.html#a416b16fac9ac4cc99a06833eb6dbdfa9',1,'ucp_datatype_attr::field_mask'],['../group___u_c_p___c_o_n_f_i_g.html#a62d432cd22de13ccc9bb12edeb9c566b',1,'ucp_params::field_mask'],['../group___u_c_p___c_o_n_t_e_x_t.html#a529751be1cb45aff76dde0e5bf22b6d9',1,'ucp_lib_attr::field_mask'],['../group___u_c_p___c_o_n_t_e_x_t.html#ae4603d33274d3dd0bf41e1d759513601',1,'ucp_context_attr::field_mask'],['../group___u_c_p___w_o_r_k_e_r.html#af0f34f82bba00221aa22ec54fa5efc0f',1,'ucp_worker_attr::field_mask'],['../group___u_c_p___m_e_m.html#a812a817d17b02abaa6518d12d07bbba5',1,'ucp_rkey_compare_params::field_mask'],['../group___u_c_p___w_o_r_k_e_r.html#a33863ec848e47f79d2e14181fe2aa921',1,'ucp_worker_params::field_mask'],['../group___u_c_p___w_o_r_k_e_r.html#a596a9aee8bfbd1c232c6d63549c75f08',1,'ucp_worker_address_attr::field_mask'],['../group___u_c_p___e_n_d_p_o_i_n_t.html#afffe0975a57573bd318e72e59bd53957',1,'ucp_ep_evaluate_perf_param_t::field_mask'],['../group___u_c_p___e_n_d_p_o_i_n_t.html#a3506b654e12be644d0ffe96368106142',1,'ucp_ep_evaluate_perf_attr_t::field_mask'],['../group___u_c_p___w_o_r_k_e_r.html#aaaa6353f56fd585d7c83c363380703f4',1,'ucp_listener_attr::field_mask'],['../group___u_c_p___w_o_r_k_e_r.html#ad6a97d8268992c34631ac773a6c2148b',1,'ucp_conn_request_attr::field_mask'],['../group___u_c_p___w_o_r_k_e_r.html#afb01e3b0d3c0a04cef0cde4f849fcc1d',1,'ucp_listener_params::field_mask'],['../group___u_c_p___m_e_m.html#aaeaeceb96d57c6cd5048abeda3fcb87f',1,'ucp_mem_map_params::field_mask'],['../group___u_c_p___c_o_m_m.html#a311396d670dcb5ca9941dc17a8ad23d7',1,'ucp_request_attr_t::field_mask'],['../group___u_c_p___w_o_r_k_e_r.html#a8f31d53e411769961286865cb9332f6f',1,'ucp_am_handler_param::field_mask'],['../group___u_c_p___m_e_m.html#a01c09d6fdafcd62e733cece26166e036',1,'ucp_mem_advise_params::field_mask'],['../group___u_c_p___m_e_m.html#aafd1c1f51c5170b30695d9f73aad1f99',1,'ucp_memh_pack_params::field_mask'],['../group___u_c_p___m_e_m.html#a29dab951ef791f596be6a08e7fc88cb6',1,'ucp_memh_buffer_release_params::field_mask'],['../group___u_c_p___e_n_d_p_o_i_n_t.html#a385c4a4337266da2a874e5ff533fbab2',1,'ucp_ep_attr::field_mask'],['../group___u_c_p___m_e_m.html#ac2b9b68d716c78b3750f50f599259e66',1,'ucp_mem_attr::field_mask'],['../group___u_c_p___e_n_d_p_o_i_n_t.html#ab7b3f3ba1d402a621b8ea708dcf2387b',1,'ucp_ep_params::field_mask'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#ad95df67b474d3f51629e0a6d0ee2537e',1,'uct_component_attr::field_mask'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a9e1d45a55b7e9629eb548f27bea940a0',1,'uct_iface_params::field_mask'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a9c1ea4678d33fd3f741856135ad61d23',1,'uct_ep_params::field_mask'],['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a360893687dea33e2451afc89b89cf858',1,'uct_ep_connect_params::field_mask'],['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a384bf8b975a0d90b7117f4e393684e3d',1,'uct_cm_attr::field_mask'],['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#abd499e7b852c6af527c8db5a010040b6',1,'uct_listener_attr::field_mask'],['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a2106149ec63faa5e1aebe7c7b1f941d6',1,'uct_listener_params::field_mask'],['../group___u_c_t___m_d.html#a95cf319a4733fed89f7b52b66f82f84a',1,'uct_md_mem_attr::field_mask'],['../group___u_c_t___m_d.html#ab06683bb31a585ea60b85f6f0f3126c8',1,'uct_mem_alloc_params_t::field_mask'],['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a2c613c2ce5d4a428c87a0d83849875ca',1,'uct_cm_ep_priv_data_pack_args::field_mask'],['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#abca562cc9e4c45a606ae464815d6cf1a',1,'uct_cm_ep_resolve_args::field_mask'],['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#af27cfe2f1146f9e7f8481d192728640e',1,'uct_cm_remote_data::field_mask'],['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ad79f7025c8f43a961b3f8d0501b45188',1,'uct_cm_listener_conn_request_args::field_mask'],['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a07453861a47b7c717f6e89356f75398e',1,'uct_cm_ep_client_connect_args::field_mask'],['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a96b97f088ce727e04b1de822227b3283',1,'uct_cm_ep_server_conn_notify_args::field_mask']]], + ['file_5ffilter_4',['file_filter',['../namespace_3global_scope_4.html#a24ae3d6f63dc62e024f4dc9b3af519d2',1,'ucs_log_component_config']]], + ['finish_5',['finish',['../group___u_c_p___d_a_t_a_t_y_p_e.html#ga09ee4ed178f4c27feec4e37f52a8e17b',1,'ucp_generic_dt_ops']]], + ['flags_6',['flags',['../group___u_c_p___w_o_r_k_e_r.html#adbd9725024f5138a693196f11dab124c',1,'ucp_worker_params::flags'],['../group___u_c_p___e_n_d_p_o_i_n_t.html#a1e761ffd7b8edf7399ab497600200266',1,'ucp_stream_poll_ep::flags'],['../group___u_c_p___m_e_m.html#a668567560d65f2e0458159d444fb89ca',1,'ucp_mem_map_params::flags'],['../group___u_c_p___c_o_n_t_e_x_t.html#a55a8ff2559470c5def6077a86ee9d898',1,'ucp_request_param_t::flags'],['../group___u_c_p___w_o_r_k_e_r.html#a061115b2dc01fb803ae8082bd41f8730',1,'ucp_am_handler_param::flags'],['../group___u_c_p___m_e_m.html#a3e9ba8e33dd1daf74e341dee2abacff7',1,'ucp_memh_pack_params::flags'],['../group___u_c_p___e_n_d_p_o_i_n_t.html#a9bb65021187347fe311535857e19e6c3',1,'ucp_ep_params::flags'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#ad2800e9666be0be84926f768eac792a2',1,'uct_component_attr::flags'],['../group___u_c_t___m_d.html#a8180ccc5d99649919a9061c9ebb2504f',1,'uct_mem_alloc_params_t::flags'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a4e5868d676cb634aa75b125a0f741abf',1,'uct_iface_attr.cap::flags'],['../group___u_c_t___m_d.html#a4e5868d676cb634aa75b125a0f741abf',1,'uct_md_attr.cap::flags']]], + ['fop_5fflags_7',['fop_flags',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a564c7d941f5f339c0ed63712bdf96b29',1,'uct_iface_attr.cap.atomic32::fop_flags'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a564c7d941f5f339c0ed63712bdf96b29',1,'uct_iface_attr.cap.atomic64::fop_flags']]], + ['for_20asynchronous_20event_20capabilities_8',['UCT interface for asynchronous event capabilities',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___e_v_e_n_t___c_a_p.html',1,'']]], + ['func_9',['func',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a34d9a5e03c0d9199a2d540f1a2cee5a2',1,'uct_completion::func'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a638accaa60c4c3f373c6d12c2ea74c6c',1,'uct_pending_req::func']]], + ['functions_10',['Interaction with Signal Handler Functions',['../md_docs_2doxygen_2conventions.html#Interaction',1,'']]] +]; diff --git a/api/v1.17/html/search/all_6.js b/api/v1.17/html/search/all_6.js new file mode 100644 index 00000000000..4238bf111af --- /dev/null +++ b/api/v1.17/html/search/all_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['get_0',['get',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ab5eda0a74558a342cf659187f06f746f',1,'uct_iface_attr.cap']]] +]; diff --git a/api/v1.17/html/search/all_7.js b/api/v1.17/html/search/all_7.js new file mode 100644 index 00000000000..94f54bda328 --- /dev/null +++ b/api/v1.17/html/search/all_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['handle_0',['handle',['../group___u_c_t___m_d.html#ab42e33b02da0cc7023495793fae7f569',1,'uct_rkey_bundle']]], + ['handler_20functions_1',['Interaction with Signal Handler Functions',['../md_docs_2doxygen_2conventions.html#Interaction',1,'']]] +]; diff --git a/api/v1.17/html/search/all_8.js b/api/v1.17/html/search/all_8.js new file mode 100644 index 00000000000..49151e4fe13 --- /dev/null +++ b/api/v1.17/html/search/all_8.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['id_0',['id',['../group___u_c_p___w_o_r_k_e_r.html#ad0c6157f387e18cb4d92a37a638274af',1,'ucp_am_handler_param']]], + ['iface_1',['iface',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a21e3628c5ffcafcdeb732f4f9687aa30',1,'uct_ep_params']]], + ['iface_5faddr_2',['iface_addr',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ae8c9ada98be19a83ab9cd2af30203d5f',1,'uct_ep_params']]], + ['iface_5faddr_5flen_3',['iface_addr_len',['../group___u_c_t___r_e_s_o_u_r_c_e.html#adaeded4e728f80628ff6d29eeae7a5b0',1,'uct_iface_attr']]], + ['interaction_20with_20signal_20handler_20functions_4',['Interaction with Signal Handler Functions',['../md_docs_2doxygen_2conventions.html#Interaction',1,'']]], + ['interface_20for_20asynchronous_20event_20capabilities_5',['UCT interface for asynchronous event capabilities',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___e_v_e_n_t___c_a_p.html',1,'']]], + ['interface_20operations_20and_20capabilities_6',['UCT interface operations and capabilities',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html',1,'']]], + ['introduction_7',['Introduction',['../md_docs_2doxygen_2intro.html',1,'']]] +]; diff --git a/api/v1.17/html/search/all_9.js b/api/v1.17/html/search/all_9.js new file mode 100644 index 00000000000..018a712a0f3 --- /dev/null +++ b/api/v1.17/html/search/all_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['keepalive_5finterval_0',['keepalive_interval',['../group___u_c_t___r_e_s_o_u_r_c_e.html#afbbbea17089ee8ff5ef0ef6ef3199cfe',1,'uct_iface_params']]] +]; diff --git a/api/v1.17/html/search/all_a.js b/api/v1.17/html/search/all_a.js new file mode 100644 index 00000000000..448d2d44973 --- /dev/null +++ b/api/v1.17/html/search/all_a.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['latency_0',['latency',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ace9cf2c31674223b000dff0e72c5d533',1,'uct_iface_attr']]], + ['length_1',['length',['../group___u_c_p___d_a_t_a_t_y_p_e.html#a776d38e0b127efb673685644b6816663',1,'ucp_dt_iov::length'],['../group___u_c_p___m_e_m.html#a36d735fe974dd85677474c028edb2af8',1,'ucp_mem_map_params::length'],['../group___u_c_p___c_o_n_t_e_x_t.html#a6fd83122b93c677e702dc37b39e8351b',1,'ucp_tag_recv_info::length'],['../group___u_c_p___m_e_m.html#a33e763e90d0cc7aad526a69dee8ef900',1,'ucp_mem_advise_params::length'],['../group___u_c_p___m_e_m.html#ae807002e05a4a269a74c767e23f49fa8',1,'ucp_mem_attr::length'],['../group___u_c_t___m_d.html#ae867afdf079a09edbbb03134e9d32489',1,'uct_allocated_memory::length'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#ad00b6e55c209c6abc87b091f4c776cd5',1,'uct_iov::length'],['../group___u_c_p___c_o_n_t_e_x_t.html#a2fa47f7c65fec19cc163b195725e3844',1,'ucp_request_param_t.recv_info::length']]], + ['list_2',['Deprecated List',['../deprecated.html',1,'']]], + ['listen_5fsockaddr_3',['listen_sockaddr',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a3a5bb921af4157bc96d39aa580ff978f',1,'uct_iface_attr::listen_sockaddr'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a5bc951a80626f79c6da054b5a09990cd',1,'uct_iface_params.mode.sockaddr::listen_sockaddr']]], + ['local_5fcpus_4',['local_cpus',['../group___u_c_t___m_d.html#aade634758ea5ea9fc7f64b17d66507d7',1,'uct_md_attr']]], + ['local_5fsockaddr_5',['local_sockaddr',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ae54665498f1f7c019e716e7bf9d56531',1,'ucp_ep_attr::local_sockaddr'],['../group___u_c_p___e_n_d_p_o_i_n_t.html#ac7e00eea58053f718b67d92236c7a4b9',1,'ucp_ep_params::local_sockaddr'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#acd106a47629c2dffb844fbdb15a050f6',1,'uct_ep_params::local_sockaddr']]], + ['log_5flevel_6',['log_level',['../namespace_3global_scope_4.html#ae279af7e4a426fe21bde0e83a2c423ae',1,'ucs_log_component_config']]] +]; diff --git a/api/v1.17/html/search/all_b.js b/api/v1.17/html/search/all_b.js new file mode 100644 index 00000000000..ca8b239149f --- /dev/null +++ b/api/v1.17/html/search/all_b.js @@ -0,0 +1,36 @@ +var searchData= +[ + ['matching_20operations_0',['UCT Tag matching operations',['../group___u_c_t___t_a_g.html',1,'']]], + ['max_5falloc_1',['max_alloc',['../group___u_c_t___m_d.html#aaa6e5e31be347b4d78f8b7b8da29df67',1,'uct_md_attr.cap']]], + ['max_5fam_5fheader_2',['max_am_header',['../group___u_c_p___w_o_r_k_e_r.html#a7678aa8d4fb18b0d6e2a0276b03e2cb4',1,'ucp_worker_attr']]], + ['max_5fbcopy_3',['max_bcopy',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a6208b0725f6589002067bcdcef09118f',1,'uct_iface_attr.cap.put::max_bcopy'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a6208b0725f6589002067bcdcef09118f',1,'uct_iface_attr.cap.get::max_bcopy'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a6208b0725f6589002067bcdcef09118f',1,'uct_iface_attr.cap.am::max_bcopy'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a6208b0725f6589002067bcdcef09118f',1,'uct_iface_attr.cap.tag.eager::max_bcopy']]], + ['max_5fconn_5fpriv_4',['max_conn_priv',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a5612c3ad1e7a46dd6add669e32364424',1,'uct_iface_attr::max_conn_priv'],['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#adb462d4f30c639f7fb5a8a7d9702ddcf',1,'uct_cm_attr::max_conn_priv']]], + ['max_5fdebug_5fstring_5',['max_debug_string',['../group___u_c_p___w_o_r_k_e_r.html#a79406f6545efcaefffaa34ca99bfdc04',1,'ucp_worker_attr']]], + ['max_5fhdr_6',['max_hdr',['../group___u_c_t___r_e_s_o_u_r_c_e.html#aa84fcfd6201c2b55787abdea4b1e6f34',1,'uct_iface_attr.cap.am::max_hdr'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#aa84fcfd6201c2b55787abdea4b1e6f34',1,'uct_iface_attr.cap.tag.rndv::max_hdr']]], + ['max_5fiov_7',['max_iov',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a0a46d1ac3838667aa1ab96b278ed8b51',1,'uct_iface_attr.cap.put::max_iov'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a0a46d1ac3838667aa1ab96b278ed8b51',1,'uct_iface_attr.cap.get::max_iov'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a0a46d1ac3838667aa1ab96b278ed8b51',1,'uct_iface_attr.cap.am::max_iov'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a0a46d1ac3838667aa1ab96b278ed8b51',1,'uct_iface_attr.cap.tag.recv::max_iov'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a0a46d1ac3838667aa1ab96b278ed8b51',1,'uct_iface_attr.cap.tag.eager::max_iov'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a0a46d1ac3838667aa1ab96b278ed8b51',1,'uct_iface_attr.cap.tag.rndv::max_iov']]], + ['max_5fnum_5feps_8',['max_num_eps',['../group___u_c_t___r_e_s_o_u_r_c_e.html#af6baead12f87707af1b3e56024b2b2e5',1,'uct_iface_attr']]], + ['max_5foutstanding_9',['max_outstanding',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ab96937da3ef792334de90211006268f7',1,'uct_iface_attr.cap.tag.recv']]], + ['max_5freg_10',['max_reg',['../group___u_c_t___m_d.html#a5bcc2b523f735533ff4a0d45cf0ece14',1,'uct_md_attr.cap']]], + ['max_5fshort_11',['max_short',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a003a57a3795b6dc103dd4b2425a3b117',1,'uct_iface_attr.cap.put::max_short'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a003a57a3795b6dc103dd4b2425a3b117',1,'uct_iface_attr.cap.get::max_short'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a003a57a3795b6dc103dd4b2425a3b117',1,'uct_iface_attr.cap.am::max_short'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a003a57a3795b6dc103dd4b2425a3b117',1,'uct_iface_attr.cap.tag.eager::max_short']]], + ['max_5fthread_5flevel_12',['max_thread_level',['../group___u_c_p___c_o_n_t_e_x_t.html#a3cfd1d293ca29602ae799f7c52607c86',1,'ucp_lib_attr']]], + ['max_5fzcopy_13',['max_zcopy',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a6bab79a6aa78d3f8113e01f4687e58b3',1,'uct_iface_attr.cap.put::max_zcopy'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a6bab79a6aa78d3f8113e01f4687e58b3',1,'uct_iface_attr.cap.get::max_zcopy'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a6bab79a6aa78d3f8113e01f4687e58b3',1,'uct_iface_attr.cap.am::max_zcopy'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a6bab79a6aa78d3f8113e01f4687e58b3',1,'uct_iface_attr.cap.tag.recv::max_zcopy'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a6bab79a6aa78d3f8113e01f4687e58b3',1,'uct_iface_attr.cap.tag.eager::max_zcopy'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a6bab79a6aa78d3f8113e01f4687e58b3',1,'uct_iface_attr.cap.tag.rndv::max_zcopy']]], + ['md_14',['md',['../group___u_c_t___m_d.html#afdf7da800a504f0da8f59874d9b71823',1,'uct_allocated_memory']]], + ['md_5fname_15',['md_name',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a44245b18bf7151a4bde8cb4c0112f8cb',1,'uct_md_resource_desc']]], + ['md_5fresource_5fcount_16',['md_resource_count',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a4add45e93acd44e434624726caaf9efb',1,'uct_component_attr']]], + ['md_5fresources_17',['md_resources',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a75c51f7e16d827cc4c848016f5365404',1,'uct_component_attr']]], + ['mds_18',['mds',['../group___u_c_t___m_d.html#af682cfb8bc431adcd242433fb61619ac',1,'uct_mem_alloc_params_t::mds'],['../group___u_c_t___m_d.html#a60a114c91c41983174b484e188856fb3',1,'uct_mem_alloc_params_t.mds::mds']]], + ['mem_5ftype_19',['mem_type',['../group___u_c_p___c_o_m_m.html#a86e23d8d22c973be0f86ea56adfd5678',1,'ucp_request_attr_t::mem_type'],['../group___u_c_p___m_e_m.html#ac88b3fb764dd2af1a77bbe90161b2896',1,'ucp_mem_attr::mem_type'],['../group___u_c_t___m_d.html#a9b20dd26a01412d61bea8f5cc4ee02a2',1,'uct_md_mem_attr::mem_type'],['../group___u_c_t___m_d.html#ae6002ec224af4efa796246bfce7180fd',1,'uct_allocated_memory::mem_type'],['../group___u_c_t___m_d.html#ac6a68b6fb669135688c594a58a6e3955',1,'uct_mem_alloc_params_t::mem_type']]], + ['memh_20',['memh',['../group___u_c_p___c_o_n_t_e_x_t.html#a815bd876629909195b15c6b246de2900',1,'ucp_request_param_t::memh'],['../group___u_c_t___m_d.html#a4b9171caf237f0f2884d548c395e47ea',1,'uct_allocated_memory::memh'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a9a24e4be8303ebd6906bcaff37ab31f7',1,'uct_iov::memh']]], + ['memory_20access_20operations_21',['UCT Remote memory access operations',['../group___u_c_t___r_m_a.html',1,'']]], + ['memory_20domain_22',['UCT Memory Domain',['../group___u_c_t___m_d.html',1,'']]], + ['memory_20routines_23',['UCP Memory routines',['../group___u_c_p___m_e_m.html',1,'']]], + ['memory_5ftype_24',['memory_type',['../group___u_c_p___m_e_m.html#a71916e12e0fa7706355965de2edd7fc9',1,'ucp_mem_map_params::memory_type'],['../group___u_c_p___c_o_n_t_e_x_t.html#a52b53447384778b16b3b91d6abeb0f86',1,'ucp_request_param_t::memory_type']]], + ['memory_5ftypes_25',['memory_types',['../group___u_c_p___c_o_n_t_e_x_t.html#a59917e3a7e709c62e77d0acabbb0a24d',1,'ucp_context_attr']]], + ['message_5fsize_26',['message_size',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ac6bc2d095c3c631324646cd9ac6a5a0f',1,'ucp_ep_evaluate_perf_param_t']]], + ['messages_27',['UCT Active messages',['../group___u_c_t___a_m.html',1,'']]], + ['method_28',['method',['../group___u_c_t___m_d.html#ac0c1c5a5cd287f176e81650816138a55',1,'uct_allocated_memory']]], + ['min_5frecv_29',['min_recv',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ac973fbf126e5918d28ed7f81ad886553',1,'uct_iface_attr.cap.tag.recv']]], + ['min_5fzcopy_30',['min_zcopy',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a57d02deb57ae536cf84940eff69270c0',1,'uct_iface_attr.cap.put::min_zcopy'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a57d02deb57ae536cf84940eff69270c0',1,'uct_iface_attr.cap.get::min_zcopy'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a57d02deb57ae536cf84940eff69270c0',1,'uct_iface_attr.cap.am::min_zcopy']]], + ['mode_31',['mode',['../group___u_c_t___r_e_s_o_u_r_c_e.html#aabd3472dc469285e466132ea7e4a2ec2',1,'uct_iface_params::mode'],['../namespace_3global_scope_4.html#a080bacced54b2014f148e933d4dc3347',1,'ucs_config_allow_list_t::mode']]], + ['mt_5fworkers_5fshared_32',['mt_workers_shared',['../group___u_c_p___c_o_n_f_i_g.html#ac81f2d8a179df5fd39786a4b08b26faf',1,'ucp_params']]] +]; diff --git a/api/v1.17/html/search/all_c.js b/api/v1.17/html/search/all_c.js new file mode 100644 index 00000000000..2b4e70a26a1 --- /dev/null +++ b/api/v1.17/html/search/all_c.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['name_0',['name',['../group___u_c_p___c_o_n_f_i_g.html#ac1aa15f430f0f273ff4f6055f9cfdea2',1,'ucp_params::name'],['../group___u_c_p___c_o_n_t_e_x_t.html#a958c850cc721fdadeae598928bbc8270',1,'ucp_context_attr::name'],['../group___u_c_p___w_o_r_k_e_r.html#a3123aa88fefa33c972da4c2bda3bebee',1,'ucp_worker_attr::name'],['../group___u_c_p___w_o_r_k_e_r.html#a7ea9a6700ec1393aaa95c4b1e1df04e1',1,'ucp_worker_params::name'],['../group___u_c_p___e_n_d_p_o_i_n_t.html#acdaee980b44ce00d608c3b9812049db6',1,'ucp_ep_attr::name'],['../group___u_c_p___e_n_d_p_o_i_n_t.html#a2434487b2597678b8b8c6a6b6fdd11ac',1,'ucp_ep_params::name'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a4d186d55814dbe82c4403564d38d084e',1,'uct_component_attr::name'],['../group___u_c_t___m_d.html#ad67ee098d7dff61b637e20d67dc184ec',1,'uct_mem_alloc_params_t::name'],['../namespace_3global_scope_4.html#ad3c3436563841e129767778aae615f8f',1,'ucs_log_component_config::name']]], + ['non_20blocking_20behavior_1',['Non-blocking Behavior',['../md_docs_2doxygen_2conventions.html#Non-blocking',1,'']]], + ['notations_2',['Conventions and Notations',['../md_docs_2doxygen_2conventions.html',1,'']]], + ['num_5fentries_3',['num_entries',['../group___u_c_p___e_n_d_p_o_i_n_t.html#a21eabc3b6df3b0c6964de56ab7784304',1,'ucp_transports_t']]] +]; diff --git a/api/v1.17/html/search/all_d.js b/api/v1.17/html/search/all_d.js new file mode 100644 index 00000000000..70e22702839 --- /dev/null +++ b/api/v1.17/html/search/all_d.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['of_20the_20document_0',['Scope of the Document',['../index.html#Scope',1,'']]], + ['op_5fattr_5fmask_1',['op_attr_mask',['../group___u_c_p___c_o_n_t_e_x_t.html#a97e9444548efb351db6a07130fb69c28',1,'ucp_request_param_t']]], + ['op_5fflags_2',['op_flags',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a9ac9ba98d74fd850d331d3298212833e',1,'uct_iface_attr.cap.atomic32::op_flags'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a9ac9ba98d74fd850d331d3298212833e',1,'uct_iface_attr.cap.atomic64::op_flags']]], + ['open_5fmode_3',['open_mode',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a7db3b0fb2bbde6b4625ad5a6c5e1a043',1,'uct_iface_params']]], + ['operations_4',['operations',['../group___u_c_t___a_m_o.html',1,'UCT Atomic operations'],['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html',1,'UCT client-server operations'],['../group___u_c_t___r_m_a.html',1,'UCT Remote memory access operations'],['../group___u_c_t___t_a_g.html',1,'UCT Tag matching operations']]], + ['operations_20and_20capabilities_5',['UCT interface operations and capabilities',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html',1,'']]], + ['opt_5fzcopy_5falign_6',['opt_zcopy_align',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a130833876f7297c8711797fa51471539',1,'uct_iface_attr.cap.put::opt_zcopy_align'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a130833876f7297c8711797fa51471539',1,'uct_iface_attr.cap.get::opt_zcopy_align'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#a130833876f7297c8711797fa51471539',1,'uct_iface_attr.cap.am::opt_zcopy_align']]], + ['overhead_7',['overhead',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ab802bc3cc95cc67e176efeb2fe1c14c4',1,'uct_iface_attr']]] +]; diff --git a/api/v1.17/html/search/all_e.js b/api/v1.17/html/search/all_e.js new file mode 100644 index 00000000000..bfbc894b5a0 --- /dev/null +++ b/api/v1.17/html/search/all_e.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['pack_0',['pack',['../group___u_c_p___d_a_t_a_t_y_p_e.html#ga347b6c1b7243047f3e069a70626a1e89',1,'ucp_generic_dt_ops']]], + ['packed_5fsize_1',['packed_size',['../group___u_c_p___d_a_t_a_t_y_p_e.html#gafa434c93350838be8da6480b2a68f83b',1,'ucp_generic_dt_ops::packed_size'],['../group___u_c_p___d_a_t_a_t_y_p_e.html#a2e3822b2beb1cd2df7b0423a5a9c3a9c',1,'ucp_datatype_attr::packed_size']]], + ['path_5findex_2',['path_index',['../group___u_c_t___r_e_s_o_u_r_c_e.html#af271b2f02d31b2a1fcbf34076b83a796',1,'uct_ep_params']]], + ['preface_3',['Preface',['../index.html',1,'']]], + ['priority_4',['priority',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a97534f4af50032a82c02b76bdb47a96d',1,'uct_iface_attr']]], + ['priv_5',['priv',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a3541a702c8158a6d557ce30cec1863b1',1,'uct_pending_req::priv'],['../structuct__tag__context.html#a50355288112c6e3218f9b63f3b49be91',1,'uct_tag_context::priv'],['../namespace_3global_scope_4.html#a31eb5fc81314fecdff7ddfcceca90bf7',1,'ucs_callbackq::priv']]], + ['private_5fdata_6',['private_data',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a4ad36475338e8aee2577fa4535c01dfc',1,'uct_ep_params::private_data'],['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#affe9b0a217e8e706f08da5b2efee3665',1,'uct_ep_connect_params::private_data']]], + ['private_5fdata_5flength_7',['private_data_length',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a287105cfd0e1922f7975efa4bba08ead',1,'uct_ep_params::private_data_length'],['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a3db99efa74cecf7060aad87e73922572',1,'uct_ep_connect_params::private_data_length']]], + ['prot_8',['prot',['../group___u_c_p___m_e_m.html#af8bb06187e2c1f180a24d867a4922b2e',1,'ucp_mem_map_params']]], + ['protocol_20ucp_20api_9',['Unified Communication Protocol (UCP) API',['../group___u_c_p___a_p_i.html',1,'']]], + ['put_10',['put',['../group___u_c_t___r_e_s_o_u_r_c_e.html#a8e13ffc9fd9d6a6761231a764bdf106b',1,'uct_iface_attr.cap']]] +]; diff --git a/api/v1.17/html/search/all_f.js b/api/v1.17/html/search/all_f.js new file mode 100644 index 00000000000..1515b8b039a --- /dev/null +++ b/api/v1.17/html/search/all_f.js @@ -0,0 +1,28 @@ +var searchData= +[ + ['recv_0',['recv',['../group___u_c_p___c_o_n_t_e_x_t.html#af701fee85540b78d08cb276d14953d58',1,'ucp_request_param_t.cb::recv'],['../group___u_c_t___r_e_s_o_u_r_c_e.html#af701fee85540b78d08cb276d14953d58',1,'uct_iface_attr.cap.tag::recv']]], + ['recv_5fam_1',['recv_am',['../group___u_c_p___c_o_n_t_e_x_t.html#a0b3ecefca237481439444fca3748275b',1,'ucp_request_param_t.cb']]], + ['recv_5fattr_2',['recv_attr',['../group___u_c_p___w_o_r_k_e_r.html#a53a8777a31faf7e65289bcc1d710fb19',1,'ucp_am_recv_param']]], + ['recv_5finfo_3',['recv_info',['../group___u_c_p___c_o_n_t_e_x_t.html#a508d273e351bac14d3906243de353fb7',1,'ucp_request_param_t']]], + ['recv_5fstream_4',['recv_stream',['../group___u_c_p___c_o_n_t_e_x_t.html#aedcd1a9fffc78ccbba676b725aedd2e7',1,'ucp_request_param_t.cb']]], + ['reg_5fcost_5',['reg_cost',['../group___u_c_t___m_d.html#aa8e4e4f1f063347094ea721a0ccb8952',1,'uct_md_attr']]], + ['reg_5fmem_5ftypes_6',['reg_mem_types',['../group___u_c_t___m_d.html#aac6dbc8bc7d7c4da5fbec837d19b3424',1,'uct_md_attr.cap']]], + ['remote_20memory_20access_20operations_7',['UCT Remote memory access operations',['../group___u_c_t___r_m_a.html',1,'']]], + ['remote_5fdata_8',['remote_data',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#a333308d1c7eda2e28111dbe05b288746',1,'uct_cm_listener_conn_request_args::remote_data'],['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#adebf71af7948cb58f3724d1b0c4151bb',1,'uct_cm_ep_client_connect_args::remote_data']]], + ['remote_5fsockaddr_9',['remote_sockaddr',['../group___u_c_p___e_n_d_p_o_i_n_t.html#a8e0e9e1e5a9295f93073ae3fd3d9a612',1,'ucp_ep_attr']]], + ['reply_5fbuffer_10',['reply_buffer',['../group___u_c_p___c_o_n_t_e_x_t.html#ad41bfb73053537d40830d52b3f380f02',1,'ucp_request_param_t']]], + ['reply_5fep_11',['reply_ep',['../group___u_c_p___w_o_r_k_e_r.html#a5e4629812b7b7737beb6f7f7332b7d7f',1,'ucp_am_recv_param']]], + ['request_12',['request',['../group___u_c_p___c_o_n_t_e_x_t.html#a746646123a460ed9a115c3fe21f194b0',1,'ucp_request_param_t']]], + ['request_5fcleanup_13',['request_cleanup',['../group___u_c_p___c_o_n_f_i_g.html#ad2aadf27367f4cc64e91e1dd2b52b8b8',1,'ucp_params']]], + ['request_5finit_14',['request_init',['../group___u_c_p___c_o_n_f_i_g.html#ac1f0a25d794111217af5e0e6b9865458',1,'ucp_params']]], + ['request_5fsize_15',['request_size',['../group___u_c_p___c_o_n_f_i_g.html#a3125e61440123f639c024d75b5edc0d6',1,'ucp_params::request_size'],['../group___u_c_p___c_o_n_t_e_x_t.html#a9b2ad3af27e1e94d4189ecc6fb1512ef',1,'ucp_context_attr::request_size']]], + ['reserved_16',['reserved',['../group___u_c_p___e_n_d_p_o_i_n_t.html#a00c2ee7b309e8c2a45d7e7c83911d707',1,'ucp_stream_poll_ep']]], + ['resource_17',['Resource',['../group___u_c_s___r_e_s_o_u_r_c_e.html',1,'UCS Communication Resource'],['../group___u_c_t___r_e_s_o_u_r_c_e.html',1,'UCT Communication Resource']]], + ['rkey_18',['rkey',['../group___u_c_t___m_d.html#a750c92c67b9203752b04894893b91bbc',1,'uct_rkey_bundle']]], + ['rkey_5fpacked_5fsize_19',['rkey_packed_size',['../group___u_c_t___m_d.html#a95f941f6d800ef57a183d1f9c75a221c',1,'uct_md_attr']]], + ['rndv_20',['rndv',['../group___u_c_t___r_e_s_o_u_r_c_e.html#acdccd5548d60bc2d32ec34d59ecce438',1,'uct_iface_attr.cap.tag']]], + ['rndv_5farg_21',['rndv_arg',['../group___u_c_t___r_e_s_o_u_r_c_e.html#afbeb49c7a773e6d61eaba872535809e8',1,'uct_iface_params']]], + ['rndv_5fcb_22',['rndv_cb',['../group___u_c_t___r_e_s_o_u_r_c_e.html#aee589d588ff4207d4fcf0d147479facd',1,'uct_iface_params::rndv_cb'],['../structuct__tag__context.html#a64008d8faf823d5d2be97cb16854c308',1,'uct_tag_context::rndv_cb']]], + ['routines_23',['routines',['../group___u_c_p___c_o_m_m.html',1,'UCP Communication routines'],['../group___u_c_p___d_a_t_a_t_y_p_e.html',1,'UCP Data type routines'],['../group___u_c_p___m_e_m.html',1,'UCP Memory routines'],['../group___u_c_p___w_a_k_e_u_p.html',1,'UCP Wake-up routines']]], + ['rx_5fheadroom_24',['rx_headroom',['../group___u_c_t___r_e_s_o_u_r_c_e.html#aea4ca94171e8dfe3e80abb74a06fe333',1,'uct_iface_params']]] +]; diff --git a/api/v1.17/html/search/classes_0.js b/api/v1.17/html/search/classes_0.js new file mode 100644 index 00000000000..88d467c5488 --- /dev/null +++ b/api/v1.17/html/search/classes_0.js @@ -0,0 +1,84 @@ +var searchData= +[ + ['ucp_5fam_5fhandler_5fparam_0',['ucp_am_handler_param',['../group___u_c_p___w_o_r_k_e_r.html#structucp__am__handler__param',1,'']]], + ['ucp_5fam_5frecv_5fparam_1',['ucp_am_recv_param',['../group___u_c_p___w_o_r_k_e_r.html#structucp__am__recv__param',1,'']]], + ['ucp_5fconn_5frequest_5fattr_2',['ucp_conn_request_attr',['../group___u_c_p___w_o_r_k_e_r.html#structucp__conn__request__attr',1,'']]], + ['ucp_5fcontext_5fattr_3',['ucp_context_attr',['../group___u_c_p___c_o_n_t_e_x_t.html#structucp__context__attr',1,'']]], + ['ucp_5fdatatype_5fattr_4',['ucp_datatype_attr',['../group___u_c_p___d_a_t_a_t_y_p_e.html#structucp__datatype__attr',1,'']]], + ['ucp_5fdt_5fiov_5',['ucp_dt_iov',['../group___u_c_p___d_a_t_a_t_y_p_e.html#structucp__dt__iov',1,'']]], + ['ucp_5fep_5fattr_6',['ucp_ep_attr',['../group___u_c_p___e_n_d_p_o_i_n_t.html#structucp__ep__attr',1,'']]], + ['ucp_5fep_5fevaluate_5fperf_5fattr_5ft_7',['ucp_ep_evaluate_perf_attr_t',['../group___u_c_p___e_n_d_p_o_i_n_t.html#structucp__ep__evaluate__perf__attr__t',1,'']]], + ['ucp_5fep_5fevaluate_5fperf_5fparam_5ft_8',['ucp_ep_evaluate_perf_param_t',['../group___u_c_p___e_n_d_p_o_i_n_t.html#structucp__ep__evaluate__perf__param__t',1,'']]], + ['ucp_5fep_5fparams_9',['ucp_ep_params',['../group___u_c_p___e_n_d_p_o_i_n_t.html#structucp__ep__params',1,'']]], + ['ucp_5ferr_5fhandler_10',['ucp_err_handler',['../group___u_c_p___c_o_m_m.html#structucp__err__handler',1,'']]], + ['ucp_5fgeneric_5fdt_5fops_11',['ucp_generic_dt_ops',['../structucp__generic__dt__ops.html',1,'']]], + ['ucp_5flib_5fattr_12',['ucp_lib_attr',['../group___u_c_p___c_o_n_t_e_x_t.html#structucp__lib__attr',1,'']]], + ['ucp_5flistener_5faccept_5fhandler_13',['ucp_listener_accept_handler',['../group___u_c_p___w_o_r_k_e_r.html#structucp__listener__accept__handler',1,'']]], + ['ucp_5flistener_5fattr_14',['ucp_listener_attr',['../group___u_c_p___w_o_r_k_e_r.html#structucp__listener__attr',1,'']]], + ['ucp_5flistener_5fconn_5fhandler_15',['ucp_listener_conn_handler',['../group___u_c_p___w_o_r_k_e_r.html#structucp__listener__conn__handler',1,'']]], + ['ucp_5flistener_5fparams_16',['ucp_listener_params',['../group___u_c_p___w_o_r_k_e_r.html#structucp__listener__params',1,'']]], + ['ucp_5fmem_5fadvise_5fparams_17',['ucp_mem_advise_params',['../group___u_c_p___m_e_m.html#structucp__mem__advise__params',1,'']]], + ['ucp_5fmem_5fattr_18',['ucp_mem_attr',['../group___u_c_p___m_e_m.html#structucp__mem__attr',1,'']]], + ['ucp_5fmem_5fmap_5fparams_19',['ucp_mem_map_params',['../group___u_c_p___m_e_m.html#structucp__mem__map__params',1,'']]], + ['ucp_5fmemh_5fbuffer_5frelease_5fparams_20',['ucp_memh_buffer_release_params',['../group___u_c_p___m_e_m.html#structucp__memh__buffer__release__params',1,'']]], + ['ucp_5fmemh_5fpack_5fparams_21',['ucp_memh_pack_params',['../group___u_c_p___m_e_m.html#structucp__memh__pack__params',1,'']]], + ['ucp_5fparams_22',['ucp_params',['../group___u_c_p___c_o_n_f_i_g.html#structucp__params',1,'']]], + ['ucp_5frequest_5fattr_5ft_23',['ucp_request_attr_t',['../group___u_c_p___c_o_m_m.html#structucp__request__attr__t',1,'']]], + ['ucp_5frequest_5fparam_5ft_24',['ucp_request_param_t',['../group___u_c_p___c_o_n_t_e_x_t.html#structucp__request__param__t',1,'']]], + ['ucp_5frequest_5fparam_5ft_2ecb_25',['ucp_request_param_t.cb',['../group___u_c_p___c_o_n_t_e_x_t.html#unionucp__request__param__t_8cb',1,'']]], + ['ucp_5frequest_5fparam_5ft_2erecv_5finfo_26',['ucp_request_param_t.recv_info',['../group___u_c_p___c_o_n_t_e_x_t.html#unionucp__request__param__t_8recv__info',1,'']]], + ['ucp_5frkey_5fcompare_5fparams_27',['ucp_rkey_compare_params',['../group___u_c_p___m_e_m.html#structucp__rkey__compare__params',1,'']]], + ['ucp_5fstream_5fpoll_5fep_28',['ucp_stream_poll_ep',['../group___u_c_p___e_n_d_p_o_i_n_t.html#structucp__stream__poll__ep',1,'']]], + ['ucp_5ftag_5frecv_5finfo_29',['ucp_tag_recv_info',['../group___u_c_p___c_o_n_t_e_x_t.html#structucp__tag__recv__info',1,'']]], + ['ucp_5ftransport_5fentry_5ft_30',['ucp_transport_entry_t',['../group___u_c_p___e_n_d_p_o_i_n_t.html#structucp__transport__entry__t',1,'']]], + ['ucp_5ftransports_5ft_31',['ucp_transports_t',['../group___u_c_p___e_n_d_p_o_i_n_t.html#structucp__transports__t',1,'']]], + ['ucp_5fworker_5faddress_5fattr_32',['ucp_worker_address_attr',['../group___u_c_p___w_o_r_k_e_r.html#structucp__worker__address__attr',1,'']]], + ['ucp_5fworker_5fattr_33',['ucp_worker_attr',['../group___u_c_p___w_o_r_k_e_r.html#structucp__worker__attr',1,'']]], + ['ucp_5fworker_5fparams_34',['ucp_worker_params',['../group___u_c_p___w_o_r_k_e_r.html#structucp__worker__params',1,'']]], + ['ucs_5fcallbackq_35',['ucs_callbackq',['../namespace_3global_scope_4.html#structucs__callbackq',1,'']]], + ['ucs_5fcallbackq_5felem_36',['ucs_callbackq_elem',['../namespace_3global_scope_4.html#structucs__callbackq__elem',1,'']]], + ['ucs_5fconfig_5fallow_5flist_5ft_37',['ucs_config_allow_list_t',['../namespace_3global_scope_4.html#structucs__config__allow__list__t',1,'']]], + ['ucs_5flog_5fcomponent_5fconfig_38',['ucs_log_component_config',['../namespace_3global_scope_4.html#structucs__log__component__config',1,'']]], + ['ucs_5fsock_5faddr_39',['ucs_sock_addr',['../group___u_c_s___r_e_s_o_u_r_c_e.html#structucs__sock__addr',1,'']]], + ['uct_5fallocated_5fmemory_40',['uct_allocated_memory',['../group___u_c_t___m_d.html#structuct__allocated__memory',1,'']]], + ['uct_5fcm_5fattr_41',['uct_cm_attr',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__cm__attr',1,'']]], + ['uct_5fcm_5fep_5fclient_5fconnect_5fargs_42',['uct_cm_ep_client_connect_args',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__cm__ep__client__connect__args',1,'']]], + ['uct_5fcm_5fep_5fpriv_5fdata_5fpack_5fargs_43',['uct_cm_ep_priv_data_pack_args',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__cm__ep__priv__data__pack__args',1,'']]], + ['uct_5fcm_5fep_5fresolve_5fargs_44',['uct_cm_ep_resolve_args',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__cm__ep__resolve__args',1,'']]], + ['uct_5fcm_5fep_5fserver_5fconn_5fnotify_5fargs_45',['uct_cm_ep_server_conn_notify_args',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__cm__ep__server__conn__notify__args',1,'']]], + ['uct_5fcm_5flistener_5fconn_5frequest_5fargs_46',['uct_cm_listener_conn_request_args',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__cm__listener__conn__request__args',1,'']]], + ['uct_5fcm_5fremote_5fdata_47',['uct_cm_remote_data',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__cm__remote__data',1,'']]], + ['uct_5fcompletion_48',['uct_completion',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__completion',1,'']]], + ['uct_5fcomponent_5fattr_49',['uct_component_attr',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__component__attr',1,'']]], + ['uct_5fep_5fconnect_5fparams_50',['uct_ep_connect_params',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__ep__connect__params',1,'']]], + ['uct_5fep_5fparams_51',['uct_ep_params',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__ep__params',1,'']]], + ['uct_5fiface_5fattr_52',['uct_iface_attr',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr',1,'']]], + ['uct_5fiface_5fattr_2ecap_53',['uct_iface_attr.cap',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap',1,'']]], + ['uct_5fiface_5fattr_2ecap_2eam_54',['uct_iface_attr.cap.am',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap_8am',1,'']]], + ['uct_5fiface_5fattr_2ecap_2eatomic32_55',['uct_iface_attr.cap.atomic32',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap_8atomic32',1,'']]], + ['uct_5fiface_5fattr_2ecap_2eatomic64_56',['uct_iface_attr.cap.atomic64',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap_8atomic64',1,'']]], + ['uct_5fiface_5fattr_2ecap_2eget_57',['uct_iface_attr.cap.get',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap_8get',1,'']]], + ['uct_5fiface_5fattr_2ecap_2eput_58',['uct_iface_attr.cap.put',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap_8put',1,'']]], + ['uct_5fiface_5fattr_2ecap_2etag_59',['uct_iface_attr.cap.tag',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap_8tag',1,'']]], + ['uct_5fiface_5fattr_2ecap_2etag_2eeager_60',['uct_iface_attr.cap.tag.eager',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap_8tag_8eager',1,'']]], + ['uct_5fiface_5fattr_2ecap_2etag_2erecv_61',['uct_iface_attr.cap.tag.recv',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap_8tag_8recv',1,'']]], + ['uct_5fiface_5fattr_2ecap_2etag_2erndv_62',['uct_iface_attr.cap.tag.rndv',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__attr_8cap_8tag_8rndv',1,'']]], + ['uct_5fiface_5fparams_63',['uct_iface_params',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__params',1,'']]], + ['uct_5fiface_5fparams_2emode_64',['uct_iface_params.mode',['../group___u_c_t___r_e_s_o_u_r_c_e.html#unionuct__iface__params_8mode',1,'']]], + ['uct_5fiface_5fparams_2emode_2edevice_65',['uct_iface_params.mode.device',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__params_8mode_8device',1,'']]], + ['uct_5fiface_5fparams_2emode_2esockaddr_66',['uct_iface_params.mode.sockaddr',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iface__params_8mode_8sockaddr',1,'']]], + ['uct_5fiov_67',['uct_iov',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__iov',1,'']]], + ['uct_5flistener_5fattr_68',['uct_listener_attr',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__listener__attr',1,'']]], + ['uct_5flistener_5fparams_69',['uct_listener_params',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#structuct__listener__params',1,'']]], + ['uct_5fmd_5fattr_70',['uct_md_attr',['../group___u_c_t___m_d.html#structuct__md__attr',1,'']]], + ['uct_5fmd_5fattr_2ecap_71',['uct_md_attr.cap',['../group___u_c_t___m_d.html#structuct__md__attr_8cap',1,'']]], + ['uct_5fmd_5fmem_5fattr_72',['uct_md_mem_attr',['../group___u_c_t___m_d.html#structuct__md__mem__attr',1,'']]], + ['uct_5fmd_5fresource_5fdesc_73',['uct_md_resource_desc',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__md__resource__desc',1,'']]], + ['uct_5fmem_5falloc_5fparams_5ft_74',['uct_mem_alloc_params_t',['../group___u_c_t___m_d.html#structuct__mem__alloc__params__t',1,'']]], + ['uct_5fmem_5falloc_5fparams_5ft_2emds_75',['uct_mem_alloc_params_t.mds',['../group___u_c_t___m_d.html#structuct__mem__alloc__params__t_8mds',1,'']]], + ['uct_5fpending_5freq_76',['uct_pending_req',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__pending__req',1,'']]], + ['uct_5fppn_5fbandwidth_77',['uct_ppn_bandwidth',['../namespace_3global_scope_4.html#structuct__ppn__bandwidth',1,'']]], + ['uct_5frkey_5fbundle_78',['uct_rkey_bundle',['../group___u_c_t___m_d.html#structuct__rkey__bundle',1,'']]], + ['uct_5ftag_5fcontext_79',['uct_tag_context',['../structuct__tag__context.html',1,'']]], + ['uct_5ftl_5fresource_5fdesc_80',['uct_tl_resource_desc',['../group___u_c_t___r_e_s_o_u_r_c_e.html#structuct__tl__resource__desc',1,'']]] +]; diff --git a/api/v1.17/html/search/close.svg b/api/v1.17/html/search/close.svg new file mode 100644 index 00000000000..337d6cc1329 --- /dev/null +++ b/api/v1.17/html/search/close.svg @@ -0,0 +1,18 @@ + + + + + + diff --git a/api/v1.17/html/search/enums_0.js b/api/v1.17/html/search/enums_0.js new file mode 100644 index 00000000000..35c06137a3a --- /dev/null +++ b/api/v1.17/html/search/enums_0.js @@ -0,0 +1,76 @@ +var searchData= +[ + ['ucp_5fam_5fcb_5fflags_0',['ucp_am_cb_flags',['../group___u_c_p___w_o_r_k_e_r.html#ga41d5b7b408c7546c7cb8b38d72f8653f',1,'ucp.h']]], + ['ucp_5fam_5fhandler_5fparam_5ffield_1',['ucp_am_handler_param_field',['../group___u_c_p___c_o_m_m.html#gaeae021145933ffa033b8327bb7bf2533',1,'ucp.h']]], + ['ucp_5fam_5frecv_5fattr_5ft_2',['ucp_am_recv_attr_t',['../group___u_c_p___c_o_m_m.html#ga487a3c588a11e42b9f313f0c9e2ead3b',1,'ucp.h']]], + ['ucp_5fatomic_5ffetch_5fop_5ft_3',['ucp_atomic_fetch_op_t',['../group___u_c_p___c_o_m_m.html#gabd91e0300a53e38d28dbb53dfbb66c55',1,'ucp_compat.h']]], + ['ucp_5fatomic_5fop_5ft_4',['ucp_atomic_op_t',['../group___u_c_p___c_o_m_m.html#ga5c2ee7516e48146c044e3d9e2a2ed380',1,'ucp.h']]], + ['ucp_5fatomic_5fpost_5fop_5ft_5',['ucp_atomic_post_op_t',['../group___u_c_p___c_o_m_m.html#gac5d94ea07dc4feae2708e67378ba2ad0',1,'ucp_compat.h']]], + ['ucp_5fcb_5fparam_5fflags_6',['ucp_cb_param_flags',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga4a9af9e36e3256933869d6699be25874',1,'ucp.h']]], + ['ucp_5fconn_5frequest_5fattr_5ffield_7',['ucp_conn_request_attr_field',['../group___u_c_p___w_o_r_k_e_r.html#ga31119b42b06b185822699697bd7a1018',1,'ucp.h']]], + ['ucp_5fcontext_5fattr_5ffield_8',['ucp_context_attr_field',['../group___u_c_p___c_o_n_t_e_x_t.html#ga446a95e55ba52251d2ca4bf61ff916bf',1,'ucp.h']]], + ['ucp_5fdatatype_5fattr_5ffield_9',['ucp_datatype_attr_field',['../group___u_c_p___d_a_t_a_t_y_p_e.html#gaca9402381313d69cee7d0c90c634a18e',1,'ucp.h']]], + ['ucp_5fdt_5ftype_10',['ucp_dt_type',['../group___u_c_p___d_a_t_a_t_y_p_e.html#ga50b3b4e641a197264e963d91be480b6c',1,'ucp.h']]], + ['ucp_5fep_5fattr_5ffield_11',['ucp_ep_attr_field',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gaa24832a718990ceb558ab5a1d4abfc41',1,'ucp.h']]], + ['ucp_5fep_5fclose_5fflags_5ft_12',['ucp_ep_close_flags_t',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gacef728a5ee7a11f50794544aa259fe71',1,'ucp.h']]], + ['ucp_5fep_5fclose_5fmode_13',['ucp_ep_close_mode',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga3be4aa93d76e41c80c780965f2f8ae57',1,'ucp_compat.h']]], + ['ucp_5fep_5fparams_5ffield_14',['ucp_ep_params_field',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gabb6ce0b3189f415dadc7f99727751d60',1,'ucp.h']]], + ['ucp_5fep_5fparams_5fflags_5ffield_15',['ucp_ep_params_flags_field',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga4a1f422dc1e81495b4aee1da8939459f',1,'ucp.h']]], + ['ucp_5fep_5fperf_5fattr_5ffield_16',['ucp_ep_perf_attr_field',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga806d286165cdbe6d6c63d52b06b16406',1,'ucp.h']]], + ['ucp_5fep_5fperf_5fparam_5ffield_17',['ucp_ep_perf_param_field',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga4abce355cbaf6b31b1aaa88b68154f13',1,'ucp.h']]], + ['ucp_5ferr_5fhandling_5fmode_5ft_18',['ucp_err_handling_mode_t',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga7c69a28724d5ae3e49490e23e64df167',1,'ucp_def.h']]], + ['ucp_5ffeature_19',['ucp_feature',['../group___u_c_p___c_o_n_t_e_x_t.html#gaca5990bc015e7e9ac3e3be4e3611c5be',1,'ucp.h']]], + ['ucp_5flib_5fattr_5ffield_20',['ucp_lib_attr_field',['../group___u_c_p___c_o_n_t_e_x_t.html#ga2791b2b44c55fdb685dcd4dad8c8ae3c',1,'ucp.h']]], + ['ucp_5flistener_5fattr_5ffield_21',['ucp_listener_attr_field',['../group___u_c_p___w_o_r_k_e_r.html#ga54059507b51041359aedffbe75635720',1,'ucp.h']]], + ['ucp_5flistener_5fparams_5ffield_22',['ucp_listener_params_field',['../group___u_c_p___w_o_r_k_e_r.html#ga36d95269fcce844261494cbd4f5e26fc',1,'ucp.h']]], + ['ucp_5fmem_5fadvice_23',['ucp_mem_advice',['../group___u_c_p___m_e_m.html#ga1a73c4a7fc1d8a6d75e6b53256eec0b8',1,'ucp.h']]], + ['ucp_5fmem_5fadvise_5fparams_5ffield_24',['ucp_mem_advise_params_field',['../group___u_c_p___m_e_m.html#ga3c0f7ca217c77fa0ae8649e21b24a1fc',1,'ucp.h']]], + ['ucp_5fmem_5fattr_5ffield_25',['ucp_mem_attr_field',['../group___u_c_p___m_e_m.html#gab0d7a54391c964c59b2cfbf30e23dc14',1,'ucp_def.h']]], + ['ucp_5fmem_5fmap_5fparams_5ffield_26',['ucp_mem_map_params_field',['../group___u_c_p___m_e_m.html#ga1b78010c24c834aadc9fb8f1083e226f',1,'ucp.h']]], + ['ucp_5fmemh_5fpack_5fflags_27',['ucp_memh_pack_flags',['../group___u_c_p___m_e_m.html#ga83ac2dbb4fe6b93948b00c9a2ad16efe',1,'ucp.h']]], + ['ucp_5fmemh_5fpack_5fparams_5ffield_28',['ucp_memh_pack_params_field',['../group___u_c_p___m_e_m.html#ga9143b85c7c40d6b13020a13bc13f9dbf',1,'ucp.h']]], + ['ucp_5fop_5fattr_5ft_29',['ucp_op_attr_t',['../group___u_c_p___c_o_m_m.html#ga67fae646dd1668efba6efe49a35a6610',1,'ucp.h']]], + ['ucp_5fparams_5ffield_30',['ucp_params_field',['../group___u_c_p___c_o_n_t_e_x_t.html#gab43f613a2365147415abf66f571cfa71',1,'ucp.h']]], + ['ucp_5freq_5fattr_5ffield_31',['ucp_req_attr_field',['../group___u_c_p___c_o_m_m.html#gab383d860475f8917f51afb542e7d02ff',1,'ucp.h']]], + ['ucp_5fsend_5fam_5fflags_32',['ucp_send_am_flags',['../group___u_c_p___w_o_r_k_e_r.html#ga583228e89cd5c882025ed04c76106aa6',1,'ucp.h']]], + ['ucp_5fstream_5frecv_5fflags_5ft_33',['ucp_stream_recv_flags_t',['../group___u_c_p___c_o_m_m.html#gab471a9c7ab815e3d3ad7af80253f5cc2',1,'ucp.h']]], + ['ucp_5fwakeup_5fevent_5ftypes_34',['ucp_wakeup_event_types',['../group___u_c_p___w_o_r_k_e_r.html#ga66be8946dcd33051d40ceca65ba28e22',1,'ucp_def.h']]], + ['ucp_5fworker_5faddress_5fattr_5ffield_35',['ucp_worker_address_attr_field',['../group___u_c_p___w_o_r_k_e_r.html#gaadc74e7e271c4e181263115b08bf71c8',1,'ucp.h']]], + ['ucp_5fworker_5faddress_5fflags_5ft_36',['ucp_worker_address_flags_t',['../group___u_c_p___w_o_r_k_e_r.html#gab1ec638cc4a7498a85017d132492d195',1,'ucp.h']]], + ['ucp_5fworker_5fattr_5ffield_37',['ucp_worker_attr_field',['../group___u_c_p___w_o_r_k_e_r.html#gacf03ee299a48c2f9c776516cc82c7194',1,'ucp.h']]], + ['ucp_5fworker_5fflags_5ft_38',['ucp_worker_flags_t',['../group___u_c_p___w_o_r_k_e_r.html#ga11a37476d021e1ad36c1b727373212b4',1,'ucp.h']]], + ['ucp_5fworker_5fparams_5ffield_39',['ucp_worker_params_field',['../group___u_c_p___w_o_r_k_e_r.html#gadbfc8fd5eaa65351d1617f2f158b80f6',1,'ucp.h']]], + ['ucs_5fcallbackq_5fflags_40',['ucs_callbackq_flags',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gaa693580c739b1ba94bd6218d00222110',1,'callbackq_compat.h']]], + ['ucs_5fmemory_5ftype_41',['ucs_memory_type',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ga5cfcc524f5dc586101a3e7caff8d982d',1,'memory_type.h']]], + ['ucs_5fstatus_5ft_42',['ucs_status_t',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ga88ca72d7294772e7d2edb70a2df15558',1,'status.h']]], + ['ucs_5fthread_5fmode_5ft_43',['ucs_thread_mode_t',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ga40e9f363c389e702ad9920f5d52525ce',1,'thread_mode.h']]], + ['uct_5falloc_5fmethod_5ft_44',['uct_alloc_method_t',['../group___u_c_t___c_o_n_t_e_x_t.html#ga019362c62f98ff7935b05c512eb0ab09',1,'uct.h']]], + ['uct_5fam_5ftrace_5ftype_45',['uct_am_trace_type',['../group___u_c_t___a_m.html#gacbe4c7fdcaf25cd7bd004a3c2d54f067',1,'uct_def.h']]], + ['uct_5fcb_5fflags_46',['uct_cb_flags',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gaca1e07b69024fec26746e3a19b4de9d0',1,'uct.h']]], + ['uct_5fcb_5fparam_5fflags_47',['uct_cb_param_flags',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga36bfc11c722b01a11e1949e8329262c9',1,'uct_def.h']]], + ['uct_5fcm_5fattr_5ffield_48',['uct_cm_attr_field',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga2b308be867e1e13dcb7d941b07835431',1,'uct.h']]], + ['uct_5fcm_5fep_5fclient_5fconnect_5fargs_5ffield_49',['uct_cm_ep_client_connect_args_field',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga6746759cc1850c6e260fca7e3de008ad',1,'uct_def.h']]], + ['uct_5fcm_5fep_5fpriv_5fdata_5fpack_5fargs_5ffield_50',['uct_cm_ep_priv_data_pack_args_field',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga405dee8e814ebc33f14c5f44e80d008c',1,'uct_def.h']]], + ['uct_5fcm_5fep_5fresolve_5fargs_5ffield_51',['uct_cm_ep_resolve_args_field',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga6c342b6c43e178b73f567bd0fb253e62',1,'uct_def.h']]], + ['uct_5fcm_5fep_5fserver_5fconn_5fnotify_5fargs_5ffield_52',['uct_cm_ep_server_conn_notify_args_field',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gaf1cffc53a9b63fb98a77503917f5fd79',1,'uct_def.h']]], + ['uct_5fcm_5flistener_5fconn_5frequest_5fargs_5ffield_53',['uct_cm_listener_conn_request_args_field',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga9e97a59a0593244e730734d592b642df',1,'uct_def.h']]], + ['uct_5fcm_5fremote_5fdata_5ffield_54',['uct_cm_remote_data_field',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga3e023485a86ad4092497ffe58cddef37',1,'uct_def.h']]], + ['uct_5fcomponent_5fattr_5ffield_55',['uct_component_attr_field',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga246ded5e20aa09c590673c771c74b68b',1,'uct.h']]], + ['uct_5fdevice_5ftype_5ft_56',['uct_device_type_t',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gae0c25b8c160e49fbb9cc122c9807f20d',1,'uct.h']]], + ['uct_5fep_5fconnect_5fparams_5ffield_57',['uct_ep_connect_params_field',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gaa821e2f4247cd5e72632e5ea7008e6e1',1,'uct.h']]], + ['uct_5fep_5fparams_5ffield_58',['uct_ep_params_field',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga8e76f363d8805669fb5371b404c5658b',1,'uct.h']]], + ['uct_5fflush_5fflags_59',['uct_flush_flags',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga84ba23c28fda1c96f5018bbafb7ffed6',1,'uct.h']]], + ['uct_5fiface_5fevent_5ftypes_60',['uct_iface_event_types',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gaef09139f303b0a3d28a1cea524dc3bd2',1,'uct.h']]], + ['uct_5fiface_5ffeature_61',['uct_iface_feature',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga078dd84cff9d6b1cda5692fbf6b1e7c7',1,'uct.h']]], + ['uct_5fiface_5fopen_5fmode_62',['uct_iface_open_mode',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga8bc9c95ee7fbd76321940e2853d08bb5',1,'uct.h']]], + ['uct_5fiface_5fparams_5ffield_63',['uct_iface_params_field',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga896baeefc7933d925202c32b0d09f596',1,'uct.h']]], + ['uct_5flistener_5fattr_5ffield_64',['uct_listener_attr_field',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gad253d9c2e4116f9a137a2d2450afbe66',1,'uct.h']]], + ['uct_5flistener_5fparams_5ffield_65',['uct_listener_params_field',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gaf716bd7cdc636377ef78c258886693c7',1,'uct.h']]], + ['uct_5fmd_5fmem_5fattr_5ffield_66',['uct_md_mem_attr_field',['../group___u_c_t___m_d.html#gac4f1c9728c529e4f35eaf03bc14c6977',1,'uct.h']]], + ['uct_5fmd_5fmem_5fflags_67',['uct_md_mem_flags',['../group___u_c_t___m_d.html#ga3b0345adc84e4b3224366502aca5e11a',1,'uct.h']]], + ['uct_5fmem_5fadvice_5ft_68',['uct_mem_advice_t',['../group___u_c_t___m_d.html#ga72172b231f5e9df777cb130b9f908397',1,'uct.h']]], + ['uct_5fmem_5falloc_5fparams_5ffield_5ft_69',['uct_mem_alloc_params_field_t',['../group___u_c_t___m_d.html#ga3421ca55bc67f5752ca6164f678a7923',1,'uct.h']]], + ['uct_5fmsg_5fflags_70',['uct_msg_flags',['../group___u_c_t___a_m.html#ga139e5d124e16d412200bf64bdbccab1c',1,'uct.h']]], + ['uct_5fprogress_5ftypes_71',['uct_progress_types',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga71bfe6e07ebbcc036f883b31db1e9e51',1,'uct.h']]], + ['uct_5fsockaddr_5faccessibility_5ft_72',['uct_sockaddr_accessibility_t',['../group___u_c_t___m_d.html#gacb560e35a1b169ca88792200817e219e',1,'uct.h']]] +]; diff --git a/api/v1.17/html/search/enumvalues_0.js b/api/v1.17/html/search/enumvalues_0.js new file mode 100644 index 00000000000..96eb182ed1b --- /dev/null +++ b/api/v1.17/html/search/enumvalues_0.js @@ -0,0 +1,361 @@ +var searchData= +[ + ['ucp_5fam_5fflag_5fpersistent_5fdata_0',['UCP_AM_FLAG_PERSISTENT_DATA',['../group___u_c_p___w_o_r_k_e_r.html#gga41d5b7b408c7546c7cb8b38d72f8653faa15bbd02f0d9e0afd2e979b89669fbe2',1,'ucp.h']]], + ['ucp_5fam_5fflag_5fwhole_5fmsg_1',['UCP_AM_FLAG_WHOLE_MSG',['../group___u_c_p___w_o_r_k_e_r.html#gga41d5b7b408c7546c7cb8b38d72f8653fab8e0a400e8017b571682b853c8ff0559',1,'ucp.h']]], + ['ucp_5fam_5fhandler_5fparam_5ffield_5farg_2',['UCP_AM_HANDLER_PARAM_FIELD_ARG',['../group___u_c_p___c_o_m_m.html#ggaeae021145933ffa033b8327bb7bf2533a23622f1a9046a0b59d1519732e2b73ff',1,'ucp.h']]], + ['ucp_5fam_5fhandler_5fparam_5ffield_5fcb_3',['UCP_AM_HANDLER_PARAM_FIELD_CB',['../group___u_c_p___c_o_m_m.html#ggaeae021145933ffa033b8327bb7bf2533a6c2a2d3fe9c7118d3513833ad452cb69',1,'ucp.h']]], + ['ucp_5fam_5fhandler_5fparam_5ffield_5fflags_4',['UCP_AM_HANDLER_PARAM_FIELD_FLAGS',['../group___u_c_p___c_o_m_m.html#ggaeae021145933ffa033b8327bb7bf2533a99854985610ec532f0c83e36b3cadb3d',1,'ucp.h']]], + ['ucp_5fam_5fhandler_5fparam_5ffield_5fid_5',['UCP_AM_HANDLER_PARAM_FIELD_ID',['../group___u_c_p___c_o_m_m.html#ggaeae021145933ffa033b8327bb7bf2533a4b9788659b793630cee9bc027add35ad',1,'ucp.h']]], + ['ucp_5fam_5frecv_5fattr_5ffield_5freply_5fep_6',['UCP_AM_RECV_ATTR_FIELD_REPLY_EP',['../group___u_c_p___c_o_m_m.html#gga487a3c588a11e42b9f313f0c9e2ead3ba7a4057be7a4cc3bba470da4f8ed63259',1,'ucp.h']]], + ['ucp_5fam_5frecv_5fattr_5fflag_5fdata_7',['UCP_AM_RECV_ATTR_FLAG_DATA',['../group___u_c_p___c_o_m_m.html#gga487a3c588a11e42b9f313f0c9e2ead3baf77ecce2987e81bf773a48363767b77e',1,'ucp.h']]], + ['ucp_5fam_5frecv_5fattr_5fflag_5frndv_8',['UCP_AM_RECV_ATTR_FLAG_RNDV',['../group___u_c_p___c_o_m_m.html#gga487a3c588a11e42b9f313f0c9e2ead3baf9a8d75af5b826d7563863591a98714f',1,'ucp.h']]], + ['ucp_5fam_5fsend_5fflag_5fcopy_5fheader_9',['UCP_AM_SEND_FLAG_COPY_HEADER',['../group___u_c_p___w_o_r_k_e_r.html#gga583228e89cd5c882025ed04c76106aa6a0654f3da5be1bc517d45307b6a21cbdf',1,'ucp.h']]], + ['ucp_5fam_5fsend_5fflag_5feager_10',['UCP_AM_SEND_FLAG_EAGER',['../group___u_c_p___w_o_r_k_e_r.html#gga583228e89cd5c882025ed04c76106aa6af29f97eb0938984f627be7989c35079c',1,'ucp.h']]], + ['ucp_5fam_5fsend_5fflag_5freply_11',['UCP_AM_SEND_FLAG_REPLY',['../group___u_c_p___w_o_r_k_e_r.html#gga583228e89cd5c882025ed04c76106aa6ace99c327865c6f2294f800099d467b16',1,'ucp.h']]], + ['ucp_5fam_5fsend_5fflag_5frndv_12',['UCP_AM_SEND_FLAG_RNDV',['../group___u_c_p___w_o_r_k_e_r.html#gga583228e89cd5c882025ed04c76106aa6a3174d72844f5488bee9e0b35c75f68e5',1,'ucp.h']]], + ['ucp_5fam_5fsend_5freply_13',['UCP_AM_SEND_REPLY',['../group___u_c_p___w_o_r_k_e_r.html#gga583228e89cd5c882025ed04c76106aa6a1794c5ef851a147688d783532f1ec7bb',1,'ucp.h']]], + ['ucp_5fatomic_5ffetch_5fop_5fcswap_14',['UCP_ATOMIC_FETCH_OP_CSWAP',['../group___u_c_p___c_o_m_m.html#ggabd91e0300a53e38d28dbb53dfbb66c55adc79d547543b1803dace41a6bdea043c',1,'ucp_compat.h']]], + ['ucp_5fatomic_5ffetch_5fop_5ffadd_15',['UCP_ATOMIC_FETCH_OP_FADD',['../group___u_c_p___c_o_m_m.html#ggabd91e0300a53e38d28dbb53dfbb66c55ae7540b3c7046a454f750f816bdfa1037',1,'ucp_compat.h']]], + ['ucp_5fatomic_5ffetch_5fop_5ffand_16',['UCP_ATOMIC_FETCH_OP_FAND',['../group___u_c_p___c_o_m_m.html#ggabd91e0300a53e38d28dbb53dfbb66c55a072b82e2e35a90b7ed3e113423e6d5e3',1,'ucp_compat.h']]], + ['ucp_5fatomic_5ffetch_5fop_5ffor_17',['UCP_ATOMIC_FETCH_OP_FOR',['../group___u_c_p___c_o_m_m.html#ggabd91e0300a53e38d28dbb53dfbb66c55a2b0b3779905ea67eea996ae8e296ed59',1,'ucp_compat.h']]], + ['ucp_5fatomic_5ffetch_5fop_5ffxor_18',['UCP_ATOMIC_FETCH_OP_FXOR',['../group___u_c_p___c_o_m_m.html#ggabd91e0300a53e38d28dbb53dfbb66c55a86930c2cddc0a884cbf88ced6c330049',1,'ucp_compat.h']]], + ['ucp_5fatomic_5ffetch_5fop_5flast_19',['UCP_ATOMIC_FETCH_OP_LAST',['../group___u_c_p___c_o_m_m.html#ggabd91e0300a53e38d28dbb53dfbb66c55a2532883ac97f4ee8178b52318f978a05',1,'ucp_compat.h']]], + ['ucp_5fatomic_5ffetch_5fop_5fswap_20',['UCP_ATOMIC_FETCH_OP_SWAP',['../group___u_c_p___c_o_m_m.html#ggabd91e0300a53e38d28dbb53dfbb66c55ad5a1d6d5e5cb563b477258a4656c9069',1,'ucp_compat.h']]], + ['ucp_5fatomic_5fop_5fadd_21',['UCP_ATOMIC_OP_ADD',['../group___u_c_p___c_o_m_m.html#gga5c2ee7516e48146c044e3d9e2a2ed380a9386a4cc004f74e89bb069096ff1e43b',1,'ucp.h']]], + ['ucp_5fatomic_5fop_5fand_22',['UCP_ATOMIC_OP_AND',['../group___u_c_p___c_o_m_m.html#gga5c2ee7516e48146c044e3d9e2a2ed380adf96b275090535fca4d7c1bedaef7da3',1,'ucp.h']]], + ['ucp_5fatomic_5fop_5fcswap_23',['UCP_ATOMIC_OP_CSWAP',['../group___u_c_p___c_o_m_m.html#gga5c2ee7516e48146c044e3d9e2a2ed380ae5da2927554be21b16aa65f9e46f762a',1,'ucp.h']]], + ['ucp_5fatomic_5fop_5flast_24',['UCP_ATOMIC_OP_LAST',['../group___u_c_p___c_o_m_m.html#gga5c2ee7516e48146c044e3d9e2a2ed380a0983496b62f2d28cf043966793c6bb0b',1,'ucp.h']]], + ['ucp_5fatomic_5fop_5for_25',['UCP_ATOMIC_OP_OR',['../group___u_c_p___c_o_m_m.html#gga5c2ee7516e48146c044e3d9e2a2ed380abf085a4df55bbd6109e3fb849e0d123e',1,'ucp.h']]], + ['ucp_5fatomic_5fop_5fswap_26',['UCP_ATOMIC_OP_SWAP',['../group___u_c_p___c_o_m_m.html#gga5c2ee7516e48146c044e3d9e2a2ed380af72a4149b8c55e187bdfdcbd8d201eeb',1,'ucp.h']]], + ['ucp_5fatomic_5fop_5fxor_27',['UCP_ATOMIC_OP_XOR',['../group___u_c_p___c_o_m_m.html#gga5c2ee7516e48146c044e3d9e2a2ed380ac723509b3a97de7b43d1736bf9d79243',1,'ucp.h']]], + ['ucp_5fatomic_5fpost_5fop_5fadd_28',['UCP_ATOMIC_POST_OP_ADD',['../group___u_c_p___c_o_m_m.html#ggac5d94ea07dc4feae2708e67378ba2ad0ac9bbe0e18afb3ffc3f308feb0a2343c0',1,'ucp_compat.h']]], + ['ucp_5fatomic_5fpost_5fop_5fand_29',['UCP_ATOMIC_POST_OP_AND',['../group___u_c_p___c_o_m_m.html#ggac5d94ea07dc4feae2708e67378ba2ad0a429b49ede714d04c4675a6e3966964e4',1,'ucp_compat.h']]], + ['ucp_5fatomic_5fpost_5fop_5flast_30',['UCP_ATOMIC_POST_OP_LAST',['../group___u_c_p___c_o_m_m.html#ggac5d94ea07dc4feae2708e67378ba2ad0a97ee6dd65f14dc12791831435329c38d',1,'ucp_compat.h']]], + ['ucp_5fatomic_5fpost_5fop_5for_31',['UCP_ATOMIC_POST_OP_OR',['../group___u_c_p___c_o_m_m.html#ggac5d94ea07dc4feae2708e67378ba2ad0afddd2f7287b622caf220503a6ae38460',1,'ucp_compat.h']]], + ['ucp_5fatomic_5fpost_5fop_5fxor_32',['UCP_ATOMIC_POST_OP_XOR',['../group___u_c_p___c_o_m_m.html#ggac5d94ea07dc4feae2708e67378ba2ad0ac498a55f8365e9a0821187367bc2cf89',1,'ucp_compat.h']]], + ['ucp_5fattr_5ffield_5fmemory_5ftypes_33',['UCP_ATTR_FIELD_MEMORY_TYPES',['../group___u_c_p___c_o_n_t_e_x_t.html#gga446a95e55ba52251d2ca4bf61ff916bfa13fe8e11d8c372a446e00cf559c78b88',1,'ucp.h']]], + ['ucp_5fattr_5ffield_5fname_34',['UCP_ATTR_FIELD_NAME',['../group___u_c_p___c_o_n_t_e_x_t.html#gga446a95e55ba52251d2ca4bf61ff916bfa35fd67165561f70728f6ec1c8e53ff80',1,'ucp.h']]], + ['ucp_5fattr_5ffield_5frequest_5fsize_35',['UCP_ATTR_FIELD_REQUEST_SIZE',['../group___u_c_p___c_o_n_t_e_x_t.html#gga446a95e55ba52251d2ca4bf61ff916bfa84237b8beaee9aff1013ae6b87721ce2',1,'ucp.h']]], + ['ucp_5fattr_5ffield_5fthread_5fmode_36',['UCP_ATTR_FIELD_THREAD_MODE',['../group___u_c_p___c_o_n_t_e_x_t.html#gga446a95e55ba52251d2ca4bf61ff916bfab5f79c9d9c309562d4e7edb60e5855d6',1,'ucp.h']]], + ['ucp_5fcb_5fparam_5fflag_5fdata_37',['UCP_CB_PARAM_FLAG_DATA',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gga4a9af9e36e3256933869d6699be25874a55d40d13674830156e15f6b6289b0d12',1,'ucp.h']]], + ['ucp_5fconn_5frequest_5fattr_5ffield_5fclient_5faddr_38',['UCP_CONN_REQUEST_ATTR_FIELD_CLIENT_ADDR',['../group___u_c_p___w_o_r_k_e_r.html#gga31119b42b06b185822699697bd7a1018a98d3bca4557571d8ccb56ae2d29b2ad6',1,'ucp.h']]], + ['ucp_5fconn_5frequest_5fattr_5ffield_5fclient_5fid_39',['UCP_CONN_REQUEST_ATTR_FIELD_CLIENT_ID',['../group___u_c_p___w_o_r_k_e_r.html#gga31119b42b06b185822699697bd7a1018a2dbcf2ed5576bf2721ca550d34361f1d',1,'ucp.h']]], + ['ucp_5fdatatype_5fattr_5ffield_5fbuffer_40',['UCP_DATATYPE_ATTR_FIELD_BUFFER',['../group___u_c_p___d_a_t_a_t_y_p_e.html#ggaca9402381313d69cee7d0c90c634a18ea19731103ccab2b0c1f0a93a38177b7b2',1,'ucp.h']]], + ['ucp_5fdatatype_5fattr_5ffield_5fcount_41',['UCP_DATATYPE_ATTR_FIELD_COUNT',['../group___u_c_p___d_a_t_a_t_y_p_e.html#ggaca9402381313d69cee7d0c90c634a18ea510ae956055e56169315fef18082cf3c',1,'ucp.h']]], + ['ucp_5fdatatype_5fattr_5ffield_5fpacked_5fsize_42',['UCP_DATATYPE_ATTR_FIELD_PACKED_SIZE',['../group___u_c_p___d_a_t_a_t_y_p_e.html#ggaca9402381313d69cee7d0c90c634a18ea488b99fc01c366b5bb2b14360908a9f5',1,'ucp.h']]], + ['ucp_5fdatatype_5fclass_5fmask_43',['UCP_DATATYPE_CLASS_MASK',['../group___u_c_p___d_a_t_a_t_y_p_e.html#gga50b3b4e641a197264e963d91be480b6ca63ddce22a2292935f40122def246ffa8',1,'ucp.h']]], + ['ucp_5fdatatype_5fcontig_44',['UCP_DATATYPE_CONTIG',['../group___u_c_p___d_a_t_a_t_y_p_e.html#gga50b3b4e641a197264e963d91be480b6ca42f91fe8586a858f8e6cf9b2b0128048',1,'ucp.h']]], + ['ucp_5fdatatype_5fgeneric_45',['UCP_DATATYPE_GENERIC',['../group___u_c_p___d_a_t_a_t_y_p_e.html#gga50b3b4e641a197264e963d91be480b6caeb9bca341a1f16a56bff64f9889a4567',1,'ucp.h']]], + ['ucp_5fdatatype_5fiov_46',['UCP_DATATYPE_IOV',['../group___u_c_p___d_a_t_a_t_y_p_e.html#gga50b3b4e641a197264e963d91be480b6ca3b5515fddd08f075a8b74eca562bcb50',1,'ucp.h']]], + ['ucp_5fdatatype_5fshift_47',['UCP_DATATYPE_SHIFT',['../group___u_c_p___d_a_t_a_t_y_p_e.html#gga50b3b4e641a197264e963d91be480b6ca5c657c620df6580669917914217b2cda',1,'ucp.h']]], + ['ucp_5fdatatype_5fstrided_48',['UCP_DATATYPE_STRIDED',['../group___u_c_p___d_a_t_a_t_y_p_e.html#gga50b3b4e641a197264e963d91be480b6caa6bc9a1df8eb865e71f2b90d3e4d97ad',1,'ucp.h']]], + ['ucp_5fep_5fattr_5ffield_5flocal_5fsockaddr_49',['UCP_EP_ATTR_FIELD_LOCAL_SOCKADDR',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggaa24832a718990ceb558ab5a1d4abfc41a1f04baee4cd992c08b62716558eb6013',1,'ucp.h']]], + ['ucp_5fep_5fattr_5ffield_5fname_50',['UCP_EP_ATTR_FIELD_NAME',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggaa24832a718990ceb558ab5a1d4abfc41ac78de8cbed80cdb833a6ae5ddcd270fd',1,'ucp.h']]], + ['ucp_5fep_5fattr_5ffield_5fremote_5fsockaddr_51',['UCP_EP_ATTR_FIELD_REMOTE_SOCKADDR',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggaa24832a718990ceb558ab5a1d4abfc41a2b85f61bc437c3b277e360afaa058bf3',1,'ucp.h']]], + ['ucp_5fep_5fattr_5ffield_5ftransports_52',['UCP_EP_ATTR_FIELD_TRANSPORTS',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggaa24832a718990ceb558ab5a1d4abfc41a0eeddc2e29662e9ab046ac862757d11e',1,'ucp.h']]], + ['ucp_5fep_5fclose_5fflag_5fforce_53',['UCP_EP_CLOSE_FLAG_FORCE',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggacef728a5ee7a11f50794544aa259fe71a5b827bc555062bcba501faa3f40e789b',1,'ucp.h']]], + ['ucp_5fep_5fclose_5fmode_5fflush_54',['UCP_EP_CLOSE_MODE_FLUSH',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gga3be4aa93d76e41c80c780965f2f8ae57ab0b1f6dcac5f54dff76c87fcf0c55c8b',1,'ucp_compat.h']]], + ['ucp_5fep_5fclose_5fmode_5fforce_55',['UCP_EP_CLOSE_MODE_FORCE',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gga3be4aa93d76e41c80c780965f2f8ae57ad78eab8ac29d813247b3cca01c3194db',1,'ucp_compat.h']]], + ['ucp_5fep_5fparam_5ffield_5fconn_5frequest_56',['UCP_EP_PARAM_FIELD_CONN_REQUEST',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggabb6ce0b3189f415dadc7f99727751d60a88c2cf7c57a1cddc6b2cf9bcdc99e64e',1,'ucp.h']]], + ['ucp_5fep_5fparam_5ffield_5ferr_5fhandler_57',['UCP_EP_PARAM_FIELD_ERR_HANDLER',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggabb6ce0b3189f415dadc7f99727751d60adc6619f5e4bf3f68190f918ee064036d',1,'ucp.h']]], + ['ucp_5fep_5fparam_5ffield_5ferr_5fhandling_5fmode_58',['UCP_EP_PARAM_FIELD_ERR_HANDLING_MODE',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggabb6ce0b3189f415dadc7f99727751d60a1b0e70c12efabe6a2cab3c9bc66db340',1,'ucp.h']]], + ['ucp_5fep_5fparam_5ffield_5fflags_59',['UCP_EP_PARAM_FIELD_FLAGS',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggabb6ce0b3189f415dadc7f99727751d60a1b53a3d4eaee470bcb3e23c60f1f7794',1,'ucp.h']]], + ['ucp_5fep_5fparam_5ffield_5flocal_5fsock_5faddr_60',['UCP_EP_PARAM_FIELD_LOCAL_SOCK_ADDR',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggabb6ce0b3189f415dadc7f99727751d60ade6d1e89c4a39f44f8c088d3e79c59f5',1,'ucp.h']]], + ['ucp_5fep_5fparam_5ffield_5fname_61',['UCP_EP_PARAM_FIELD_NAME',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggabb6ce0b3189f415dadc7f99727751d60aad52a9473f7b47dd7dddc43062e16436',1,'ucp.h']]], + ['ucp_5fep_5fparam_5ffield_5fremote_5faddress_62',['UCP_EP_PARAM_FIELD_REMOTE_ADDRESS',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggabb6ce0b3189f415dadc7f99727751d60ae1c4a9617dea28b56c486ac357299f4c',1,'ucp.h']]], + ['ucp_5fep_5fparam_5ffield_5fsock_5faddr_63',['UCP_EP_PARAM_FIELD_SOCK_ADDR',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggabb6ce0b3189f415dadc7f99727751d60a8149dfb8648b2b248825020c63449a80',1,'ucp.h']]], + ['ucp_5fep_5fparam_5ffield_5fuser_5fdata_64',['UCP_EP_PARAM_FIELD_USER_DATA',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ggabb6ce0b3189f415dadc7f99727751d60afc6cbbfabd368438e5d6afd36f389d1b',1,'ucp.h']]], + ['ucp_5fep_5fparams_5fflags_5fclient_5fserver_65',['UCP_EP_PARAMS_FLAGS_CLIENT_SERVER',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gga4a1f422dc1e81495b4aee1da8939459fad42871a591a0a34bccf5c8203a0b32bb',1,'ucp.h']]], + ['ucp_5fep_5fparams_5fflags_5fno_5floopback_66',['UCP_EP_PARAMS_FLAGS_NO_LOOPBACK',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gga4a1f422dc1e81495b4aee1da8939459fa519d4e4a7237ae543f72ddeaef6864ec',1,'ucp.h']]], + ['ucp_5fep_5fparams_5fflags_5fsend_5fclient_5fid_67',['UCP_EP_PARAMS_FLAGS_SEND_CLIENT_ID',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gga4a1f422dc1e81495b4aee1da8939459faddc3dea615010520ff2fa9d214eabcd3',1,'ucp.h']]], + ['ucp_5fep_5fperf_5fattr_5ffield_5festimated_5ftime_68',['UCP_EP_PERF_ATTR_FIELD_ESTIMATED_TIME',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gga806d286165cdbe6d6c63d52b06b16406a6bfbf6be343cb78ca8bb7ad9c602ad1a',1,'ucp.h']]], + ['ucp_5fep_5fperf_5fparam_5ffield_5fmessage_5fsize_69',['UCP_EP_PERF_PARAM_FIELD_MESSAGE_SIZE',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gga4abce355cbaf6b31b1aaa88b68154f13a3d545405c1d0a3fec8050d1f985f3360',1,'ucp.h']]], + ['ucp_5ferr_5fhandling_5fmode_5fnone_70',['UCP_ERR_HANDLING_MODE_NONE',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gga7c69a28724d5ae3e49490e23e64df167a18c7855c2e1dea33e0be32d9ef841ffe',1,'ucp_def.h']]], + ['ucp_5ferr_5fhandling_5fmode_5fpeer_71',['UCP_ERR_HANDLING_MODE_PEER',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gga7c69a28724d5ae3e49490e23e64df167aa31630259732e700b6ce0fe612cf0a6f',1,'ucp_def.h']]], + ['ucp_5ffeature_5fam_72',['UCP_FEATURE_AM',['../group___u_c_p___c_o_n_t_e_x_t.html#ggaca5990bc015e7e9ac3e3be4e3611c5bea685931b9f438fa9a2faaf9eccf47b097',1,'ucp.h']]], + ['ucp_5ffeature_5famo32_73',['UCP_FEATURE_AMO32',['../group___u_c_p___c_o_n_t_e_x_t.html#ggaca5990bc015e7e9ac3e3be4e3611c5beab127e1eabe5779ad82bc1ad4c5b47007',1,'ucp.h']]], + ['ucp_5ffeature_5famo64_74',['UCP_FEATURE_AMO64',['../group___u_c_p___c_o_n_t_e_x_t.html#ggaca5990bc015e7e9ac3e3be4e3611c5beada4b36191b39ef8615f657d370baead1',1,'ucp.h']]], + ['ucp_5ffeature_5fexported_5fmemh_75',['UCP_FEATURE_EXPORTED_MEMH',['../group___u_c_p___c_o_n_t_e_x_t.html#ggaca5990bc015e7e9ac3e3be4e3611c5beafb42f40309d4d14d32b8b7992b48ef68',1,'ucp.h']]], + ['ucp_5ffeature_5frma_76',['UCP_FEATURE_RMA',['../group___u_c_p___c_o_n_t_e_x_t.html#ggaca5990bc015e7e9ac3e3be4e3611c5beaf374a837508d798fb36abd22a7a0a033',1,'ucp.h']]], + ['ucp_5ffeature_5fstream_77',['UCP_FEATURE_STREAM',['../group___u_c_p___c_o_n_t_e_x_t.html#ggaca5990bc015e7e9ac3e3be4e3611c5bea0c3896ead0887f9c650b221831e16b5c',1,'ucp.h']]], + ['ucp_5ffeature_5ftag_78',['UCP_FEATURE_TAG',['../group___u_c_p___c_o_n_t_e_x_t.html#ggaca5990bc015e7e9ac3e3be4e3611c5bea244187ad85296b3784d302db00f66b9e',1,'ucp.h']]], + ['ucp_5ffeature_5fwakeup_79',['UCP_FEATURE_WAKEUP',['../group___u_c_p___c_o_n_t_e_x_t.html#ggaca5990bc015e7e9ac3e3be4e3611c5beabc3fea5aff6b7453e24235bceb102b5a',1,'ucp.h']]], + ['ucp_5flib_5fattr_5ffield_5fmax_5fthread_5flevel_80',['UCP_LIB_ATTR_FIELD_MAX_THREAD_LEVEL',['../group___u_c_p___c_o_n_t_e_x_t.html#gga2791b2b44c55fdb685dcd4dad8c8ae3ca96a3edd65a30f00765d330342d3c1267',1,'ucp.h']]], + ['ucp_5flistener_5fattr_5ffield_5fsockaddr_81',['UCP_LISTENER_ATTR_FIELD_SOCKADDR',['../group___u_c_p___w_o_r_k_e_r.html#gga54059507b51041359aedffbe75635720a5a58fea3f5a4daa6b055306a6798ec26',1,'ucp.h']]], + ['ucp_5flistener_5fparam_5ffield_5faccept_5fhandler_82',['UCP_LISTENER_PARAM_FIELD_ACCEPT_HANDLER',['../group___u_c_p___w_o_r_k_e_r.html#gga36d95269fcce844261494cbd4f5e26fca3cdf187536d998c115377f8de396ac66',1,'ucp.h']]], + ['ucp_5flistener_5fparam_5ffield_5fconn_5fhandler_83',['UCP_LISTENER_PARAM_FIELD_CONN_HANDLER',['../group___u_c_p___w_o_r_k_e_r.html#gga36d95269fcce844261494cbd4f5e26fca6f28cd3c96e0ada4fafc63d6f67e48bc',1,'ucp.h']]], + ['ucp_5flistener_5fparam_5ffield_5fsock_5faddr_84',['UCP_LISTENER_PARAM_FIELD_SOCK_ADDR',['../group___u_c_p___w_o_r_k_e_r.html#gga36d95269fcce844261494cbd4f5e26fca0eed5ab19654fabc0afceb5b439c6f05',1,'ucp.h']]], + ['ucp_5fmadv_5fnormal_85',['UCP_MADV_NORMAL',['../group___u_c_p___m_e_m.html#gga1a73c4a7fc1d8a6d75e6b53256eec0b8a3a335aa51dc934e57f4ccbd26fb32fb0',1,'ucp.h']]], + ['ucp_5fmadv_5fwillneed_86',['UCP_MADV_WILLNEED',['../group___u_c_p___m_e_m.html#gga1a73c4a7fc1d8a6d75e6b53256eec0b8a882711eaac0fe1172570783e9824e12f',1,'ucp.h']]], + ['ucp_5fmem_5fadvise_5fparam_5ffield_5faddress_87',['UCP_MEM_ADVISE_PARAM_FIELD_ADDRESS',['../group___u_c_p___m_e_m.html#gga3c0f7ca217c77fa0ae8649e21b24a1fca19cd431b1a46a62abaf904d0358ffaad',1,'ucp.h']]], + ['ucp_5fmem_5fadvise_5fparam_5ffield_5fadvice_88',['UCP_MEM_ADVISE_PARAM_FIELD_ADVICE',['../group___u_c_p___m_e_m.html#gga3c0f7ca217c77fa0ae8649e21b24a1fca8834ee80833e5509eea118807dc1a213',1,'ucp.h']]], + ['ucp_5fmem_5fadvise_5fparam_5ffield_5flength_89',['UCP_MEM_ADVISE_PARAM_FIELD_LENGTH',['../group___u_c_p___m_e_m.html#gga3c0f7ca217c77fa0ae8649e21b24a1fcac60bdd12018a716587c71883ae408b60',1,'ucp.h']]], + ['ucp_5fmem_5fattr_5ffield_5faddress_90',['UCP_MEM_ATTR_FIELD_ADDRESS',['../group___u_c_p___m_e_m.html#ggab0d7a54391c964c59b2cfbf30e23dc14a7255d71b73495f3466b2b3938f85630f',1,'ucp_def.h']]], + ['ucp_5fmem_5fattr_5ffield_5flength_91',['UCP_MEM_ATTR_FIELD_LENGTH',['../group___u_c_p___m_e_m.html#ggab0d7a54391c964c59b2cfbf30e23dc14aaf7684459badd65a4e70a65813ae1e35',1,'ucp_def.h']]], + ['ucp_5fmem_5fattr_5ffield_5fmem_5ftype_92',['UCP_MEM_ATTR_FIELD_MEM_TYPE',['../group___u_c_p___m_e_m.html#ggab0d7a54391c964c59b2cfbf30e23dc14a97c63bcd6332d0556e4439bc65531116',1,'ucp_def.h']]], + ['ucp_5fmem_5fmap_5fallocate_93',['UCP_MEM_MAP_ALLOCATE',['../group___u_c_p___m_e_m.html#gga06fc87d81c62e9abb8790b6e5713c55ba8cb2c18c15da7e8da9aa2de5b407957a',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5ffixed_94',['UCP_MEM_MAP_FIXED',['../group___u_c_p___m_e_m.html#gga06fc87d81c62e9abb8790b6e5713c55ba937051276d5a7825211189c84d7f2922',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5fnonblock_95',['UCP_MEM_MAP_NONBLOCK',['../group___u_c_p___m_e_m.html#gga06fc87d81c62e9abb8790b6e5713c55ba31fa3f795110becccb25734067b5e203',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5fparam_5ffield_5faddress_96',['UCP_MEM_MAP_PARAM_FIELD_ADDRESS',['../group___u_c_p___m_e_m.html#gga1b78010c24c834aadc9fb8f1083e226faa3ddd6c11c7610ae3c97fcb4473d9332',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5fparam_5ffield_5fexported_5fmemh_5fbuffer_97',['UCP_MEM_MAP_PARAM_FIELD_EXPORTED_MEMH_BUFFER',['../group___u_c_p___m_e_m.html#gga1b78010c24c834aadc9fb8f1083e226faf130e704ffef248e615f5aeb25208ce9',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5fparam_5ffield_5fflags_98',['UCP_MEM_MAP_PARAM_FIELD_FLAGS',['../group___u_c_p___m_e_m.html#gga1b78010c24c834aadc9fb8f1083e226fafc2e699ec811b6848bfc40d4a6c1b049',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5fparam_5ffield_5flength_99',['UCP_MEM_MAP_PARAM_FIELD_LENGTH',['../group___u_c_p___m_e_m.html#gga1b78010c24c834aadc9fb8f1083e226faa4aa7e36cd51262837f9179cb74fb22a',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5fparam_5ffield_5fmemory_5ftype_100',['UCP_MEM_MAP_PARAM_FIELD_MEMORY_TYPE',['../group___u_c_p___m_e_m.html#gga1b78010c24c834aadc9fb8f1083e226fab5d6cd1e76f334a4ae5d10d5955d51b7',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5fparam_5ffield_5fprot_101',['UCP_MEM_MAP_PARAM_FIELD_PROT',['../group___u_c_p___m_e_m.html#gga1b78010c24c834aadc9fb8f1083e226fa349ca907322a708479795afef1fe28ff',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5fprot_5flocal_5fread_102',['UCP_MEM_MAP_PROT_LOCAL_READ',['../group___u_c_p___m_e_m.html#ggadf764cbdea00d65edcd07bb9953ad2b7a78c92c33fb131e7084b6a2933632ec17',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5fprot_5flocal_5fwrite_103',['UCP_MEM_MAP_PROT_LOCAL_WRITE',['../group___u_c_p___m_e_m.html#ggadf764cbdea00d65edcd07bb9953ad2b7a6961fd2dcb7ff1fd5980f2d09bb40c39',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5fprot_5fremote_5fread_104',['UCP_MEM_MAP_PROT_REMOTE_READ',['../group___u_c_p___m_e_m.html#ggadf764cbdea00d65edcd07bb9953ad2b7a2dc03b7f80ce18c5ec948d1039342bdb',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5fprot_5fremote_5fwrite_105',['UCP_MEM_MAP_PROT_REMOTE_WRITE',['../group___u_c_p___m_e_m.html#ggadf764cbdea00d65edcd07bb9953ad2b7a4d1429c096e17c691ca710aeb6385fe8',1,'ucp.h']]], + ['ucp_5fmem_5fmap_5fsymmetric_5frkey_106',['UCP_MEM_MAP_SYMMETRIC_RKEY',['../group___u_c_p___m_e_m.html#gga06fc87d81c62e9abb8790b6e5713c55ba3e27fc9d8ad8b346a73417a654c96033',1,'ucp.h']]], + ['ucp_5fmemh_5fpack_5fflag_5fexport_107',['UCP_MEMH_PACK_FLAG_EXPORT',['../group___u_c_p___m_e_m.html#gga83ac2dbb4fe6b93948b00c9a2ad16efead1933cc321da0f7ab0428070d36d1e00',1,'ucp.h']]], + ['ucp_5fmemh_5fpack_5fparam_5ffield_5fflags_108',['UCP_MEMH_PACK_PARAM_FIELD_FLAGS',['../group___u_c_p___m_e_m.html#gga9143b85c7c40d6b13020a13bc13f9dbfaa88937590bafafda1088444634173fa8',1,'ucp.h']]], + ['ucp_5fop_5fattr_5ffield_5fcallback_109',['UCP_OP_ATTR_FIELD_CALLBACK',['../group___u_c_p___c_o_m_m.html#gga67fae646dd1668efba6efe49a35a6610a73e3a6e8b96b37ec1b0764e67dd13602',1,'ucp.h']]], + ['ucp_5fop_5fattr_5ffield_5fdatatype_110',['UCP_OP_ATTR_FIELD_DATATYPE',['../group___u_c_p___c_o_m_m.html#gga67fae646dd1668efba6efe49a35a6610a354ef92dd9352dfccc859cd2ca3558d8',1,'ucp.h']]], + ['ucp_5fop_5fattr_5ffield_5fflags_111',['UCP_OP_ATTR_FIELD_FLAGS',['../group___u_c_p___c_o_m_m.html#gga67fae646dd1668efba6efe49a35a6610a2f2586686e21b2700fd7cd4a8efb5a1b',1,'ucp.h']]], + ['ucp_5fop_5fattr_5ffield_5fmemh_112',['UCP_OP_ATTR_FIELD_MEMH',['../group___u_c_p___c_o_m_m.html#gga67fae646dd1668efba6efe49a35a6610a84426c4dea4dceee1b015c3ccdcb7a78',1,'ucp.h']]], + ['ucp_5fop_5fattr_5ffield_5fmemory_5ftype_113',['UCP_OP_ATTR_FIELD_MEMORY_TYPE',['../group___u_c_p___c_o_m_m.html#gga67fae646dd1668efba6efe49a35a6610a768b4c6759502c34b0051ba33c0d05b3',1,'ucp.h']]], + ['ucp_5fop_5fattr_5ffield_5frecv_5finfo_114',['UCP_OP_ATTR_FIELD_RECV_INFO',['../group___u_c_p___c_o_m_m.html#gga67fae646dd1668efba6efe49a35a6610ac5a4c17a81a2efefae5e338479ae06cb',1,'ucp.h']]], + ['ucp_5fop_5fattr_5ffield_5freply_5fbuffer_115',['UCP_OP_ATTR_FIELD_REPLY_BUFFER',['../group___u_c_p___c_o_m_m.html#gga67fae646dd1668efba6efe49a35a6610a8eb660399c093d89d5deae5c847019f0',1,'ucp.h']]], + ['ucp_5fop_5fattr_5ffield_5frequest_116',['UCP_OP_ATTR_FIELD_REQUEST',['../group___u_c_p___c_o_m_m.html#gga67fae646dd1668efba6efe49a35a6610acfac7dfc3e7b5967870f5376c334b996',1,'ucp.h']]], + ['ucp_5fop_5fattr_5ffield_5fuser_5fdata_117',['UCP_OP_ATTR_FIELD_USER_DATA',['../group___u_c_p___c_o_m_m.html#gga67fae646dd1668efba6efe49a35a6610af6f932f15331fe7c9efacbfe2578e5ec',1,'ucp.h']]], + ['ucp_5fop_5fattr_5fflag_5ffast_5fcmpl_118',['UCP_OP_ATTR_FLAG_FAST_CMPL',['../group___u_c_p___c_o_m_m.html#gga67fae646dd1668efba6efe49a35a6610a69a2066ee5f68e57021f622b0cc859a8',1,'ucp.h']]], + ['ucp_5fop_5fattr_5fflag_5fforce_5fimm_5fcmpl_119',['UCP_OP_ATTR_FLAG_FORCE_IMM_CMPL',['../group___u_c_p___c_o_m_m.html#gga67fae646dd1668efba6efe49a35a6610aeb35a090d86119cfd25d4e82753e943f',1,'ucp.h']]], + ['ucp_5fop_5fattr_5fflag_5fmulti_5fsend_120',['UCP_OP_ATTR_FLAG_MULTI_SEND',['../group___u_c_p___c_o_m_m.html#gga67fae646dd1668efba6efe49a35a6610a405517272bc4319aa3b49638f5626c7b',1,'ucp.h']]], + ['ucp_5fop_5fattr_5fflag_5fno_5fimm_5fcmpl_121',['UCP_OP_ATTR_FLAG_NO_IMM_CMPL',['../group___u_c_p___c_o_m_m.html#gga67fae646dd1668efba6efe49a35a6610a8805045d48573e9aa5751b439be114d0',1,'ucp.h']]], + ['ucp_5fparam_5ffield_5festimated_5fnum_5feps_122',['UCP_PARAM_FIELD_ESTIMATED_NUM_EPS',['../group___u_c_p___c_o_n_t_e_x_t.html#ggab43f613a2365147415abf66f571cfa71a834c5a969e0d41a90d54a6955b7414eb',1,'ucp.h']]], + ['ucp_5fparam_5ffield_5festimated_5fnum_5fppn_123',['UCP_PARAM_FIELD_ESTIMATED_NUM_PPN',['../group___u_c_p___c_o_n_t_e_x_t.html#ggab43f613a2365147415abf66f571cfa71a22fcdc29e68f36d97a0f389712529976',1,'ucp.h']]], + ['ucp_5fparam_5ffield_5ffeatures_124',['UCP_PARAM_FIELD_FEATURES',['../group___u_c_p___c_o_n_t_e_x_t.html#ggab43f613a2365147415abf66f571cfa71a454f1e90a324095192d87d97b8a4321f',1,'ucp.h']]], + ['ucp_5fparam_5ffield_5fmt_5fworkers_5fshared_125',['UCP_PARAM_FIELD_MT_WORKERS_SHARED',['../group___u_c_p___c_o_n_t_e_x_t.html#ggab43f613a2365147415abf66f571cfa71aa8d5e573f9d52358f50ae2725a08e10e',1,'ucp.h']]], + ['ucp_5fparam_5ffield_5fname_126',['UCP_PARAM_FIELD_NAME',['../group___u_c_p___c_o_n_t_e_x_t.html#ggab43f613a2365147415abf66f571cfa71a9bf23645413cc4f5e753cf99b4379eb6',1,'ucp.h']]], + ['ucp_5fparam_5ffield_5frequest_5fcleanup_127',['UCP_PARAM_FIELD_REQUEST_CLEANUP',['../group___u_c_p___c_o_n_t_e_x_t.html#ggab43f613a2365147415abf66f571cfa71a9e2c9cebfbf51d47df31ffd019eb01c6',1,'ucp.h']]], + ['ucp_5fparam_5ffield_5frequest_5finit_128',['UCP_PARAM_FIELD_REQUEST_INIT',['../group___u_c_p___c_o_n_t_e_x_t.html#ggab43f613a2365147415abf66f571cfa71ac95d94f94370df6cd79db8e830505738',1,'ucp.h']]], + ['ucp_5fparam_5ffield_5frequest_5fsize_129',['UCP_PARAM_FIELD_REQUEST_SIZE',['../group___u_c_p___c_o_n_t_e_x_t.html#ggab43f613a2365147415abf66f571cfa71a8385ca52048353e69b90fb7c6b0799ee',1,'ucp.h']]], + ['ucp_5fparam_5ffield_5ftag_5fsender_5fmask_130',['UCP_PARAM_FIELD_TAG_SENDER_MASK',['../group___u_c_p___c_o_n_t_e_x_t.html#ggab43f613a2365147415abf66f571cfa71a030b9866b2b6167cbdcfe9ce321d1f28',1,'ucp.h']]], + ['ucp_5frequest_5fattr_5ffield_5finfo_5fstring_131',['UCP_REQUEST_ATTR_FIELD_INFO_STRING',['../group___u_c_p___c_o_m_m.html#ggab383d860475f8917f51afb542e7d02ffa45086e70d5035d92a601605a689178b9',1,'ucp.h']]], + ['ucp_5frequest_5fattr_5ffield_5finfo_5fstring_5fsize_132',['UCP_REQUEST_ATTR_FIELD_INFO_STRING_SIZE',['../group___u_c_p___c_o_m_m.html#ggab383d860475f8917f51afb542e7d02ffaaae11c040c811d14362cbbc47ea9f772',1,'ucp.h']]], + ['ucp_5frequest_5fattr_5ffield_5fmem_5ftype_133',['UCP_REQUEST_ATTR_FIELD_MEM_TYPE',['../group___u_c_p___c_o_m_m.html#ggab383d860475f8917f51afb542e7d02ffa7a1764b4ce21085ecbbdd13a1f183df5',1,'ucp.h']]], + ['ucp_5frequest_5fattr_5ffield_5fstatus_134',['UCP_REQUEST_ATTR_FIELD_STATUS',['../group___u_c_p___c_o_m_m.html#ggab383d860475f8917f51afb542e7d02ffa9d41f03b4a79e21265ad15f87d3ff8ed',1,'ucp.h']]], + ['ucp_5fstream_5frecv_5fflag_5fwaitall_135',['UCP_STREAM_RECV_FLAG_WAITALL',['../group___u_c_p___c_o_m_m.html#ggab471a9c7ab815e3d3ad7af80253f5cc2a5fb4ed4f8009d969ea9a8b3f3542424c',1,'ucp.h']]], + ['ucp_5fwakeup_5famo_136',['UCP_WAKEUP_AMO',['../group___u_c_p___w_o_r_k_e_r.html#gga66be8946dcd33051d40ceca65ba28e22a1f8891a39fe63593947811936a9af8f7',1,'ucp_def.h']]], + ['ucp_5fwakeup_5fedge_137',['UCP_WAKEUP_EDGE',['../group___u_c_p___w_o_r_k_e_r.html#gga66be8946dcd33051d40ceca65ba28e22a474ecc6ca013d28f71ade5d85aafd1c8',1,'ucp_def.h']]], + ['ucp_5fwakeup_5frma_138',['UCP_WAKEUP_RMA',['../group___u_c_p___w_o_r_k_e_r.html#gga66be8946dcd33051d40ceca65ba28e22a80fc6d63077023d905d9f3adfb37c50a',1,'ucp_def.h']]], + ['ucp_5fwakeup_5frx_139',['UCP_WAKEUP_RX',['../group___u_c_p___w_o_r_k_e_r.html#gga66be8946dcd33051d40ceca65ba28e22a182a353c533fc335e638e41fdaf7c6b5',1,'ucp_def.h']]], + ['ucp_5fwakeup_5ftag_5frecv_140',['UCP_WAKEUP_TAG_RECV',['../group___u_c_p___w_o_r_k_e_r.html#gga66be8946dcd33051d40ceca65ba28e22a15bd79b8acc9815513dccf43fc350435',1,'ucp_def.h']]], + ['ucp_5fwakeup_5ftag_5fsend_141',['UCP_WAKEUP_TAG_SEND',['../group___u_c_p___w_o_r_k_e_r.html#gga66be8946dcd33051d40ceca65ba28e22a136d0a608b0dcceb731d3022f1cb0e91',1,'ucp_def.h']]], + ['ucp_5fwakeup_5ftx_142',['UCP_WAKEUP_TX',['../group___u_c_p___w_o_r_k_e_r.html#gga66be8946dcd33051d40ceca65ba28e22ad70899effbabed3294c35b9b0f2a747b',1,'ucp_def.h']]], + ['ucp_5fworker_5faddress_5fattr_5ffield_5fuid_143',['UCP_WORKER_ADDRESS_ATTR_FIELD_UID',['../group___u_c_p___w_o_r_k_e_r.html#ggaadc74e7e271c4e181263115b08bf71c8af5d5293830102fa30e1e26cfbdde0772',1,'ucp.h']]], + ['ucp_5fworker_5faddress_5fflag_5fnet_5fonly_144',['UCP_WORKER_ADDRESS_FLAG_NET_ONLY',['../group___u_c_p___w_o_r_k_e_r.html#ggab1ec638cc4a7498a85017d132492d195af9fe9ee3edc7fe21c889437941bb4117',1,'ucp.h']]], + ['ucp_5fworker_5fattr_5ffield_5faddress_145',['UCP_WORKER_ATTR_FIELD_ADDRESS',['../group___u_c_p___w_o_r_k_e_r.html#ggacf03ee299a48c2f9c776516cc82c7194a0dde53e12c0ab222ddcf2a52984fddd2',1,'ucp.h']]], + ['ucp_5fworker_5fattr_5ffield_5faddress_5fflags_146',['UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS',['../group___u_c_p___w_o_r_k_e_r.html#ggacf03ee299a48c2f9c776516cc82c7194a9b007ce57d2935817f86b4c4c6aad8c9',1,'ucp.h']]], + ['ucp_5fworker_5fattr_5ffield_5fmax_5fam_5fheader_147',['UCP_WORKER_ATTR_FIELD_MAX_AM_HEADER',['../group___u_c_p___w_o_r_k_e_r.html#ggacf03ee299a48c2f9c776516cc82c7194a4ad76742671a6282274e48dc904f145e',1,'ucp.h']]], + ['ucp_5fworker_5fattr_5ffield_5fmax_5finfo_5fstring_148',['UCP_WORKER_ATTR_FIELD_MAX_INFO_STRING',['../group___u_c_p___w_o_r_k_e_r.html#ggacf03ee299a48c2f9c776516cc82c7194aa92fba4ea095cc171b1153b88684213d',1,'ucp.h']]], + ['ucp_5fworker_5fattr_5ffield_5fname_149',['UCP_WORKER_ATTR_FIELD_NAME',['../group___u_c_p___w_o_r_k_e_r.html#ggacf03ee299a48c2f9c776516cc82c7194a806d5f1afd1e673b78888588b03ae95e',1,'ucp.h']]], + ['ucp_5fworker_5fattr_5ffield_5fthread_5fmode_150',['UCP_WORKER_ATTR_FIELD_THREAD_MODE',['../group___u_c_p___w_o_r_k_e_r.html#ggacf03ee299a48c2f9c776516cc82c7194a6d3178929ef9e6570999384991fbd42d',1,'ucp.h']]], + ['ucp_5fworker_5fflag_5fignore_5frequest_5fleak_151',['UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK',['../group___u_c_p___w_o_r_k_e_r.html#gga11a37476d021e1ad36c1b727373212b4a367a4eddbf55c75a186584fef73a484a',1,'ucp.h']]], + ['ucp_5fworker_5fparam_5ffield_5fam_5falignment_152',['UCP_WORKER_PARAM_FIELD_AM_ALIGNMENT',['../group___u_c_p___w_o_r_k_e_r.html#ggadbfc8fd5eaa65351d1617f2f158b80f6a68376de940e85a5ee4ffa6359c5ee2bc',1,'ucp.h']]], + ['ucp_5fworker_5fparam_5ffield_5fclient_5fid_153',['UCP_WORKER_PARAM_FIELD_CLIENT_ID',['../group___u_c_p___w_o_r_k_e_r.html#ggadbfc8fd5eaa65351d1617f2f158b80f6a20b21817e31db3e2ef52b507abbfa0bb',1,'ucp.h']]], + ['ucp_5fworker_5fparam_5ffield_5fcpu_5fmask_154',['UCP_WORKER_PARAM_FIELD_CPU_MASK',['../group___u_c_p___w_o_r_k_e_r.html#ggadbfc8fd5eaa65351d1617f2f158b80f6a0ba499461804b26850d6a530609e228d',1,'ucp.h']]], + ['ucp_5fworker_5fparam_5ffield_5fevent_5ffd_155',['UCP_WORKER_PARAM_FIELD_EVENT_FD',['../group___u_c_p___w_o_r_k_e_r.html#ggadbfc8fd5eaa65351d1617f2f158b80f6ae743c2d23a0d7b0a9a8c6362a7611139',1,'ucp.h']]], + ['ucp_5fworker_5fparam_5ffield_5fevents_156',['UCP_WORKER_PARAM_FIELD_EVENTS',['../group___u_c_p___w_o_r_k_e_r.html#ggadbfc8fd5eaa65351d1617f2f158b80f6ac756667325d053bd1cc11cccf853b0c9',1,'ucp.h']]], + ['ucp_5fworker_5fparam_5ffield_5fflags_157',['UCP_WORKER_PARAM_FIELD_FLAGS',['../group___u_c_p___w_o_r_k_e_r.html#ggadbfc8fd5eaa65351d1617f2f158b80f6a4a43ec7752c45629a3fc229a31d33617',1,'ucp.h']]], + ['ucp_5fworker_5fparam_5ffield_5fname_158',['UCP_WORKER_PARAM_FIELD_NAME',['../group___u_c_p___w_o_r_k_e_r.html#ggadbfc8fd5eaa65351d1617f2f158b80f6a57069c65941e47f35bea0478ddf0a829',1,'ucp.h']]], + ['ucp_5fworker_5fparam_5ffield_5fthread_5fmode_159',['UCP_WORKER_PARAM_FIELD_THREAD_MODE',['../group___u_c_p___w_o_r_k_e_r.html#ggadbfc8fd5eaa65351d1617f2f158b80f6a651598f7340d42cafb0876d918c83ec8',1,'ucp.h']]], + ['ucp_5fworker_5fparam_5ffield_5fuser_5fdata_160',['UCP_WORKER_PARAM_FIELD_USER_DATA',['../group___u_c_p___w_o_r_k_e_r.html#ggadbfc8fd5eaa65351d1617f2f158b80f6a1243d403aeceab36eee6d9cb985e8eb0',1,'ucp.h']]], + ['ucs_5fcallbackq_5fflag_5ffast_161',['UCS_CALLBACKQ_FLAG_FAST',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ggaa693580c739b1ba94bd6218d00222110a05c5239629fdbfb4dc63a2b354b93e93',1,'callbackq_compat.h']]], + ['ucs_5fcallbackq_5fflag_5foneshot_162',['UCS_CALLBACKQ_FLAG_ONESHOT',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ggaa693580c739b1ba94bd6218d00222110aabec96aecc786be2edb8f16c5034c493',1,'callbackq_compat.h']]], + ['ucs_5ferr_5falready_5fexists_163',['UCS_ERR_ALREADY_EXISTS',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a8295b85b654e3145ee08a94714832112',1,'status.h']]], + ['ucs_5ferr_5fbuffer_5ftoo_5fsmall_164',['UCS_ERR_BUFFER_TOO_SMALL',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a2ab3b7e6c60cb0afe80c2e11cc39122f',1,'status.h']]], + ['ucs_5ferr_5fbusy_165',['UCS_ERR_BUSY',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a331d8719f76965a4514684c570110105',1,'status.h']]], + ['ucs_5ferr_5fcanceled_166',['UCS_ERR_CANCELED',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a446ce3cf260eab2465e9f7adfbad1f11',1,'status.h']]], + ['ucs_5ferr_5fconnection_5freset_167',['UCS_ERR_CONNECTION_RESET',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a3845462922a8704ddca8be0dafc47cd5',1,'status.h']]], + ['ucs_5ferr_5fendpoint_5ftimeout_168',['UCS_ERR_ENDPOINT_TIMEOUT',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558adc9adfec2d408b4efd95be36dcb119cf',1,'status.h']]], + ['ucs_5ferr_5fexceeds_5flimit_169',['UCS_ERR_EXCEEDS_LIMIT',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a45d1cd8512f1ba4391f91b0bc399f1fb',1,'status.h']]], + ['ucs_5ferr_5ffirst_5fendpoint_5ffailure_170',['UCS_ERR_FIRST_ENDPOINT_FAILURE',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a2441db0c09803ed41453968577e29446',1,'status.h']]], + ['ucs_5ferr_5ffirst_5flink_5ffailure_171',['UCS_ERR_FIRST_LINK_FAILURE',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a8356f94996c7759a785f8d508ff58779',1,'status.h']]], + ['ucs_5ferr_5finvalid_5faddr_172',['UCS_ERR_INVALID_ADDR',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558aaebc6a3a7f1626b431f80ff66e9a4922',1,'status.h']]], + ['ucs_5ferr_5finvalid_5fparam_173',['UCS_ERR_INVALID_PARAM',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558ab5a5c5278c83f957a096444de28db597',1,'status.h']]], + ['ucs_5ferr_5fio_5ferror_174',['UCS_ERR_IO_ERROR',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558aaaf39ceea715057fdec5736443e0265b',1,'status.h']]], + ['ucs_5ferr_5flast_175',['UCS_ERR_LAST',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a359c2fe5ffba5911f340ec8a750917bb',1,'status.h']]], + ['ucs_5ferr_5flast_5fendpoint_5ffailure_176',['UCS_ERR_LAST_ENDPOINT_FAILURE',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558aa54339cfd8cefc96aa4e9d5d0b824284',1,'status.h']]], + ['ucs_5ferr_5flast_5flink_5ffailure_177',['UCS_ERR_LAST_LINK_FAILURE',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a9e4aac3283309260e9b8f34bca72209c',1,'status.h']]], + ['ucs_5ferr_5fmessage_5ftruncated_178',['UCS_ERR_MESSAGE_TRUNCATED',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558aef3defd5d754266db882e079fad7c544',1,'status.h']]], + ['ucs_5ferr_5fno_5fdevice_179',['UCS_ERR_NO_DEVICE',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558af42564cbfb39953294f80d782404a3bf',1,'status.h']]], + ['ucs_5ferr_5fno_5felem_180',['UCS_ERR_NO_ELEM',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558ab67faa1abcd824b5bb47a094491524ba',1,'status.h']]], + ['ucs_5ferr_5fno_5fmemory_181',['UCS_ERR_NO_MEMORY',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a9919ffd4eaf870612c4aa63df65ae0a6',1,'status.h']]], + ['ucs_5ferr_5fno_5fmessage_182',['UCS_ERR_NO_MESSAGE',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a1bbd2445646883a1ef758fe2ef75e586',1,'status.h']]], + ['ucs_5ferr_5fno_5fprogress_183',['UCS_ERR_NO_PROGRESS',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558aa3e6111410197f82888c6527258a5149',1,'status.h']]], + ['ucs_5ferr_5fno_5fresource_184',['UCS_ERR_NO_RESOURCE',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a83fc93632e7b3e3251410985aab27edc',1,'status.h']]], + ['ucs_5ferr_5fnot_5fconnected_185',['UCS_ERR_NOT_CONNECTED',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a19ed4a30ff1b25ffdc00adeb8cd211fa',1,'status.h']]], + ['ucs_5ferr_5fnot_5fimplemented_186',['UCS_ERR_NOT_IMPLEMENTED',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a623f715116a8d8986c737bf626e956b4',1,'status.h']]], + ['ucs_5ferr_5fout_5fof_5frange_187',['UCS_ERR_OUT_OF_RANGE',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a7ce30c5ce3f9b06ed9d51a618dc76920',1,'status.h']]], + ['ucs_5ferr_5frejected_188',['UCS_ERR_REJECTED',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a7ebfa416cd741e37ec1a0371feaaa10a',1,'status.h']]], + ['ucs_5ferr_5fshmem_5fsegment_189',['UCS_ERR_SHMEM_SEGMENT',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a5cfb884e5be55df1f4acf19990f4029d',1,'status.h']]], + ['ucs_5ferr_5fsome_5fconnects_5ffailed_190',['UCS_ERR_SOME_CONNECTS_FAILED',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558aa74d2a7cf7aeeaaaff6724bf0d700743',1,'status.h']]], + ['ucs_5ferr_5ftimed_5fout_191',['UCS_ERR_TIMED_OUT',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a28655a75087757c2b6c28adcae5562c7',1,'status.h']]], + ['ucs_5ferr_5funreachable_192',['UCS_ERR_UNREACHABLE',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558ab56647f308360ef22316ed42a700e057',1,'status.h']]], + ['ucs_5ferr_5funsupported_193',['UCS_ERR_UNSUPPORTED',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a252c38290855ceaf849c04b7fa52dc23',1,'status.h']]], + ['ucs_5finprogress_194',['UCS_INPROGRESS',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a77aa02620851779729e4ad6ceb41f84a',1,'status.h']]], + ['ucs_5fmemory_5ftype_5fcuda_195',['UCS_MEMORY_TYPE_CUDA',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga5cfcc524f5dc586101a3e7caff8d982dafc4cb4732ebd0539e364bb6a4466c2fc',1,'memory_type.h']]], + ['ucs_5fmemory_5ftype_5fcuda_5fmanaged_196',['UCS_MEMORY_TYPE_CUDA_MANAGED',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga5cfcc524f5dc586101a3e7caff8d982dab61ccfc729e22de60f4831cc60ef1e16',1,'memory_type.h']]], + ['ucs_5fmemory_5ftype_5fhost_197',['UCS_MEMORY_TYPE_HOST',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga5cfcc524f5dc586101a3e7caff8d982da4bebe1325d9a3be9b5821bec4f78a55f',1,'memory_type.h']]], + ['ucs_5fmemory_5ftype_5flast_198',['UCS_MEMORY_TYPE_LAST',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga5cfcc524f5dc586101a3e7caff8d982da6105aba9983dc25cbf7cbf4d03f655d7',1,'memory_type.h']]], + ['ucs_5fmemory_5ftype_5frdma_199',['UCS_MEMORY_TYPE_RDMA',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga5cfcc524f5dc586101a3e7caff8d982da5c02a356fb482a5d0308d8ad0de0854c',1,'memory_type.h']]], + ['ucs_5fmemory_5ftype_5frocm_200',['UCS_MEMORY_TYPE_ROCM',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga5cfcc524f5dc586101a3e7caff8d982da84a165376983da6abbdf0e9cc7d3d546',1,'memory_type.h']]], + ['ucs_5fmemory_5ftype_5frocm_5fmanaged_201',['UCS_MEMORY_TYPE_ROCM_MANAGED',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga5cfcc524f5dc586101a3e7caff8d982dabc097618d75594ac6df460592561cd77',1,'memory_type.h']]], + ['ucs_5fmemory_5ftype_5funknown_202',['UCS_MEMORY_TYPE_UNKNOWN',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga5cfcc524f5dc586101a3e7caff8d982dab0e5609f442bf33d5447c6e8b5928215',1,'memory_type.h']]], + ['ucs_5fmemory_5ftype_5fze_5fdevice_203',['UCS_MEMORY_TYPE_ZE_DEVICE',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga5cfcc524f5dc586101a3e7caff8d982da37ae904cb9338fee541fb3ed807b1112',1,'memory_type.h']]], + ['ucs_5fmemory_5ftype_5fze_5fhost_204',['UCS_MEMORY_TYPE_ZE_HOST',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga5cfcc524f5dc586101a3e7caff8d982daa5d7e1db9e767486bddd9beb3c797f45',1,'memory_type.h']]], + ['ucs_5fmemory_5ftype_5fze_5fmanaged_205',['UCS_MEMORY_TYPE_ZE_MANAGED',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga5cfcc524f5dc586101a3e7caff8d982da194795ec217f5ef6c3e8faafc4f09e34',1,'memory_type.h']]], + ['ucs_5fok_206',['UCS_OK',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga88ca72d7294772e7d2edb70a2df15558a1a7fbae02ac33fb94f519c7c773f419a',1,'status.h']]], + ['ucs_5fthread_5fmode_5flast_207',['UCS_THREAD_MODE_LAST',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga40e9f363c389e702ad9920f5d52525ceaf7b465a8a13f216fd6c35a828a8c7986',1,'thread_mode.h']]], + ['ucs_5fthread_5fmode_5fmulti_208',['UCS_THREAD_MODE_MULTI',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga40e9f363c389e702ad9920f5d52525cea8f8e252ce479d99c7cdc708321534904',1,'thread_mode.h']]], + ['ucs_5fthread_5fmode_5fserialized_209',['UCS_THREAD_MODE_SERIALIZED',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga40e9f363c389e702ad9920f5d52525cea95d2ddb2144f8cfebfe305be13bd6776',1,'thread_mode.h']]], + ['ucs_5fthread_5fmode_5fsingle_210',['UCS_THREAD_MODE_SINGLE',['../group___u_c_s___r_e_s_o_u_r_c_e.html#gga40e9f363c389e702ad9920f5d52525ceabc2f71e39a3527f7abe6a1c47f0a5a25',1,'thread_mode.h']]], + ['uct_5falloc_5fmethod_5fdefault_211',['UCT_ALLOC_METHOD_DEFAULT',['../group___u_c_t___c_o_n_t_e_x_t.html#gga019362c62f98ff7935b05c512eb0ab09aee732738d1b13520beeefda125e40665',1,'uct.h']]], + ['uct_5falloc_5fmethod_5fheap_212',['UCT_ALLOC_METHOD_HEAP',['../group___u_c_t___c_o_n_t_e_x_t.html#gga019362c62f98ff7935b05c512eb0ab09ab026ce58725388c3dca9d1a5d152250c',1,'uct.h']]], + ['uct_5falloc_5fmethod_5fhuge_213',['UCT_ALLOC_METHOD_HUGE',['../group___u_c_t___c_o_n_t_e_x_t.html#gga019362c62f98ff7935b05c512eb0ab09ad542185f2c8f7a7ff89f3a1b0581439d',1,'uct.h']]], + ['uct_5falloc_5fmethod_5flast_214',['UCT_ALLOC_METHOD_LAST',['../group___u_c_t___c_o_n_t_e_x_t.html#gga019362c62f98ff7935b05c512eb0ab09a3b9f6f050e19d2d85425d2c87d4bdbb8',1,'uct.h']]], + ['uct_5falloc_5fmethod_5fmd_215',['UCT_ALLOC_METHOD_MD',['../group___u_c_t___c_o_n_t_e_x_t.html#gga019362c62f98ff7935b05c512eb0ab09a2036e15fb7da79b6cb7af6e8bda700c7',1,'uct.h']]], + ['uct_5falloc_5fmethod_5fmmap_216',['UCT_ALLOC_METHOD_MMAP',['../group___u_c_t___c_o_n_t_e_x_t.html#gga019362c62f98ff7935b05c512eb0ab09a496187eba67f49a27e0017a4290505cc',1,'uct.h']]], + ['uct_5falloc_5fmethod_5fthp_217',['UCT_ALLOC_METHOD_THP',['../group___u_c_t___c_o_n_t_e_x_t.html#gga019362c62f98ff7935b05c512eb0ab09ae4e651614b0a020b351b94f4a589fd07',1,'uct.h']]], + ['uct_5fam_5ftrace_5ftype_5flast_218',['UCT_AM_TRACE_TYPE_LAST',['../group___u_c_t___a_m.html#ggacbe4c7fdcaf25cd7bd004a3c2d54f067a74589340125a9634d4f1cba73da0b0a1',1,'uct_def.h']]], + ['uct_5fam_5ftrace_5ftype_5frecv_219',['UCT_AM_TRACE_TYPE_RECV',['../group___u_c_t___a_m.html#ggacbe4c7fdcaf25cd7bd004a3c2d54f067a02b0b980c43b7d66823bb0169d03f98f',1,'uct_def.h']]], + ['uct_5fam_5ftrace_5ftype_5frecv_5fdrop_220',['UCT_AM_TRACE_TYPE_RECV_DROP',['../group___u_c_t___a_m.html#ggacbe4c7fdcaf25cd7bd004a3c2d54f067aa2125f63177d657998f381a60e60e8fd',1,'uct_def.h']]], + ['uct_5fam_5ftrace_5ftype_5fsend_221',['UCT_AM_TRACE_TYPE_SEND',['../group___u_c_t___a_m.html#ggacbe4c7fdcaf25cd7bd004a3c2d54f067aef58a6db54a952e5e34edd91325a83ed',1,'uct_def.h']]], + ['uct_5fam_5ftrace_5ftype_5fsend_5fdrop_222',['UCT_AM_TRACE_TYPE_SEND_DROP',['../group___u_c_t___a_m.html#ggacbe4c7fdcaf25cd7bd004a3c2d54f067a70335ae779aaa99685d6842f9e85a6db',1,'uct_def.h']]], + ['uct_5fcb_5fflag_5fasync_223',['UCT_CB_FLAG_ASYNC',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ggaca1e07b69024fec26746e3a19b4de9d0a2de3b7622afcabd645878e0540f062aa',1,'uct.h']]], + ['uct_5fcb_5fflag_5freserved_224',['UCT_CB_FLAG_RESERVED',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ggaca1e07b69024fec26746e3a19b4de9d0a93c65c155511b258449363ea8cad8f7f',1,'uct.h']]], + ['uct_5fcb_5fparam_5fflag_5fdesc_225',['UCT_CB_PARAM_FLAG_DESC',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga36bfc11c722b01a11e1949e8329262c9a741f6a62c34d5484fa6999b1e097e42a',1,'uct_def.h']]], + ['uct_5fcb_5fparam_5fflag_5ffirst_226',['UCT_CB_PARAM_FLAG_FIRST',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga36bfc11c722b01a11e1949e8329262c9aef5b11372c919dfcdc55602d48e67135',1,'uct_def.h']]], + ['uct_5fcb_5fparam_5fflag_5fmore_227',['UCT_CB_PARAM_FLAG_MORE',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga36bfc11c722b01a11e1949e8329262c9a2d9bb153789aeae6d1ecf0173cf483e9',1,'uct_def.h']]], + ['uct_5fcm_5fattr_5ffield_5fmax_5fconn_5fpriv_228',['UCT_CM_ATTR_FIELD_MAX_CONN_PRIV',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga2b308be867e1e13dcb7d941b07835431a2521b69fbc5dd8dff615878729572978',1,'uct.h']]], + ['uct_5fcm_5fep_5fclient_5fconnect_5fargs_5ffield_5fremote_5fdata_229',['UCT_CM_EP_CLIENT_CONNECT_ARGS_FIELD_REMOTE_DATA',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga6746759cc1850c6e260fca7e3de008ada9657c720a60df0b6b89bd9b019ac01cc',1,'uct_def.h']]], + ['uct_5fcm_5fep_5fclient_5fconnect_5fargs_5ffield_5fstatus_230',['UCT_CM_EP_CLIENT_CONNECT_ARGS_FIELD_STATUS',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga6746759cc1850c6e260fca7e3de008ada21ad19d697d3ff1b5a3acb0fcb4a7cfc',1,'uct_def.h']]], + ['uct_5fcm_5fep_5fpriv_5fdata_5fpack_5fargs_5ffield_5fdevice_5fname_231',['UCT_CM_EP_PRIV_DATA_PACK_ARGS_FIELD_DEVICE_NAME',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga405dee8e814ebc33f14c5f44e80d008ca39e1834470a48aaaa5b9e6fbef11b5f1',1,'uct_def.h']]], + ['uct_5fcm_5fep_5fresolve_5fargs_5ffield_5fdev_5fname_232',['UCT_CM_EP_RESOLVE_ARGS_FIELD_DEV_NAME',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga6c342b6c43e178b73f567bd0fb253e62ab617fac24c5437d6acd095c84eb0a6a1',1,'uct_def.h']]], + ['uct_5fcm_5fep_5fresolve_5fargs_5ffield_5fstatus_233',['UCT_CM_EP_RESOLVE_ARGS_FIELD_STATUS',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga6c342b6c43e178b73f567bd0fb253e62ad7cc5818b0812933a99f25378be77cb5',1,'uct_def.h']]], + ['uct_5fcm_5fep_5fserver_5fconn_5fnotify_5fargs_5ffield_5fstatus_234',['UCT_CM_EP_SERVER_CONN_NOTIFY_ARGS_FIELD_STATUS',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ggaf1cffc53a9b63fb98a77503917f5fd79a84648af7a2470a6869bd8d05e894b0a5',1,'uct_def.h']]], + ['uct_5fcm_5flistener_5fconn_5frequest_5fargs_5ffield_5fclient_5faddr_235',['UCT_CM_LISTENER_CONN_REQUEST_ARGS_FIELD_CLIENT_ADDR',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga9e97a59a0593244e730734d592b642dfae396fa228bfaf18e554eaa2e91f19333',1,'uct_def.h']]], + ['uct_5fcm_5flistener_5fconn_5frequest_5fargs_5ffield_5fconn_5frequest_236',['UCT_CM_LISTENER_CONN_REQUEST_ARGS_FIELD_CONN_REQUEST',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga9e97a59a0593244e730734d592b642dfadf438afd4aa996a342ddb1e69894882b',1,'uct_def.h']]], + ['uct_5fcm_5flistener_5fconn_5frequest_5fargs_5ffield_5fdev_5fname_237',['UCT_CM_LISTENER_CONN_REQUEST_ARGS_FIELD_DEV_NAME',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga9e97a59a0593244e730734d592b642dfab3c57e4db473538c60b5feaf094833d9',1,'uct_def.h']]], + ['uct_5fcm_5flistener_5fconn_5frequest_5fargs_5ffield_5fremote_5fdata_238',['UCT_CM_LISTENER_CONN_REQUEST_ARGS_FIELD_REMOTE_DATA',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga9e97a59a0593244e730734d592b642dfab87a184e4a1684ba337aaff9547c2753',1,'uct_def.h']]], + ['uct_5fcm_5fremote_5fdata_5ffield_5fconn_5fpriv_5fdata_239',['UCT_CM_REMOTE_DATA_FIELD_CONN_PRIV_DATA',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga3e023485a86ad4092497ffe58cddef37a86ed1d1f02236dd9467176b2130fba32',1,'uct_def.h']]], + ['uct_5fcm_5fremote_5fdata_5ffield_5fconn_5fpriv_5fdata_5flength_240',['UCT_CM_REMOTE_DATA_FIELD_CONN_PRIV_DATA_LENGTH',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga3e023485a86ad4092497ffe58cddef37a550619037bb2bad0ad2a46dfe68f6cc3',1,'uct_def.h']]], + ['uct_5fcm_5fremote_5fdata_5ffield_5fdev_5faddr_241',['UCT_CM_REMOTE_DATA_FIELD_DEV_ADDR',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga3e023485a86ad4092497ffe58cddef37af5ba4b8423006af3e3b0342b9cea533b',1,'uct_def.h']]], + ['uct_5fcm_5fremote_5fdata_5ffield_5fdev_5faddr_5flength_242',['UCT_CM_REMOTE_DATA_FIELD_DEV_ADDR_LENGTH',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gga3e023485a86ad4092497ffe58cddef37a22ac6bf59b6b07381c25ba808254092b',1,'uct_def.h']]], + ['uct_5fcomponent_5fattr_5ffield_5fflags_243',['UCT_COMPONENT_ATTR_FIELD_FLAGS',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga246ded5e20aa09c590673c771c74b68baf29cd3b384fbddeccc937d42abbd6b41',1,'uct.h']]], + ['uct_5fcomponent_5fattr_5ffield_5fmd_5fresource_5fcount_244',['UCT_COMPONENT_ATTR_FIELD_MD_RESOURCE_COUNT',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga246ded5e20aa09c590673c771c74b68ba25d44baf92c5c7673dbbf44de35fdc84',1,'uct.h']]], + ['uct_5fcomponent_5fattr_5ffield_5fmd_5fresources_245',['UCT_COMPONENT_ATTR_FIELD_MD_RESOURCES',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga246ded5e20aa09c590673c771c74b68ba4ffc9f65e0b3d7cb07db745e7e61ba47',1,'uct.h']]], + ['uct_5fcomponent_5fattr_5ffield_5fname_246',['UCT_COMPONENT_ATTR_FIELD_NAME',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga246ded5e20aa09c590673c771c74b68ba45f30f9f196f5f75309882d48c435a26',1,'uct.h']]], + ['uct_5fcomponent_5fflag_5fcm_247',['UCT_COMPONENT_FLAG_CM',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ggadc29c2ff13d900c2f185ee95427fb06cac3f00c23358624b53732e413433f1d8d',1,'uct.h']]], + ['uct_5fcomponent_5fflag_5frkey_5fptr_248',['UCT_COMPONENT_FLAG_RKEY_PTR',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ggadc29c2ff13d900c2f185ee95427fb06cab20fb035dcd4f2aa6eee77dd501880c3',1,'uct.h']]], + ['uct_5fdevice_5ftype_5facc_249',['UCT_DEVICE_TYPE_ACC',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ggae0c25b8c160e49fbb9cc122c9807f20da4830aee82331272d4acfc027d733613f',1,'uct.h']]], + ['uct_5fdevice_5ftype_5flast_250',['UCT_DEVICE_TYPE_LAST',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ggae0c25b8c160e49fbb9cc122c9807f20dacd8f593dedbce6ce4d40115b593451e1',1,'uct.h']]], + ['uct_5fdevice_5ftype_5fnet_251',['UCT_DEVICE_TYPE_NET',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ggae0c25b8c160e49fbb9cc122c9807f20da5996d835fc60fcdca9c03539b99a0a2d',1,'uct.h']]], + ['uct_5fdevice_5ftype_5fself_252',['UCT_DEVICE_TYPE_SELF',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ggae0c25b8c160e49fbb9cc122c9807f20da86a97f09cfba66ff7170f77faaa2d89b',1,'uct.h']]], + ['uct_5fdevice_5ftype_5fshm_253',['UCT_DEVICE_TYPE_SHM',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ggae0c25b8c160e49fbb9cc122c9807f20da3d586e5bccd77cfe8bb3c87ce3fcce06',1,'uct.h']]], + ['uct_5fep_5fconnect_5fparam_5ffield_5fprivate_5fdata_254',['UCT_EP_CONNECT_PARAM_FIELD_PRIVATE_DATA',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ggaa821e2f4247cd5e72632e5ea7008e6e1a51f30ec2f30a63bdea6660a0ad61305e',1,'uct.h']]], + ['uct_5fep_5fconnect_5fparam_5ffield_5fprivate_5fdata_5flength_255',['UCT_EP_CONNECT_PARAM_FIELD_PRIVATE_DATA_LENGTH',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ggaa821e2f4247cd5e72632e5ea7008e6e1accc8d70e4ee5ee60283e1b53456963e1',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fcm_256',['UCT_EP_PARAM_FIELD_CM',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658bab089df3f421f6fc0ccdda8b36ecd4e42',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fcm_5fresolve_5fcb_257',['UCT_EP_PARAM_FIELD_CM_RESOLVE_CB',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658bab8af49c5286ab9f6b6f6f62743960f8f',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fconn_5frequest_258',['UCT_EP_PARAM_FIELD_CONN_REQUEST',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658ba313aa3f8e5e089fc57a0c53fa48ee72d',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fdev_5faddr_259',['UCT_EP_PARAM_FIELD_DEV_ADDR',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658ba14fb24fafcf9fdd0418a5dd348ab828c',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fiface_260',['UCT_EP_PARAM_FIELD_IFACE',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658ba082065ffa8866740ca6418a9c38b503d',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fiface_5faddr_261',['UCT_EP_PARAM_FIELD_IFACE_ADDR',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658baef938215a002d0b59812c737db0a965d',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5flocal_5fsockaddr_262',['UCT_EP_PARAM_FIELD_LOCAL_SOCKADDR',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658bafdb48e56bfcdd0b9439329568885f8df',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fpath_5findex_263',['UCT_EP_PARAM_FIELD_PATH_INDEX',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658baf1b7df888b75b42a627b327003bffdb6',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fpriv_5fdata_264',['UCT_EP_PARAM_FIELD_PRIV_DATA',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658ba43b2ccfee5e1811447b1902e6d9962c4',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fpriv_5fdata_5flength_265',['UCT_EP_PARAM_FIELD_PRIV_DATA_LENGTH',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658bac5bd575d5dddf9dd99e90251bb56faea',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fsockaddr_266',['UCT_EP_PARAM_FIELD_SOCKADDR',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658bae4c4f4f2110b170ed4920529821387e6',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fsockaddr_5fcb_5fflags_267',['UCT_EP_PARAM_FIELD_SOCKADDR_CB_FLAGS',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658ba6489f1bcbdd0de8e2aee80661aa37ec1',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fsockaddr_5fconnect_5fcb_5fclient_268',['UCT_EP_PARAM_FIELD_SOCKADDR_CONNECT_CB_CLIENT',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658bad59d4bae36d22a6d5da01512d9861256',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fsockaddr_5fdisconnect_5fcb_269',['UCT_EP_PARAM_FIELD_SOCKADDR_DISCONNECT_CB',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658ba148d1e23de6d640612457216ad81da29',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fsockaddr_5fnotify_5fcb_5fserver_270',['UCT_EP_PARAM_FIELD_SOCKADDR_NOTIFY_CB_SERVER',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658bad86327449165ad945e6ae8a7c36c1c8c',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fsockaddr_5fpack_5fcb_271',['UCT_EP_PARAM_FIELD_SOCKADDR_PACK_CB',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658ba61e749dca15775eb4cbc492c020027ca',1,'uct.h']]], + ['uct_5fep_5fparam_5ffield_5fuser_5fdata_272',['UCT_EP_PARAM_FIELD_USER_DATA',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8e76f363d8805669fb5371b404c5658babbff9b7d6a5114860d6b40f3b0c445dc',1,'uct.h']]], + ['uct_5fevent_5frecv_273',['UCT_EVENT_RECV',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ggaef09139f303b0a3d28a1cea524dc3bd2a1381e135252b79646cdb3a6f3d15431e',1,'uct.h']]], + ['uct_5fevent_5frecv_5fsig_274',['UCT_EVENT_RECV_SIG',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ggaef09139f303b0a3d28a1cea524dc3bd2ab5b97562ce555a0979a56bd1d9810eaf',1,'uct.h']]], + ['uct_5fevent_5fsend_5fcomp_275',['UCT_EVENT_SEND_COMP',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ggaef09139f303b0a3d28a1cea524dc3bd2aba611824db8eb31b9eb07111f987e011',1,'uct.h']]], + ['uct_5fflush_5fflag_5fcancel_276',['UCT_FLUSH_FLAG_CANCEL',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga84ba23c28fda1c96f5018bbafb7ffed6a556a8cb417f5b6e21b0be93297eb2f45',1,'uct.h']]], + ['uct_5fflush_5fflag_5flocal_277',['UCT_FLUSH_FLAG_LOCAL',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga84ba23c28fda1c96f5018bbafb7ffed6ad0b221329684853b22a60d88e0dd8bac',1,'uct.h']]], + ['uct_5fflush_5fflag_5fremote_278',['UCT_FLUSH_FLAG_REMOTE',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga84ba23c28fda1c96f5018bbafb7ffed6a0c1b82dd17faf5ece84a69702168afe7',1,'uct.h']]], + ['uct_5fiface_5ffeature_5fam_279',['UCT_IFACE_FEATURE_AM',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga078dd84cff9d6b1cda5692fbf6b1e7c7a4bce30860f36cee1a7b74f6cd2c061ad',1,'uct.h']]], + ['uct_5fiface_5ffeature_5famo32_280',['UCT_IFACE_FEATURE_AMO32',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga078dd84cff9d6b1cda5692fbf6b1e7c7a06a813eb45714bc70e154691d82e5e81',1,'uct.h']]], + ['uct_5fiface_5ffeature_5famo64_281',['UCT_IFACE_FEATURE_AMO64',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga078dd84cff9d6b1cda5692fbf6b1e7c7af6bebc50b5e4169f38cddaacc7ba7a7a',1,'uct.h']]], + ['uct_5fiface_5ffeature_5fflush_5fremote_282',['UCT_IFACE_FEATURE_FLUSH_REMOTE',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga078dd84cff9d6b1cda5692fbf6b1e7c7ac161e1b9f69409f4e2238af1c6d4d155',1,'uct.h']]], + ['uct_5fiface_5ffeature_5fget_283',['UCT_IFACE_FEATURE_GET',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga078dd84cff9d6b1cda5692fbf6b1e7c7ae80cd4ab8043e2df41d2d81854686415',1,'uct.h']]], + ['uct_5fiface_5ffeature_5flast_284',['UCT_IFACE_FEATURE_LAST',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga078dd84cff9d6b1cda5692fbf6b1e7c7ab317c0279d872516f011df628d67dd9f',1,'uct.h']]], + ['uct_5fiface_5ffeature_5fput_285',['UCT_IFACE_FEATURE_PUT',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga078dd84cff9d6b1cda5692fbf6b1e7c7a59d0a64607692e3ff39fa61a899c7633',1,'uct.h']]], + ['uct_5fiface_5ffeature_5ftag_286',['UCT_IFACE_FEATURE_TAG',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga078dd84cff9d6b1cda5692fbf6b1e7c7a08d34bf9a962d1b27b0c92865c773854',1,'uct.h']]], + ['uct_5fiface_5fopen_5fmode_5fdevice_287',['UCT_IFACE_OPEN_MODE_DEVICE',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8bc9c95ee7fbd76321940e2853d08bb5a504bef9a8574445a0dfdcf517160fef0',1,'uct.h']]], + ['uct_5fiface_5fopen_5fmode_5fsockaddr_5fclient_288',['UCT_IFACE_OPEN_MODE_SOCKADDR_CLIENT',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8bc9c95ee7fbd76321940e2853d08bb5ab596bc437bc4e84500039aafcf5adfeb',1,'uct.h']]], + ['uct_5fiface_5fopen_5fmode_5fsockaddr_5fserver_289',['UCT_IFACE_OPEN_MODE_SOCKADDR_SERVER',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga8bc9c95ee7fbd76321940e2853d08bb5a9b2655b644fae2cf20d5b673854c9ad0',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fam_5falign_5foffset_290',['UCT_IFACE_PARAM_FIELD_AM_ALIGN_OFFSET',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a22a9554ccdc8209f81d7d5b5a8e39780',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fam_5falignment_291',['UCT_IFACE_PARAM_FIELD_AM_ALIGNMENT',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a8d676d1b40253cacf1abb4302d448d3a',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fasync_5fevent_5farg_292',['UCT_IFACE_PARAM_FIELD_ASYNC_EVENT_ARG',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a8d6361b77aae50f66b88b13826375aed',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fasync_5fevent_5fcb_293',['UCT_IFACE_PARAM_FIELD_ASYNC_EVENT_CB',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a83e8eb07f6d7e357001a0ac826857ebd',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fcpu_5fmask_294',['UCT_IFACE_PARAM_FIELD_CPU_MASK',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a80cd3b1a8f9de031df8aa12e7a0eb08b',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fdevice_295',['UCT_IFACE_PARAM_FIELD_DEVICE',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a0f56ae54f7fcd7a002588a75e207f8a2',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5ferr_5fhandler_296',['UCT_IFACE_PARAM_FIELD_ERR_HANDLER',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a57771259693749559910cbf8256ef7a1',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5ferr_5fhandler_5farg_297',['UCT_IFACE_PARAM_FIELD_ERR_HANDLER_ARG',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596ab0a406683b45f265eaf9edc794e72e7e',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5ferr_5fhandler_5fflags_298',['UCT_IFACE_PARAM_FIELD_ERR_HANDLER_FLAGS',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a2f97be5b7ef0e542fc39fe778c85097e',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5ffeatures_299',['UCT_IFACE_PARAM_FIELD_FEATURES',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596ad5efe451d0f04d6929f39b66cdc8d889',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fhw_5ftm_5feager_5farg_300',['UCT_IFACE_PARAM_FIELD_HW_TM_EAGER_ARG',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596ad4afd13a4a6e36adb6e5576de666ab64',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fhw_5ftm_5feager_5fcb_301',['UCT_IFACE_PARAM_FIELD_HW_TM_EAGER_CB',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a9dcb103f9b93d5c37d5b1ff401fda324',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fhw_5ftm_5frndv_5farg_302',['UCT_IFACE_PARAM_FIELD_HW_TM_RNDV_ARG',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a5b7da96e1cd28639f489bcf08194ecd7',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fhw_5ftm_5frndv_5fcb_303',['UCT_IFACE_PARAM_FIELD_HW_TM_RNDV_CB',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a2c2b16ef1c537d1596ceb7b72fbf3145',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fkeepalive_5finterval_304',['UCT_IFACE_PARAM_FIELD_KEEPALIVE_INTERVAL',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a3b05690f0c5ae7cf346a1e7a00186953',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fopen_5fmode_305',['UCT_IFACE_PARAM_FIELD_OPEN_MODE',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a436751cf65204ec8d37e649b0913eff7',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5frx_5fheadroom_306',['UCT_IFACE_PARAM_FIELD_RX_HEADROOM',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596aabb0425ec3c58345ba973683b72dc255',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fsockaddr_307',['UCT_IFACE_PARAM_FIELD_SOCKADDR',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596af01913e91929ae3c52c465e5df97bec3',1,'uct.h']]], + ['uct_5fiface_5fparam_5ffield_5fstats_5froot_308',['UCT_IFACE_PARAM_FIELD_STATS_ROOT',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga896baeefc7933d925202c32b0d09f596a7af1c01a0aa6c8d7ddc167cd516f3272',1,'uct.h']]], + ['uct_5flistener_5fattr_5ffield_5fsockaddr_309',['UCT_LISTENER_ATTR_FIELD_SOCKADDR',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ggad253d9c2e4116f9a137a2d2450afbe66af566cba098163f464bdad7c392232c3f',1,'uct.h']]], + ['uct_5flistener_5fparam_5ffield_5fbacklog_310',['UCT_LISTENER_PARAM_FIELD_BACKLOG',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ggaf716bd7cdc636377ef78c258886693c7aa2a3bbfd550dc87ed8bba5cf960068fa',1,'uct.h']]], + ['uct_5flistener_5fparam_5ffield_5fconn_5frequest_5fcb_311',['UCT_LISTENER_PARAM_FIELD_CONN_REQUEST_CB',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ggaf716bd7cdc636377ef78c258886693c7a8a9ba7427c813614e65f29c38225ab44',1,'uct.h']]], + ['uct_5flistener_5fparam_5ffield_5fuser_5fdata_312',['UCT_LISTENER_PARAM_FIELD_USER_DATA',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ggaf716bd7cdc636377ef78c258886693c7af6172e01a7919f4afd27fa5e0aa0b794',1,'uct.h']]], + ['uct_5fmadv_5fnormal_313',['UCT_MADV_NORMAL',['../group___u_c_t___m_d.html#gga72172b231f5e9df777cb130b9f908397a44cc1f4e9d750610f872680ad83a5693',1,'uct.h']]], + ['uct_5fmadv_5fwillneed_314',['UCT_MADV_WILLNEED',['../group___u_c_t___m_d.html#gga72172b231f5e9df777cb130b9f908397af2f40857cea090977db8a5994b334594',1,'uct.h']]], + ['uct_5fmd_5fflag_5fadvise_315',['UCT_MD_FLAG_ADVISE',['../group___u_c_t___m_d.html#gga61dadd085c1777f559549e05962b2c9ea489e86d8c4f7630c5b15ba37c11e8598',1,'uct.h']]], + ['uct_5fmd_5fflag_5falloc_316',['UCT_MD_FLAG_ALLOC',['../group___u_c_t___m_d.html#gga61dadd085c1777f559549e05962b2c9eace1638df732eb289b9dd6255101c6532',1,'uct.h']]], + ['uct_5fmd_5fflag_5fexported_5fmkey_317',['UCT_MD_FLAG_EXPORTED_MKEY',['../group___u_c_t___m_d.html#gga61dadd085c1777f559549e05962b2c9ea8aad09237d801dbd3a7636ebb18c40e4',1,'uct.h']]], + ['uct_5fmd_5fflag_5ffixed_318',['UCT_MD_FLAG_FIXED',['../group___u_c_t___m_d.html#gga61dadd085c1777f559549e05962b2c9eae948128d19128010bff52f39b2ea8528',1,'uct.h']]], + ['uct_5fmd_5fflag_5finvalidate_319',['UCT_MD_FLAG_INVALIDATE',['../group___u_c_t___m_d.html#gga61dadd085c1777f559549e05962b2c9ea3b11ef8fb3fcf99c71ce1f91b03ecd2d',1,'uct.h']]], + ['uct_5fmd_5fflag_5flast_320',['UCT_MD_FLAG_LAST',['../group___u_c_t___m_d.html#gga61dadd085c1777f559549e05962b2c9eac8f7c4abf5df8c2bffb5ad533c7102b3',1,'uct.h']]], + ['uct_5fmd_5fflag_5fneed_5fmemh_321',['UCT_MD_FLAG_NEED_MEMH',['../group___u_c_t___m_d.html#gga61dadd085c1777f559549e05962b2c9ea8badc53da14cdd45fa70178483091e55',1,'uct.h']]], + ['uct_5fmd_5fflag_5fneed_5frkey_322',['UCT_MD_FLAG_NEED_RKEY',['../group___u_c_t___m_d.html#gga61dadd085c1777f559549e05962b2c9eafc6830135c641eecf0200f9990257e10',1,'uct.h']]], + ['uct_5fmd_5fflag_5freg_323',['UCT_MD_FLAG_REG',['../group___u_c_t___m_d.html#gga61dadd085c1777f559549e05962b2c9eac2a33833ce3c103c3de54332c512eba7',1,'uct.h']]], + ['uct_5fmd_5fflag_5freg_5fdmabuf_324',['UCT_MD_FLAG_REG_DMABUF',['../group___u_c_t___m_d.html#gga61dadd085c1777f559549e05962b2c9ea88f4343ee73e7b4da46e98d07023b9f5',1,'uct.h']]], + ['uct_5fmd_5fflag_5frkey_5fptr_325',['UCT_MD_FLAG_RKEY_PTR',['../group___u_c_t___m_d.html#gga61dadd085c1777f559549e05962b2c9ea8e6750832a6a17fc5aff65c767d0e5b5',1,'uct.h']]], + ['uct_5fmd_5fflag_5fsockaddr_326',['UCT_MD_FLAG_SOCKADDR',['../group___u_c_t___m_d.html#gga61dadd085c1777f559549e05962b2c9ea1ef79afc094919112724f8eb82c2484b',1,'uct.h']]], + ['uct_5fmd_5fmem_5faccess_5fall_327',['UCT_MD_MEM_ACCESS_ALL',['../group___u_c_t___m_d.html#gga3b0345adc84e4b3224366502aca5e11aa8de9fc3e5e9a93abee846dbce6f51471',1,'uct.h']]], + ['uct_5fmd_5fmem_5faccess_5flocal_5fread_328',['UCT_MD_MEM_ACCESS_LOCAL_READ',['../group___u_c_t___m_d.html#gga3b0345adc84e4b3224366502aca5e11aaec71b48ac78529034432e702ae2497af',1,'uct.h']]], + ['uct_5fmd_5fmem_5faccess_5flocal_5fwrite_329',['UCT_MD_MEM_ACCESS_LOCAL_WRITE',['../group___u_c_t___m_d.html#gga3b0345adc84e4b3224366502aca5e11aa3da522cc5178d7330279de64c6d8a42d',1,'uct.h']]], + ['uct_5fmd_5fmem_5faccess_5fremote_5fatomic_330',['UCT_MD_MEM_ACCESS_REMOTE_ATOMIC',['../group___u_c_t___m_d.html#gga3b0345adc84e4b3224366502aca5e11aa4478fefd476fe66f7a1721161e3773e1',1,'uct.h']]], + ['uct_5fmd_5fmem_5faccess_5fremote_5fget_331',['UCT_MD_MEM_ACCESS_REMOTE_GET',['../group___u_c_t___m_d.html#gga3b0345adc84e4b3224366502aca5e11aa4a699e49e99a57afab4fb7b4825e8a5e',1,'uct.h']]], + ['uct_5fmd_5fmem_5faccess_5fremote_5fput_332',['UCT_MD_MEM_ACCESS_REMOTE_PUT',['../group___u_c_t___m_d.html#gga3b0345adc84e4b3224366502aca5e11aa107516b36500372eac7e05bdb71cf4a1',1,'uct.h']]], + ['uct_5fmd_5fmem_5faccess_5frma_333',['UCT_MD_MEM_ACCESS_RMA',['../group___u_c_t___m_d.html#gga3b0345adc84e4b3224366502aca5e11aa53c0d5770a5c69086d0aaa58e7398fa8',1,'uct.h']]], + ['uct_5fmd_5fmem_5fattr_5ffield_5falloc_5flength_334',['UCT_MD_MEM_ATTR_FIELD_ALLOC_LENGTH',['../group___u_c_t___m_d.html#ggac4f1c9728c529e4f35eaf03bc14c6977a7f5f99bb05148218a1855f3f8344aabb',1,'uct.h']]], + ['uct_5fmd_5fmem_5fattr_5ffield_5fbase_5faddress_335',['UCT_MD_MEM_ATTR_FIELD_BASE_ADDRESS',['../group___u_c_t___m_d.html#ggac4f1c9728c529e4f35eaf03bc14c6977a132548201e6dba2fca6b03385eed2356',1,'uct.h']]], + ['uct_5fmd_5fmem_5fattr_5ffield_5fdmabuf_5ffd_336',['UCT_MD_MEM_ATTR_FIELD_DMABUF_FD',['../group___u_c_t___m_d.html#ggac4f1c9728c529e4f35eaf03bc14c6977a1178afc62486924f953e18fbf1613754',1,'uct.h']]], + ['uct_5fmd_5fmem_5fattr_5ffield_5fdmabuf_5foffset_337',['UCT_MD_MEM_ATTR_FIELD_DMABUF_OFFSET',['../group___u_c_t___m_d.html#ggac4f1c9728c529e4f35eaf03bc14c6977a7511ff87de4e1dcd4140acc9a6131df4',1,'uct.h']]], + ['uct_5fmd_5fmem_5fattr_5ffield_5fmem_5ftype_338',['UCT_MD_MEM_ATTR_FIELD_MEM_TYPE',['../group___u_c_t___m_d.html#ggac4f1c9728c529e4f35eaf03bc14c6977a873fb4c4b884a7598873badb63a8caf9',1,'uct.h']]], + ['uct_5fmd_5fmem_5fattr_5ffield_5fsys_5fdev_339',['UCT_MD_MEM_ATTR_FIELD_SYS_DEV',['../group___u_c_t___m_d.html#ggac4f1c9728c529e4f35eaf03bc14c6977a1b869b2080c1ab765fa0b67a86dabb24',1,'uct.h']]], + ['uct_5fmd_5fmem_5fflag_5ffixed_340',['UCT_MD_MEM_FLAG_FIXED',['../group___u_c_t___m_d.html#gga3b0345adc84e4b3224366502aca5e11aac91502fd80954a19287b56c82d8c15e8',1,'uct.h']]], + ['uct_5fmd_5fmem_5fflag_5fhide_5ferrors_341',['UCT_MD_MEM_FLAG_HIDE_ERRORS',['../group___u_c_t___m_d.html#gga3b0345adc84e4b3224366502aca5e11aac9affab2e3fc8ce0237b8b7800731c49',1,'uct.h']]], + ['uct_5fmd_5fmem_5fflag_5flock_342',['UCT_MD_MEM_FLAG_LOCK',['../group___u_c_t___m_d.html#gga3b0345adc84e4b3224366502aca5e11aa177416f1bc52ecf58571f2320ea860f4',1,'uct.h']]], + ['uct_5fmd_5fmem_5fflag_5fnonblock_343',['UCT_MD_MEM_FLAG_NONBLOCK',['../group___u_c_t___m_d.html#gga3b0345adc84e4b3224366502aca5e11aa156afde3449517fd4d518148df8e3e24',1,'uct.h']]], + ['uct_5fmd_5fmem_5fsymmetric_5frkey_344',['UCT_MD_MEM_SYMMETRIC_RKEY',['../group___u_c_t___m_d.html#gga3b0345adc84e4b3224366502aca5e11aa2c6e61ac2086a94e8880c8ed329c09d9',1,'uct.h']]], + ['uct_5fmem_5falloc_5fparam_5ffield_5faddress_345',['UCT_MEM_ALLOC_PARAM_FIELD_ADDRESS',['../group___u_c_t___m_d.html#gga3421ca55bc67f5752ca6164f678a7923abcfd9def1c725531f11cbbcde9fedd6f',1,'uct.h']]], + ['uct_5fmem_5falloc_5fparam_5ffield_5fflags_346',['UCT_MEM_ALLOC_PARAM_FIELD_FLAGS',['../group___u_c_t___m_d.html#gga3421ca55bc67f5752ca6164f678a7923ae179d3ffed3e53b0e2cda2d6a62280d3',1,'uct.h']]], + ['uct_5fmem_5falloc_5fparam_5ffield_5fmds_347',['UCT_MEM_ALLOC_PARAM_FIELD_MDS',['../group___u_c_t___m_d.html#gga3421ca55bc67f5752ca6164f678a7923a122274e877d32afcfafd10cde3c0b8e7',1,'uct.h']]], + ['uct_5fmem_5falloc_5fparam_5ffield_5fmem_5ftype_348',['UCT_MEM_ALLOC_PARAM_FIELD_MEM_TYPE',['../group___u_c_t___m_d.html#gga3421ca55bc67f5752ca6164f678a7923a0f09a88dc239026aefa08e4597e0d9e6',1,'uct.h']]], + ['uct_5fmem_5falloc_5fparam_5ffield_5fname_349',['UCT_MEM_ALLOC_PARAM_FIELD_NAME',['../group___u_c_t___m_d.html#gga3421ca55bc67f5752ca6164f678a7923a97de3a2b66f4cd940a271df1b9632f83',1,'uct.h']]], + ['uct_5fprogress_5frecv_350',['UCT_PROGRESS_RECV',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga71bfe6e07ebbcc036f883b31db1e9e51a13a7d7c06d204f61b5de0cdf3ede1957',1,'uct.h']]], + ['uct_5fprogress_5fsend_351',['UCT_PROGRESS_SEND',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga71bfe6e07ebbcc036f883b31db1e9e51a5a00ade1aed7157a0662d8a4ae9cc2f5',1,'uct.h']]], + ['uct_5fprogress_5fthread_5fsafe_352',['UCT_PROGRESS_THREAD_SAFE',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga71bfe6e07ebbcc036f883b31db1e9e51a8cba06626715c4be748d16a7baf90b77',1,'uct.h']]], + ['uct_5fsend_5fflag_5fpeer_5fcheck_353',['UCT_SEND_FLAG_PEER_CHECK',['../group___u_c_t___a_m.html#gga139e5d124e16d412200bf64bdbccab1ca222442e08a093d34d6266e810346f4d8',1,'uct.h']]], + ['uct_5fsend_5fflag_5fsignaled_354',['UCT_SEND_FLAG_SIGNALED',['../group___u_c_t___a_m.html#gga139e5d124e16d412200bf64bdbccab1ca5af3a2c43c1e989a4f21f97188f38b06',1,'uct.h']]], + ['uct_5fsockaddr_5facc_5flocal_355',['UCT_SOCKADDR_ACC_LOCAL',['../group___u_c_t___m_d.html#ggacb560e35a1b169ca88792200817e219ea0f21e1dc1e98d3ee0291cc345bfe1fde',1,'uct.h']]], + ['uct_5fsockaddr_5facc_5fremote_356',['UCT_SOCKADDR_ACC_REMOTE',['../group___u_c_t___m_d.html#ggacb560e35a1b169ca88792200817e219ea4e0f66a27582dfec8698a77102fb368e',1,'uct.h']]], + ['uct_5ftag_5frecv_5fcb_5finline_5fdata_357',['UCT_TAG_RECV_CB_INLINE_DATA',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gga726ca809ffd3d67ab4b8476646f26635a5dcb013c4470abbabc764c473898df3e',1,'uct.h']]] +]; diff --git a/api/v1.17/html/search/functions_0.js b/api/v1.17/html/search/functions_0.js new file mode 100644 index 00000000000..ba7b738a7ff --- /dev/null +++ b/api/v1.17/html/search/functions_0.js @@ -0,0 +1,219 @@ +var searchData= +[ + ['ucp_5fam_5fdata_5frelease_0',['ucp_am_data_release',['../group___u_c_p___c_o_m_m.html#ga45570903fc3ce01e7e5c0cd241f516f9',1,'ucp.h']]], + ['ucp_5fam_5frecv_5fdata_5fnbx_1',['ucp_am_recv_data_nbx',['../group___u_c_p___c_o_m_m.html#gaefaaa5e0a154efe496ae5bb7f2bf71f3',1,'ucp.h']]], + ['ucp_5fam_5fsend_5fnb_2',['ucp_am_send_nb',['../group___u_c_p___c_o_m_m.html#ga94ec21811930b6b6fb8eab500b8c730d',1,'ucp_compat.h']]], + ['ucp_5fam_5fsend_5fnbx_3',['ucp_am_send_nbx',['../group___u_c_p___c_o_m_m.html#ga4b8ab214f35828ee4608d73442e8c372',1,'ucp.h']]], + ['ucp_5fatomic_5fadd32_4',['ucp_atomic_add32',['../group___u_c_p___c_o_m_m.html#gaa042d7e76314e1d7ea9717d4adacde7b',1,'ucp_compat.h']]], + ['ucp_5fatomic_5fadd64_5',['ucp_atomic_add64',['../group___u_c_p___c_o_m_m.html#gaa80cd3f104b920c0c2f6bf7cff50fc15',1,'ucp_compat.h']]], + ['ucp_5fatomic_5fcswap32_6',['ucp_atomic_cswap32',['../group___u_c_p___c_o_m_m.html#ga6078dddaa93c8dfdab3c18014064f0c0',1,'ucp_compat.h']]], + ['ucp_5fatomic_5fcswap64_7',['ucp_atomic_cswap64',['../group___u_c_p___c_o_m_m.html#gafa365c16d4c2b4fd2aba6e94fec2c92b',1,'ucp_compat.h']]], + ['ucp_5fatomic_5ffadd32_8',['ucp_atomic_fadd32',['../group___u_c_p___c_o_m_m.html#ga0c777d7d1c59e01151ef5e3fcd7e5b94',1,'ucp_compat.h']]], + ['ucp_5fatomic_5ffadd64_9',['ucp_atomic_fadd64',['../group___u_c_p___c_o_m_m.html#ga7435bc5d5e2c4fb6b491d457ab65596b',1,'ucp_compat.h']]], + ['ucp_5fatomic_5ffetch_5fnb_10',['ucp_atomic_fetch_nb',['../group___u_c_p___c_o_m_m.html#ga43a1a4a517797eb8c5c96ac8841437de',1,'ucp_compat.h']]], + ['ucp_5fatomic_5fop_5fnbx_11',['ucp_atomic_op_nbx',['../group___u_c_p___c_o_m_m.html#ga087e2cad02e84cf1230684362562aa46',1,'ucp.h']]], + ['ucp_5fatomic_5fpost_12',['ucp_atomic_post',['../group___u_c_p___c_o_m_m.html#ga839312fb4de5e786daacb4fa071d61df',1,'ucp_compat.h']]], + ['ucp_5fatomic_5fswap32_13',['ucp_atomic_swap32',['../group___u_c_p___c_o_m_m.html#ga43118f9d5e6d8fdfa518887218468bb3',1,'ucp_compat.h']]], + ['ucp_5fatomic_5fswap64_14',['ucp_atomic_swap64',['../group___u_c_p___c_o_m_m.html#gaa2913e345505195a183ccc2583fb4ebc',1,'ucp_compat.h']]], + ['ucp_5fcleanup_15',['ucp_cleanup',['../group___u_c_p___c_o_n_t_e_x_t.html#gaaa7a90069ad6e0f3e227402db265299e',1,'ucp.h']]], + ['ucp_5fconfig_5fmodify_16',['ucp_config_modify',['../group___u_c_p___c_o_n_f_i_g.html#ga94828d175f4abd87d48b54f32dc74703',1,'ucp.h']]], + ['ucp_5fconfig_5fprint_17',['ucp_config_print',['../group___u_c_p___c_o_n_f_i_g.html#ga52f4d762c9f3a61c98fb7ba95a00809e',1,'ucp.h']]], + ['ucp_5fconfig_5fread_18',['ucp_config_read',['../group___u_c_p___c_o_n_f_i_g.html#gab2a5bd39a60f5326771c7a46f5f93319',1,'ucp.h']]], + ['ucp_5fconfig_5frelease_19',['ucp_config_release',['../group___u_c_p___c_o_n_f_i_g.html#ga12d1b29c55e927a22de92431efa0d82a',1,'ucp.h']]], + ['ucp_5fconn_5frequest_5fquery_20',['ucp_conn_request_query',['../group___u_c_p___w_o_r_k_e_r.html#ga440c99f2462ba8201280687a76fd8569',1,'ucp.h']]], + ['ucp_5fcontext_5fprint_5finfo_21',['ucp_context_print_info',['../group___u_c_p___c_o_n_t_e_x_t.html#ga91684cf77b8dc8cbb62af0c3741b36ea',1,'ucp.h']]], + ['ucp_5fcontext_5fquery_22',['ucp_context_query',['../group___u_c_p___c_o_n_t_e_x_t.html#ga3485fb61663f4cc6f32e801654aedcff',1,'ucp.h']]], + ['ucp_5fdisconnect_5fnb_23',['ucp_disconnect_nb',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga22cf67f74ae06242cc26e6ca6ecd100b',1,'ucp_compat.h']]], + ['ucp_5fdt_5fcreate_5fgeneric_24',['ucp_dt_create_generic',['../group___u_c_p___d_a_t_a_t_y_p_e.html#gad786aa1a5250b22d4c35d82801aef254',1,'ucp.h']]], + ['ucp_5fdt_5fdestroy_25',['ucp_dt_destroy',['../group___u_c_p___d_a_t_a_t_y_p_e.html#ga00337159ebd75640d55be501b7fcc5e7',1,'ucp.h']]], + ['ucp_5fdt_5fquery_26',['ucp_dt_query',['../group___u_c_p___d_a_t_a_t_y_p_e.html#ga23b6c6fbfbee7669ec2abb3ee572ac0e',1,'ucp.h']]], + ['ucp_5fep_5fclose_5fnb_27',['ucp_ep_close_nb',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gaa7293ad4dc72858b2594686d1c553015',1,'ucp_compat.h']]], + ['ucp_5fep_5fclose_5fnbx_28',['ucp_ep_close_nbx',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga6756b434213a424abb0d542fda1d82a1',1,'ucp.h']]], + ['ucp_5fep_5fcreate_29',['ucp_ep_create',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga6cc5ffb2ba1b0ccd510848de0a779f7b',1,'ucp.h']]], + ['ucp_5fep_5fdestroy_30',['ucp_ep_destroy',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gac63b3fe87c001dd965ca42943ea04bb1',1,'ucp_compat.h']]], + ['ucp_5fep_5fevaluate_5fperf_31',['ucp_ep_evaluate_perf',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga654a8402e9a3d657f5226ac4e8866994',1,'ucp.h']]], + ['ucp_5fep_5fflush_32',['ucp_ep_flush',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga046d87a26389c7adecd177111a65cd31',1,'ucp_compat.h']]], + ['ucp_5fep_5fflush_5fnb_33',['ucp_ep_flush_nb',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga599c9b9272bfdd662afaa247d8e4dfd6',1,'ucp_compat.h']]], + ['ucp_5fep_5fflush_5fnbx_34',['ucp_ep_flush_nbx',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga28d61bf53320bd0f5d741147447251a4',1,'ucp.h']]], + ['ucp_5fep_5fmodify_5fnb_35',['ucp_ep_modify_nb',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga034aff7bd27e3b932d4bb7b964db759e',1,'ucp_compat.h']]], + ['ucp_5fep_5fprint_5finfo_36',['ucp_ep_print_info',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gacc9e967b69f48d6223e921831181f3ee',1,'ucp.h']]], + ['ucp_5fep_5fquery_37',['ucp_ep_query',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga5074a508e2ae53e00d2bd7e728336f30',1,'ucp.h']]], + ['ucp_5fep_5frkey_5funpack_38',['ucp_ep_rkey_unpack',['../group___u_c_p___m_e_m.html#ga92353d1cb038a4e281f0a1973937079d',1,'ucp.h']]], + ['ucp_5fget_39',['ucp_get',['../group___u_c_p___c_o_m_m.html#gaf4a465cff6c1691106430564899f6f3e',1,'ucp_compat.h']]], + ['ucp_5fget_5fnb_40',['ucp_get_nb',['../group___u_c_p___c_o_m_m.html#ga7cb68811f53a69d37fd16e8ddb46e23b',1,'ucp_compat.h']]], + ['ucp_5fget_5fnbi_41',['ucp_get_nbi',['../group___u_c_p___c_o_m_m.html#gae3597f699227d598651f6630fbd7968b',1,'ucp_compat.h']]], + ['ucp_5fget_5fnbx_42',['ucp_get_nbx',['../group___u_c_p___c_o_m_m.html#gaa06c6521592661a8123c11426074d880',1,'ucp.h']]], + ['ucp_5fget_5fversion_43',['ucp_get_version',['../group___u_c_p___c_o_n_t_e_x_t.html#gae57b8eee6087f5e1d056d8075751042e',1,'ucp.h']]], + ['ucp_5fget_5fversion_5fstring_44',['ucp_get_version_string',['../group___u_c_p___c_o_n_t_e_x_t.html#gaf3dbbb68cb6a9236a2ea8a2e624553de',1,'ucp.h']]], + ['ucp_5finit_45',['ucp_init',['../group___u_c_p___c_o_n_t_e_x_t.html#ga3ad3662ebafac88ec666be4caeb76cb2',1,'ucp.h']]], + ['ucp_5flib_5fquery_46',['ucp_lib_query',['../group___u_c_p___c_o_n_t_e_x_t.html#ga4f8c11637791304bd7fcc9aceafbb1dd',1,'ucp.h']]], + ['ucp_5flistener_5fcreate_47',['ucp_listener_create',['../group___u_c_p___w_o_r_k_e_r.html#ga7a8943f89a7b49c1f1abc562fb5178ad',1,'ucp.h']]], + ['ucp_5flistener_5fdestroy_48',['ucp_listener_destroy',['../group___u_c_p___w_o_r_k_e_r.html#gae45c609cd659bdd0e205d30627b7af21',1,'ucp.h']]], + ['ucp_5flistener_5fquery_49',['ucp_listener_query',['../group___u_c_p___w_o_r_k_e_r.html#ga785a8cc6adab6c01bb2354a38bcd9928',1,'ucp.h']]], + ['ucp_5flistener_5freject_50',['ucp_listener_reject',['../group___u_c_p___w_o_r_k_e_r.html#ga1f1620fdbae11ea076875fd6ac644241',1,'ucp.h']]], + ['ucp_5fmem_5fadvise_51',['ucp_mem_advise',['../group___u_c_p___m_e_m.html#ga455313831b8734fe1a824109c3ffc588',1,'ucp.h']]], + ['ucp_5fmem_5fmap_52',['ucp_mem_map',['../group___u_c_p___m_e_m.html#ga1af508a609cc7f2cebf4b33f9ee6ac66',1,'ucp.h']]], + ['ucp_5fmem_5fprint_5finfo_53',['ucp_mem_print_info',['../group___u_c_p___m_e_m.html#ga3240a60d906b2ecf5d0a19acdf13850f',1,'ucp.h']]], + ['ucp_5fmem_5fquery_54',['ucp_mem_query',['../group___u_c_p___m_e_m.html#ga080c10aaf347682594092d796bbc913f',1,'ucp.h']]], + ['ucp_5fmem_5funmap_55',['ucp_mem_unmap',['../group___u_c_p___m_e_m.html#gac8bd616375fe05594690b5e0cddd6318',1,'ucp.h']]], + ['ucp_5fmemh_5fbuffer_5frelease_56',['ucp_memh_buffer_release',['../group___u_c_p___m_e_m.html#gab016c446e78e171c03a2fe11ab5fe48d',1,'ucp.h']]], + ['ucp_5fmemh_5fpack_57',['ucp_memh_pack',['../group___u_c_p___m_e_m.html#ga8540eb3c5b885dfddbca0e39e00117ad',1,'ucp.h']]], + ['ucp_5fput_58',['ucp_put',['../group___u_c_p___c_o_m_m.html#ga85b0a27cf8a3239decabad6a9104eb31',1,'ucp_compat.h']]], + ['ucp_5fput_5fnb_59',['ucp_put_nb',['../group___u_c_p___c_o_m_m.html#ga1ba986b2bde69c215abd5766dbceeb18',1,'ucp_compat.h']]], + ['ucp_5fput_5fnbi_60',['ucp_put_nbi',['../group___u_c_p___c_o_m_m.html#ga77f3d5def7a77c4ba88f9e1eefa4b7e6',1,'ucp_compat.h']]], + ['ucp_5fput_5fnbx_61',['ucp_put_nbx',['../group___u_c_p___c_o_m_m.html#ga29e7b9b70b782140e63544b8613a5fe7',1,'ucp.h']]], + ['ucp_5frequest_5falloc_62',['ucp_request_alloc',['../group___u_c_p___c_o_m_m.html#ga896e6f781c5fb026a6e25b0151bdb745',1,'ucp.h']]], + ['ucp_5frequest_5fcancel_63',['ucp_request_cancel',['../group___u_c_p___c_o_m_m.html#ga3553f89a61d6b40af4633a2e7c84fc1d',1,'ucp.h']]], + ['ucp_5frequest_5fcheck_5fstatus_64',['ucp_request_check_status',['../group___u_c_p___c_o_m_m.html#gae082ad7af428645ebe6e469d3d06a757',1,'ucp.h']]], + ['ucp_5frequest_5ffree_65',['ucp_request_free',['../group___u_c_p___c_o_m_m.html#ga0e8e46f5953d464382b21edef3ec9994',1,'ucp.h']]], + ['ucp_5frequest_5fis_5fcompleted_66',['ucp_request_is_completed',['../group___u_c_p___c_o_m_m.html#ga432e478b97575b21855074a45d54520d',1,'ucp_compat.h']]], + ['ucp_5frequest_5fquery_67',['ucp_request_query',['../group___u_c_p___c_o_m_m.html#gafc247802373bbe39e9866745e102a064',1,'ucp.h']]], + ['ucp_5frequest_5frelease_68',['ucp_request_release',['../group___u_c_p___e_n_d_p_o_i_n_t.html#gaabf569a298946627fbc8d66814c35e68',1,'ucp_compat.h']]], + ['ucp_5frequest_5ftest_69',['ucp_request_test',['../group___u_c_p___e_n_d_p_o_i_n_t.html#ga3802a983138ed27034b7d52026dccb2f',1,'ucp_compat.h']]], + ['ucp_5frkey_5fbuffer_5frelease_70',['ucp_rkey_buffer_release',['../group___u_c_p___m_e_m.html#ga8bc005f53da015f4a062087e6eb064e9',1,'ucp_compat.h']]], + ['ucp_5frkey_5fcompare_71',['ucp_rkey_compare',['../group___u_c_p___m_e_m.html#gae3adf84d5cb8465ba6d9f5766211be17',1,'ucp.h']]], + ['ucp_5frkey_5fdestroy_72',['ucp_rkey_destroy',['../group___u_c_p___m_e_m.html#gae33d7cc264e0fe1b11e27ae4289fba39',1,'ucp.h']]], + ['ucp_5frkey_5fpack_73',['ucp_rkey_pack',['../group___u_c_p___m_e_m.html#gadbb6b3ace4ab988cd7660319123407b4',1,'ucp_compat.h']]], + ['ucp_5frkey_5fptr_74',['ucp_rkey_ptr',['../group___u_c_p___m_e_m.html#ga68f3458805ba15d6a5883219ecd56c1e',1,'ucp.h']]], + ['ucp_5fstream_5fdata_5frelease_75',['ucp_stream_data_release',['../group___u_c_p___c_o_m_m.html#ga1d1c1c1b2caf4f26c9872e1d708d5f68',1,'ucp.h']]], + ['ucp_5fstream_5frecv_5fdata_5fnb_76',['ucp_stream_recv_data_nb',['../group___u_c_p___c_o_m_m.html#ga47f307f4765eb5410f24ac27986b59d7',1,'ucp.h']]], + ['ucp_5fstream_5frecv_5fnb_77',['ucp_stream_recv_nb',['../group___u_c_p___c_o_m_m.html#gadf3b4504a329a46d2d4ec0a8cec08130',1,'ucp_compat.h']]], + ['ucp_5fstream_5frecv_5fnbx_78',['ucp_stream_recv_nbx',['../group___u_c_p___c_o_m_m.html#ga30494ce33e63823c81c2c5b3656d25c3',1,'ucp.h']]], + ['ucp_5fstream_5frecv_5frequest_5ftest_79',['ucp_stream_recv_request_test',['../group___u_c_p___c_o_m_m.html#ga4d8d8823b24cb25dcab8bf44c72fa25e',1,'ucp.h']]], + ['ucp_5fstream_5fsend_5fnb_80',['ucp_stream_send_nb',['../group___u_c_p___c_o_m_m.html#ga9022ff0ebb56cac81f6ba81bb28f71b3',1,'ucp_compat.h']]], + ['ucp_5fstream_5fsend_5fnbx_81',['ucp_stream_send_nbx',['../group___u_c_p___c_o_m_m.html#gae9fe6efe6b05e4e78f58bee68c68b252',1,'ucp.h']]], + ['ucp_5fstream_5fworker_5fpoll_82',['ucp_stream_worker_poll',['../group___u_c_p___w_o_r_k_e_r.html#gaacff2409268fc6620d9a2bca4fa01950',1,'ucp.h']]], + ['ucp_5ftag_5fmsg_5frecv_5fnb_83',['ucp_tag_msg_recv_nb',['../group___u_c_p___c_o_m_m.html#gac335b3ae4c9577728d9c0f2ecd44c084',1,'ucp_compat.h']]], + ['ucp_5ftag_5fmsg_5frecv_5fnbx_84',['ucp_tag_msg_recv_nbx',['../group___u_c_p___c_o_m_m.html#ga48c61d44f18362bdaf8fca3122efcea6',1,'ucp.h']]], + ['ucp_5ftag_5fprobe_5fnb_85',['ucp_tag_probe_nb',['../group___u_c_p___c_o_m_m.html#ga41668f468dc37a7634116b8210815f22',1,'ucp.h']]], + ['ucp_5ftag_5frecv_5fnb_86',['ucp_tag_recv_nb',['../group___u_c_p___c_o_m_m.html#gaeb24cdfc33dfb2886551b51843aa6304',1,'ucp_compat.h']]], + ['ucp_5ftag_5frecv_5fnbr_87',['ucp_tag_recv_nbr',['../group___u_c_p___c_o_m_m.html#ga5a86663a4a144fd81d7a4e3378c5edd2',1,'ucp_compat.h']]], + ['ucp_5ftag_5frecv_5fnbx_88',['ucp_tag_recv_nbx',['../group___u_c_p___c_o_m_m.html#gaa842f8ca8ad1363ed857ab938285a16f',1,'ucp.h']]], + ['ucp_5ftag_5frecv_5frequest_5ftest_89',['ucp_tag_recv_request_test',['../group___u_c_p___c_o_m_m.html#ga707cbbef8cdcf90fa7cf63c922ef2c7f',1,'ucp.h']]], + ['ucp_5ftag_5fsend_5fnb_90',['ucp_tag_send_nb',['../group___u_c_p___c_o_m_m.html#gaae7343bd638924e5518041311d5c1dfc',1,'ucp_compat.h']]], + ['ucp_5ftag_5fsend_5fnbr_91',['ucp_tag_send_nbr',['../group___u_c_p___c_o_m_m.html#gad90aa964e14fef59b4e3bd9120cca669',1,'ucp_compat.h']]], + ['ucp_5ftag_5fsend_5fnbx_92',['ucp_tag_send_nbx',['../group___u_c_p___c_o_m_m.html#ga8323878b60f426c630d4ff8996ede3cc',1,'ucp.h']]], + ['ucp_5ftag_5fsend_5fsync_5fnb_93',['ucp_tag_send_sync_nb',['../group___u_c_p___c_o_m_m.html#gabd3e1ccae2ef34463e8313d09d3db17f',1,'ucp_compat.h']]], + ['ucp_5ftag_5fsend_5fsync_5fnbx_94',['ucp_tag_send_sync_nbx',['../group___u_c_p___c_o_m_m.html#ga0d96a2aac42fe99ce0c79f15dda8bd06',1,'ucp.h']]], + ['ucp_5fworker_5faddress_5fquery_95',['ucp_worker_address_query',['../group___u_c_p___w_o_r_k_e_r.html#ga0fac7f3d7bf9970e837732557e4277b0',1,'ucp.h']]], + ['ucp_5fworker_5farm_96',['ucp_worker_arm',['../group___u_c_p___w_a_k_e_u_p.html#gadce97937294aae0f5f599d58d68904d6',1,'ucp.h']]], + ['ucp_5fworker_5fcreate_97',['ucp_worker_create',['../group___u_c_p___w_o_r_k_e_r.html#ga0aec01ed3dad646ca6cd3814b13054b1',1,'ucp.h']]], + ['ucp_5fworker_5fdestroy_98',['ucp_worker_destroy',['../group___u_c_p___w_o_r_k_e_r.html#ga6b6c5bf97d16e7fc4b7c815875e92676',1,'ucp.h']]], + ['ucp_5fworker_5ffence_99',['ucp_worker_fence',['../group___u_c_p___w_o_r_k_e_r.html#ga05b3b5887475966631c62119d64c6182',1,'ucp.h']]], + ['ucp_5fworker_5fflush_100',['ucp_worker_flush',['../group___u_c_p___w_o_r_k_e_r.html#gae20b8bc9fbbde208ea266490bde4cbcb',1,'ucp_compat.h']]], + ['ucp_5fworker_5fflush_5fnb_101',['ucp_worker_flush_nb',['../group___u_c_p___w_o_r_k_e_r.html#gac461d1034a3313612243a5829b7e3847',1,'ucp_compat.h']]], + ['ucp_5fworker_5fflush_5fnbx_102',['ucp_worker_flush_nbx',['../group___u_c_p___w_o_r_k_e_r.html#ga57fedddf88d4b777f5c16b39b5fcf52e',1,'ucp.h']]], + ['ucp_5fworker_5fget_5faddress_103',['ucp_worker_get_address',['../group___u_c_p___w_o_r_k_e_r.html#ga41aaa5fb8fbd3de50a39b1fda12977cc',1,'ucp_compat.h']]], + ['ucp_5fworker_5fget_5fefd_104',['ucp_worker_get_efd',['../group___u_c_p___w_a_k_e_u_p.html#gadf849649110fa338fd891548198a578b',1,'ucp.h']]], + ['ucp_5fworker_5fprint_5finfo_105',['ucp_worker_print_info',['../group___u_c_p___w_o_r_k_e_r.html#gab746c6cccbfe8d25a892eb415bcedd97',1,'ucp.h']]], + ['ucp_5fworker_5fprogress_106',['ucp_worker_progress',['../group___u_c_p___w_o_r_k_e_r.html#ga340784a8528d4932916651460dc481c0',1,'ucp.h']]], + ['ucp_5fworker_5fquery_107',['ucp_worker_query',['../group___u_c_p___w_o_r_k_e_r.html#gaab678930b792e328eb4f0a17654e5e42',1,'ucp.h']]], + ['ucp_5fworker_5frelease_5faddress_108',['ucp_worker_release_address',['../group___u_c_p___w_o_r_k_e_r.html#ga94260829739496267d2c8d86414b863d',1,'ucp.h']]], + ['ucp_5fworker_5fset_5fam_5fhandler_109',['ucp_worker_set_am_handler',['../group___u_c_p___w_o_r_k_e_r.html#gab8e272749e7a396643caf8775889df4e',1,'ucp_compat.h']]], + ['ucp_5fworker_5fset_5fam_5frecv_5fhandler_110',['ucp_worker_set_am_recv_handler',['../group___u_c_p___w_o_r_k_e_r.html#ga410d5e90c2abc6997924cbf7dee4a1f3',1,'ucp.h']]], + ['ucp_5fworker_5fsignal_111',['ucp_worker_signal',['../group___u_c_p___w_a_k_e_u_p.html#ga4f83bf7620a2ea765fb7167c756b8e48',1,'ucp.h']]], + ['ucp_5fworker_5fwait_112',['ucp_worker_wait',['../group___u_c_p___w_a_k_e_u_p.html#gaa6d1fba4d8a2525b74174a8c344ae9aa',1,'ucp.h']]], + ['ucp_5fworker_5fwait_5fmem_113',['ucp_worker_wait_mem',['../group___u_c_p___w_a_k_e_u_p.html#ga8b9a2ca2795f083e3b1250d698162aa6',1,'ucp.h']]], + ['ucs_5fasync_5fadd_5ftimer_114',['ucs_async_add_timer',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ga11a624df0bff9513f87b273506a8f711',1,'async_fwd.h']]], + ['ucs_5fasync_5fcontext_5fcreate_115',['ucs_async_context_create',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ga8c3ad862fef1d35af708628d778a5a5b',1,'async_fwd.h']]], + ['ucs_5fasync_5fcontext_5fdestroy_116',['ucs_async_context_destroy',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ga65db07fbee18ab2bd46a738c89ccc8f7',1,'async_fwd.h']]], + ['ucs_5fasync_5fmodify_5fhandler_117',['ucs_async_modify_handler',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ga46ac2384234000408d56065a8e43fc5a',1,'async_fwd.h']]], + ['ucs_5fasync_5fpoll_118',['ucs_async_poll',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ga41fb5f0e0719d9b6d2c07358c6a9e6ae',1,'async_fwd.h']]], + ['ucs_5fasync_5fremove_5fhandler_119',['ucs_async_remove_handler',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ga7253f7d2762b8d288e78d573f9948aef',1,'async_fwd.h']]], + ['ucs_5fasync_5fset_5fevent_5fhandler_120',['ucs_async_set_event_handler',['../group___u_c_s___r_e_s_o_u_r_c_e.html#ga4bd1833c4a212330cbdff7605858819c',1,'async_fwd.h']]], + ['uct_5fcm_5fclient_5fep_5fconn_5fnotify_121',['uct_cm_client_ep_conn_notify',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga45664fb4113fa1f2ddad4fc181e0d62a',1,'uct.h']]], + ['uct_5fcm_5fclose_122',['uct_cm_close',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga2d4b7947a338ad8721390f8c292a4dfa',1,'uct.h']]], + ['uct_5fcm_5fconfig_5fread_123',['uct_cm_config_read',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gaec01265a1d6fbbeef49ca3bdb5bbf2b4',1,'uct.h']]], + ['uct_5fcm_5fopen_124',['uct_cm_open',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gaa388b4d447f77dbb9dcc45f4fff4e9b9',1,'uct.h']]], + ['uct_5fcm_5fquery_125',['uct_cm_query',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga4a47044a01e1cefbe7a1fd6a7e9a6857',1,'uct.h']]], + ['uct_5fcompletion_5fupdate_5fstatus_126',['uct_completion_update_status',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga6d517ca850e8bb367939139b6b24cc87',1,'uct.h']]], + ['uct_5fcomponent_5fquery_127',['uct_component_query',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga437597d034328ce061df61647add1891',1,'uct.h']]], + ['uct_5fconfig_5fget_128',['uct_config_get',['../group___u_c_t___c_o_n_t_e_x_t.html#ga711e3a72f282ad7d11d2945ea2dd7b4c',1,'uct.h']]], + ['uct_5fconfig_5fmodify_129',['uct_config_modify',['../group___u_c_t___c_o_n_t_e_x_t.html#ga00b51bffb44b91b256dd6d6e6e99f98f',1,'uct.h']]], + ['uct_5fconfig_5frelease_130',['uct_config_release',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga951ea184730bc0b9cf659b1038e999a4',1,'uct.h']]], + ['uct_5fep_5fam_5fbcopy_131',['uct_ep_am_bcopy',['../group___u_c_t___a_m.html#gae29dad6b69beaf21c19255906742e14d',1,'uct.h']]], + ['uct_5fep_5fam_5fshort_132',['uct_ep_am_short',['../group___u_c_t___a_m.html#ga0d170165e2d16dccbe45588ebad181f3',1,'uct.h']]], + ['uct_5fep_5fam_5fshort_5fiov_133',['uct_ep_am_short_iov',['../group___u_c_t___a_m.html#ga54b4c1f0426349ac9fc498736c53c0e7',1,'uct.h']]], + ['uct_5fep_5fam_5fzcopy_134',['uct_ep_am_zcopy',['../group___u_c_t___a_m.html#gae79d303f72e688df6d49bc44823c2210',1,'uct.h']]], + ['uct_5fep_5fatomic32_5ffetch_135',['uct_ep_atomic32_fetch',['../group___u_c_t___a_m_o.html#ga2d4fba85b9c7e5d70f09579bddbd91c6',1,'uct.h']]], + ['uct_5fep_5fatomic32_5fpost_136',['uct_ep_atomic32_post',['../group___u_c_t___a_m_o.html#ga81f59547148ece219e188d4196932e9f',1,'uct.h']]], + ['uct_5fep_5fatomic64_5ffetch_137',['uct_ep_atomic64_fetch',['../group___u_c_t___a_m_o.html#gae13c6bff2a3e26a133a3d17253fa3428',1,'uct.h']]], + ['uct_5fep_5fatomic64_5fpost_138',['uct_ep_atomic64_post',['../group___u_c_t___a_m_o.html#ga0e702db435215d222e12186cdcdf737c',1,'uct.h']]], + ['uct_5fep_5fatomic_5fcswap32_139',['uct_ep_atomic_cswap32',['../group___u_c_t___a_m_o.html#ga8c93ec75fb32dd52cda9cbe628b1077f',1,'uct.h']]], + ['uct_5fep_5fatomic_5fcswap64_140',['uct_ep_atomic_cswap64',['../group___u_c_t___a_m_o.html#ga84362057b7249456e00c00844fc60290',1,'uct.h']]], + ['uct_5fep_5fcheck_141',['uct_ep_check',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga45924a1e90cc4747fd23b36a21fc07af',1,'uct.h']]], + ['uct_5fep_5fconnect_142',['uct_ep_connect',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gaec09721914083255f4856da1a9541880',1,'uct.h']]], + ['uct_5fep_5fconnect_5fto_5fep_143',['uct_ep_connect_to_ep',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga371685403748eb72784fdcb17f9e4bdf',1,'uct.h']]], + ['uct_5fep_5fcreate_144',['uct_ep_create',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga0b2d38bde2651977c2b476e6e8866acc',1,'uct.h']]], + ['uct_5fep_5fdestroy_145',['uct_ep_destroy',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gac7d6537c7cdacdf24afeafe9c0085163',1,'uct.h']]], + ['uct_5fep_5fdisconnect_146',['uct_ep_disconnect',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga97049050f63eab653949cceef8fe4ba0',1,'uct.h']]], + ['uct_5fep_5ffence_147',['uct_ep_fence',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga34719e12b68f8ac890f261018aa6ddb3',1,'uct.h']]], + ['uct_5fep_5fflush_148',['uct_ep_flush',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga2a7a12705b1f4af41792282b59fbc8c2',1,'uct.h']]], + ['uct_5fep_5fget_5faddress_149',['uct_ep_get_address',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga23773d9d87524cfa6dc6c2d1e094d487',1,'uct.h']]], + ['uct_5fep_5fget_5fbcopy_150',['uct_ep_get_bcopy',['../group___u_c_t___r_m_a.html#ga82b06eb1ca3be490d39c70a664f12742',1,'uct.h']]], + ['uct_5fep_5fget_5fshort_151',['uct_ep_get_short',['../group___u_c_t___r_m_a.html#gaed5201516e35d10605e5db1fd0dea674',1,'uct.h']]], + ['uct_5fep_5fget_5fzcopy_152',['uct_ep_get_zcopy',['../group___u_c_t___r_m_a.html#ga535095dfcb356cfab17c319f7993d53a',1,'uct.h']]], + ['uct_5fep_5fpending_5fadd_153',['uct_ep_pending_add',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga40f4b92dd4af8da92e138816d57dfece',1,'uct.h']]], + ['uct_5fep_5fpending_5fpurge_154',['uct_ep_pending_purge',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga11196076031e7c8601241a3adbe1e561',1,'uct.h']]], + ['uct_5fep_5fput_5fbcopy_155',['uct_ep_put_bcopy',['../group___u_c_t___r_m_a.html#gad0b6f7d4ad48f672e20ff70c8e0faadc',1,'uct.h']]], + ['uct_5fep_5fput_5fshort_156',['uct_ep_put_short',['../group___u_c_t___r_m_a.html#ga2dfc08ad6547e081cddd7457c19417b1',1,'uct.h']]], + ['uct_5fep_5fput_5fzcopy_157',['uct_ep_put_zcopy',['../group___u_c_t___r_m_a.html#gaed8c42bab761c97bc0a1516fbf552583',1,'uct.h']]], + ['uct_5fep_5ftag_5feager_5fbcopy_158',['uct_ep_tag_eager_bcopy',['../group___u_c_t___t_a_g.html#ga08d520cd093b8c661c3f5a3bd863b7c2',1,'uct.h']]], + ['uct_5fep_5ftag_5feager_5fshort_159',['uct_ep_tag_eager_short',['../group___u_c_t___t_a_g.html#ga5e595ff1d9e77bd5b4abe84fae3ac117',1,'uct.h']]], + ['uct_5fep_5ftag_5feager_5fzcopy_160',['uct_ep_tag_eager_zcopy',['../group___u_c_t___t_a_g.html#gaab6efb1df0527e53a0c1528cc80f64e4',1,'uct.h']]], + ['uct_5fep_5ftag_5frndv_5fcancel_161',['uct_ep_tag_rndv_cancel',['../group___u_c_t___t_a_g.html#gaee99ff7af5b69b653977e4db2b5fef8b',1,'uct.h']]], + ['uct_5fep_5ftag_5frndv_5frequest_162',['uct_ep_tag_rndv_request',['../group___u_c_t___t_a_g.html#ga0b01e46c59a9d713495e4be1cdc6edda',1,'uct.h']]], + ['uct_5fep_5ftag_5frndv_5fzcopy_163',['uct_ep_tag_rndv_zcopy',['../group___u_c_t___t_a_g.html#ga897e5cfaa4998fdcb36128624635460a',1,'uct.h']]], + ['uct_5fiface_5faccept_164',['uct_iface_accept',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gaadcca33083e95033b161b4f5b1365dc9',1,'uct.h']]], + ['uct_5fiface_5fclose_165',['uct_iface_close',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga748bd92ba4e62fd86c6b002f9198e2aa',1,'uct.h']]], + ['uct_5fiface_5fevent_5farm_166',['uct_iface_event_arm',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gaf15e9f37d3ce5273153861522a443acf',1,'uct.h']]], + ['uct_5fiface_5fevent_5ffd_5fget_167',['uct_iface_event_fd_get',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gae3aa273c042171bee7292da0d7f774d1',1,'uct.h']]], + ['uct_5fiface_5ffence_168',['uct_iface_fence',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gaa8d42856661922581a683030dd9c8990',1,'uct.h']]], + ['uct_5fiface_5fflush_169',['uct_iface_flush',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga6cda14e7c03e4f400be46fe97aa23bed',1,'uct.h']]], + ['uct_5fiface_5fget_5faddress_170',['uct_iface_get_address',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga7da50f02f6cfaaf16f11c620fba9f3b8',1,'uct.h']]], + ['uct_5fiface_5fget_5fdevice_5faddress_171',['uct_iface_get_device_address',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga67f64f9b1971622ab8e7c8410cc5ab44',1,'uct.h']]], + ['uct_5fiface_5fis_5freachable_172',['uct_iface_is_reachable',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gadf8829d8c85620cbc1ddfc0f3e8ec9a8',1,'uct.h']]], + ['uct_5fiface_5fmem_5falloc_173',['uct_iface_mem_alloc',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gaa29727b03b244839f0c068d0785f0050',1,'uct.h']]], + ['uct_5fiface_5fmem_5ffree_174',['uct_iface_mem_free',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga198359eccf0ae85f1c13d4d8509f5532',1,'uct.h']]], + ['uct_5fiface_5fopen_175',['uct_iface_open',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga031e2c99f03585c0f4c7356c71f0fbb1',1,'uct.h']]], + ['uct_5fiface_5fprogress_176',['uct_iface_progress',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga56dd7c8b9f4b02ae5da179a3055bcb81',1,'uct.h']]], + ['uct_5fiface_5fprogress_5fdisable_177',['uct_iface_progress_disable',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga7acfd29e7d7bb8566cfbbf02916bc466',1,'uct.h']]], + ['uct_5fiface_5fprogress_5fenable_178',['uct_iface_progress_enable',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga9f14d2694a06d5ea9e6434a52f8d3ff0',1,'uct.h']]], + ['uct_5fiface_5fquery_179',['uct_iface_query',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gac2ec7cdee76fa075cc65185d7c134bc2',1,'uct.h']]], + ['uct_5fiface_5freject_180',['uct_iface_reject',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga31c30e35f43121d1715620931860dafe',1,'uct.h']]], + ['uct_5fiface_5frelease_5fdesc_181',['uct_iface_release_desc',['../group___u_c_t___a_m.html#gac894ed0c24a3481f316945a462d67921',1,'uct.h']]], + ['uct_5fiface_5fset_5fam_5fhandler_182',['uct_iface_set_am_handler',['../group___u_c_t___a_m.html#ga81dd3f74f8dc8c2c950d932fca0f799e',1,'uct.h']]], + ['uct_5fiface_5fset_5fam_5ftracer_183',['uct_iface_set_am_tracer',['../group___u_c_t___a_m.html#gaed13079973d867e4bb18be3696216a3a',1,'uct.h']]], + ['uct_5fiface_5ftag_5frecv_5fcancel_184',['uct_iface_tag_recv_cancel',['../group___u_c_t___t_a_g.html#gad2448d4cf5325dec5aa9c69ae4a025e1',1,'uct.h']]], + ['uct_5fiface_5ftag_5frecv_5fzcopy_185',['uct_iface_tag_recv_zcopy',['../group___u_c_t___t_a_g.html#gac4ba076343a68f330e5c4659d38bb383',1,'uct.h']]], + ['uct_5flistener_5fcreate_186',['uct_listener_create',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gadb87c52696a73feae4e1d6e0b9a01911',1,'uct.h']]], + ['uct_5flistener_5fdestroy_187',['uct_listener_destroy',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#ga8f6a0c420fbca1b5fbe7c1d919757d3f',1,'uct.h']]], + ['uct_5flistener_5fquery_188',['uct_listener_query',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gae8b7a5fbada262d0f312970f018a916e',1,'uct.h']]], + ['uct_5flistener_5freject_189',['uct_listener_reject',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html#gaa8d1ea690c1600dc334ae6a014110d5e',1,'uct.h']]], + ['uct_5fmd_5fclose_190',['uct_md_close',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gac9ab18f8a48b07429c9987b584fe5574',1,'uct.h']]], + ['uct_5fmd_5fconfig_5fread_191',['uct_md_config_read',['../group___u_c_t___m_d.html#ga8fd8d3ebc188c9016a179d5678c0a71f',1,'uct.h']]], + ['uct_5fmd_5fdetect_5fmemory_5ftype_192',['uct_md_detect_memory_type',['../group___u_c_t___m_d.html#gac69d1df8de5ff0b6422af01c3befe67f',1,'uct.h']]], + ['uct_5fmd_5fiface_5fconfig_5fread_193',['uct_md_iface_config_read',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gace64468ec8d46cbcbcfa6efd74e1148c',1,'uct.h']]], + ['uct_5fmd_5fis_5fsockaddr_5faccessible_194',['uct_md_is_sockaddr_accessible',['../group___u_c_t___m_d.html#ga9d4cd6b6f3206610cbe83cab3eb1e90d',1,'uct.h']]], + ['uct_5fmd_5fmem_5fadvise_195',['uct_md_mem_advise',['../group___u_c_t___m_d.html#gaf5f8ef1c6302792c726b294c84ef06c6',1,'uct.h']]], + ['uct_5fmd_5fmem_5fdereg_196',['uct_md_mem_dereg',['../group___u_c_t___m_d.html#gaf1e9ff0364ec4d2bb05c06a2fab67dd5',1,'uct.h']]], + ['uct_5fmd_5fmem_5fquery_197',['uct_md_mem_query',['../group___u_c_t___m_d.html#ga7d8cf921f8fd8fba4545c568d495bc8f',1,'uct.h']]], + ['uct_5fmd_5fmem_5freg_198',['uct_md_mem_reg',['../group___u_c_t___m_d.html#gadafbaee4d8462954361fd2a41c8069e0',1,'uct.h']]], + ['uct_5fmd_5fmkey_5fpack_199',['uct_md_mkey_pack',['../group___u_c_t___m_d.html#ga91cc404f53a9ef031c7bfbe886c0f414',1,'uct.h']]], + ['uct_5fmd_5fopen_200',['uct_md_open',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga6254b927d3bfcb9699dbf82f0987b9ce',1,'uct.h']]], + ['uct_5fmd_5fquery_201',['uct_md_query',['../group___u_c_t___m_d.html#gae7f6d3f902cff0370fe0f07f841898f1',1,'uct.h']]], + ['uct_5fmd_5fquery_5ftl_5fresources_202',['uct_md_query_tl_resources',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gae4572e36e60bf2665e59cc7ef04bb011',1,'uct.h']]], + ['uct_5fmem_5falloc_203',['uct_mem_alloc',['../group___u_c_t___m_d.html#ga3c91345959561cd033670a9ae527d52f',1,'uct.h']]], + ['uct_5fmem_5ffree_204',['uct_mem_free',['../group___u_c_t___m_d.html#ga55be17fdb04dcf28373bef0ddf423e94',1,'uct.h']]], + ['uct_5fquery_5fcomponents_205',['uct_query_components',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gac11a18f80ae695355914c32095e5c75d',1,'uct.h']]], + ['uct_5frelease_5fcomponent_5flist_206',['uct_release_component_list',['../group___u_c_t___r_e_s_o_u_r_c_e.html#gadd4eea4cf8e757f5ddd2e9edb1942dd0',1,'uct.h']]], + ['uct_5frelease_5ftl_5fresource_5flist_207',['uct_release_tl_resource_list',['../group___u_c_t___r_e_s_o_u_r_c_e.html#ga1edfeac896c9ca285ab11580c904b558',1,'uct.h']]], + ['uct_5frkey_5fptr_208',['uct_rkey_ptr',['../group___u_c_t___m_d.html#ga0d9f92b5814f82afc67c9f4a7ba348e3',1,'uct.h']]], + ['uct_5frkey_5frelease_209',['uct_rkey_release',['../group___u_c_t___m_d.html#gaea26840237c8c112e0c1505c1423cd30',1,'uct.h']]], + ['uct_5frkey_5funpack_210',['uct_rkey_unpack',['../group___u_c_t___m_d.html#ga2927741255a1ab0efc82b965f4266efa',1,'uct.h']]], + ['uct_5fworker_5fcreate_211',['uct_worker_create',['../group___u_c_t___c_o_n_t_e_x_t.html#ga6f21b4dd1dc16d55f4a8e6bf65f8757f',1,'uct.h']]], + ['uct_5fworker_5fdestroy_212',['uct_worker_destroy',['../group___u_c_t___c_o_n_t_e_x_t.html#ga22608452cb78bb1d3c9253860025c4fd',1,'uct.h']]], + ['uct_5fworker_5fprogress_213',['uct_worker_progress',['../group___u_c_t___c_o_n_t_e_x_t.html#ga4ec9fae48afd24d7fa7c5537e76b54e5',1,'uct.h']]], + ['uct_5fworker_5fprogress_5fregister_5fsafe_214',['uct_worker_progress_register_safe',['../group___u_c_t___c_o_n_t_e_x_t.html#ga358ed4a23be49a3c1ace5d78a0b2ee9c',1,'uct.h']]], + ['uct_5fworker_5fprogress_5funregister_5fsafe_215',['uct_worker_progress_unregister_safe',['../group___u_c_t___c_o_n_t_e_x_t.html#ga2dcbb085b3f94e5a2b6771c4cc7bcbbf',1,'uct.h']]] +]; diff --git a/api/v1.17/html/search/groups_0.js b/api/v1.17/html/search/groups_0.js new file mode 100644 index 00000000000..9ac89950e5c --- /dev/null +++ b/api/v1.17/html/search/groups_0.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['access_20operations_0',['UCT Remote memory access operations',['../group___u_c_t___r_m_a.html',1,'']]], + ['active_20messages_1',['UCT Active messages',['../group___u_c_t___a_m.html',1,'']]], + ['and_20capabilities_2',['UCT interface operations and capabilities',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html',1,'']]], + ['api_3',['API',['../group___u_c_p___a_p_i.html',1,'Unified Communication Protocol (UCP) API'],['../group___u_c_s___a_p_i.html',1,'Unified Communication Services (UCS) API'],['../group___u_c_t___a_p_i.html',1,'Unified Communication Transport (UCT) API']]], + ['application_20context_4',['UCP Application Context',['../group___u_c_p___c_o_n_t_e_x_t.html',1,'']]], + ['asynchronous_20event_20capabilities_5',['UCT interface for asynchronous event capabilities',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___e_v_e_n_t___c_a_p.html',1,'']]], + ['atomic_20operations_6',['UCT Atomic operations',['../group___u_c_t___a_m_o.html',1,'']]] +]; diff --git a/api/v1.17/html/search/groups_1.js b/api/v1.17/html/search/groups_1.js new file mode 100644 index 00000000000..d7b29842392 --- /dev/null +++ b/api/v1.17/html/search/groups_1.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['capabilities_0',['capabilities',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___e_v_e_n_t___c_a_p.html',1,'UCT interface for asynchronous event capabilities'],['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html',1,'UCT interface operations and capabilities']]], + ['client_20server_20operations_1',['UCT client-server operations',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html',1,'']]], + ['communication_20context_2',['UCT Communication Context',['../group___u_c_t___c_o_n_t_e_x_t.html',1,'']]], + ['communication_20protocol_20ucp_20api_3',['Unified Communication Protocol (UCP) API',['../group___u_c_p___a_p_i.html',1,'']]], + ['communication_20resource_4',['Communication Resource',['../group___u_c_s___r_e_s_o_u_r_c_e.html',1,'UCS Communication Resource'],['../group___u_c_t___r_e_s_o_u_r_c_e.html',1,'UCT Communication Resource']]], + ['communication_20routines_5',['UCP Communication routines',['../group___u_c_p___c_o_m_m.html',1,'']]], + ['communication_20services_20ucs_20api_6',['Unified Communication Services (UCS) API',['../group___u_c_s___a_p_i.html',1,'']]], + ['communication_20transport_20uct_20api_7',['Unified Communication Transport (UCT) API',['../group___u_c_t___a_p_i.html',1,'']]], + ['configuration_8',['UCP Configuration',['../group___u_c_p___c_o_n_f_i_g.html',1,'']]], + ['context_9',['Context',['../group___u_c_p___c_o_n_t_e_x_t.html',1,'UCP Application Context'],['../group___u_c_t___c_o_n_t_e_x_t.html',1,'UCT Communication Context']]] +]; diff --git a/api/v1.17/html/search/groups_2.js b/api/v1.17/html/search/groups_2.js new file mode 100644 index 00000000000..989d6fd9820 --- /dev/null +++ b/api/v1.17/html/search/groups_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['data_20type_20routines_0',['UCP Data type routines',['../group___u_c_p___d_a_t_a_t_y_p_e.html',1,'']]], + ['domain_1',['UCT Memory Domain',['../group___u_c_t___m_d.html',1,'']]] +]; diff --git a/api/v1.17/html/search/groups_3.js b/api/v1.17/html/search/groups_3.js new file mode 100644 index 00000000000..78d95dc72c1 --- /dev/null +++ b/api/v1.17/html/search/groups_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['endpoint_0',['UCP Endpoint',['../group___u_c_p___e_n_d_p_o_i_n_t.html',1,'']]], + ['event_20capabilities_1',['UCT interface for asynchronous event capabilities',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___e_v_e_n_t___c_a_p.html',1,'']]] +]; diff --git a/api/v1.17/html/search/groups_4.js b/api/v1.17/html/search/groups_4.js new file mode 100644 index 00000000000..a2bb6cf55e2 --- /dev/null +++ b/api/v1.17/html/search/groups_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['for_20asynchronous_20event_20capabilities_0',['UCT interface for asynchronous event capabilities',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___e_v_e_n_t___c_a_p.html',1,'']]] +]; diff --git a/api/v1.17/html/search/groups_5.js b/api/v1.17/html/search/groups_5.js new file mode 100644 index 00000000000..3e039005425 --- /dev/null +++ b/api/v1.17/html/search/groups_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['interface_20for_20asynchronous_20event_20capabilities_0',['UCT interface for asynchronous event capabilities',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___e_v_e_n_t___c_a_p.html',1,'']]], + ['interface_20operations_20and_20capabilities_1',['UCT interface operations and capabilities',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html',1,'']]] +]; diff --git a/api/v1.17/html/search/groups_6.js b/api/v1.17/html/search/groups_6.js new file mode 100644 index 00000000000..a60b46dc105 --- /dev/null +++ b/api/v1.17/html/search/groups_6.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['matching_20operations_0',['UCT Tag matching operations',['../group___u_c_t___t_a_g.html',1,'']]], + ['memory_20access_20operations_1',['UCT Remote memory access operations',['../group___u_c_t___r_m_a.html',1,'']]], + ['memory_20domain_2',['UCT Memory Domain',['../group___u_c_t___m_d.html',1,'']]], + ['memory_20routines_3',['UCP Memory routines',['../group___u_c_p___m_e_m.html',1,'']]], + ['messages_4',['UCT Active messages',['../group___u_c_t___a_m.html',1,'']]] +]; diff --git a/api/v1.17/html/search/groups_7.js b/api/v1.17/html/search/groups_7.js new file mode 100644 index 00000000000..a44a3a5d428 --- /dev/null +++ b/api/v1.17/html/search/groups_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['operations_0',['operations',['../group___u_c_t___a_m_o.html',1,'UCT Atomic operations'],['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html',1,'UCT client-server operations'],['../group___u_c_t___r_m_a.html',1,'UCT Remote memory access operations'],['../group___u_c_t___t_a_g.html',1,'UCT Tag matching operations']]], + ['operations_20and_20capabilities_1',['UCT interface operations and capabilities',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html',1,'']]] +]; diff --git a/api/v1.17/html/search/groups_8.js b/api/v1.17/html/search/groups_8.js new file mode 100644 index 00000000000..a42ff4c8b61 --- /dev/null +++ b/api/v1.17/html/search/groups_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['protocol_20ucp_20api_0',['Unified Communication Protocol (UCP) API',['../group___u_c_p___a_p_i.html',1,'']]] +]; diff --git a/api/v1.17/html/search/groups_9.js b/api/v1.17/html/search/groups_9.js new file mode 100644 index 00000000000..f5c1b9efef1 --- /dev/null +++ b/api/v1.17/html/search/groups_9.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['remote_20memory_20access_20operations_0',['UCT Remote memory access operations',['../group___u_c_t___r_m_a.html',1,'']]], + ['resource_1',['Resource',['../group___u_c_s___r_e_s_o_u_r_c_e.html',1,'UCS Communication Resource'],['../group___u_c_t___r_e_s_o_u_r_c_e.html',1,'UCT Communication Resource']]], + ['routines_2',['routines',['../group___u_c_p___c_o_m_m.html',1,'UCP Communication routines'],['../group___u_c_p___d_a_t_a_t_y_p_e.html',1,'UCP Data type routines'],['../group___u_c_p___m_e_m.html',1,'UCP Memory routines'],['../group___u_c_p___w_a_k_e_u_p.html',1,'UCP Wake-up routines']]] +]; diff --git a/api/v1.17/html/search/groups_a.js b/api/v1.17/html/search/groups_a.js new file mode 100644 index 00000000000..66f7288a3ff --- /dev/null +++ b/api/v1.17/html/search/groups_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['server_20operations_0',['UCT client-server operations',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html',1,'']]], + ['services_20ucs_20api_1',['Unified Communication Services (UCS) API',['../group___u_c_s___a_p_i.html',1,'']]] +]; diff --git a/api/v1.17/html/search/groups_b.js b/api/v1.17/html/search/groups_b.js new file mode 100644 index 00000000000..865de1d375a --- /dev/null +++ b/api/v1.17/html/search/groups_b.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['tag_20matching_20operations_0',['UCT Tag matching operations',['../group___u_c_t___t_a_g.html',1,'']]], + ['transport_20uct_20api_1',['Unified Communication Transport (UCT) API',['../group___u_c_t___a_p_i.html',1,'']]], + ['type_20routines_2',['UCP Data type routines',['../group___u_c_p___d_a_t_a_t_y_p_e.html',1,'']]] +]; diff --git a/api/v1.17/html/search/groups_c.js b/api/v1.17/html/search/groups_c.js new file mode 100644 index 00000000000..f72b45fbff7 --- /dev/null +++ b/api/v1.17/html/search/groups_c.js @@ -0,0 +1,29 @@ +var searchData= +[ + ['ucp_20api_0',['Unified Communication Protocol (UCP) API',['../group___u_c_p___a_p_i.html',1,'']]], + ['ucp_20application_20context_1',['UCP Application Context',['../group___u_c_p___c_o_n_t_e_x_t.html',1,'']]], + ['ucp_20communication_20routines_2',['UCP Communication routines',['../group___u_c_p___c_o_m_m.html',1,'']]], + ['ucp_20configuration_3',['UCP Configuration',['../group___u_c_p___c_o_n_f_i_g.html',1,'']]], + ['ucp_20data_20type_20routines_4',['UCP Data type routines',['../group___u_c_p___d_a_t_a_t_y_p_e.html',1,'']]], + ['ucp_20endpoint_5',['UCP Endpoint',['../group___u_c_p___e_n_d_p_o_i_n_t.html',1,'']]], + ['ucp_20memory_20routines_6',['UCP Memory routines',['../group___u_c_p___m_e_m.html',1,'']]], + ['ucp_20wake_20up_20routines_7',['UCP Wake-up routines',['../group___u_c_p___w_a_k_e_u_p.html',1,'']]], + ['ucp_20worker_8',['UCP Worker',['../group___u_c_p___w_o_r_k_e_r.html',1,'']]], + ['ucs_20api_9',['Unified Communication Services (UCS) API',['../group___u_c_s___a_p_i.html',1,'']]], + ['ucs_20communication_20resource_10',['UCS Communication Resource',['../group___u_c_s___r_e_s_o_u_r_c_e.html',1,'']]], + ['uct_20active_20messages_11',['UCT Active messages',['../group___u_c_t___a_m.html',1,'']]], + ['uct_20api_12',['Unified Communication Transport (UCT) API',['../group___u_c_t___a_p_i.html',1,'']]], + ['uct_20atomic_20operations_13',['UCT Atomic operations',['../group___u_c_t___a_m_o.html',1,'']]], + ['uct_20client_20server_20operations_14',['UCT client-server operations',['../group___u_c_t___c_l_i_e_n_t___s_e_r_v_e_r.html',1,'']]], + ['uct_20communication_20context_15',['UCT Communication Context',['../group___u_c_t___c_o_n_t_e_x_t.html',1,'']]], + ['uct_20communication_20resource_16',['UCT Communication Resource',['../group___u_c_t___r_e_s_o_u_r_c_e.html',1,'']]], + ['uct_20interface_20for_20asynchronous_20event_20capabilities_17',['UCT interface for asynchronous event capabilities',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___e_v_e_n_t___c_a_p.html',1,'']]], + ['uct_20interface_20operations_20and_20capabilities_18',['UCT interface operations and capabilities',['../group___u_c_t___r_e_s_o_u_r_c_e___i_f_a_c_e___c_a_p.html',1,'']]], + ['uct_20memory_20domain_19',['UCT Memory Domain',['../group___u_c_t___m_d.html',1,'']]], + ['uct_20remote_20memory_20access_20operations_20',['UCT Remote memory access operations',['../group___u_c_t___r_m_a.html',1,'']]], + ['uct_20tag_20matching_20operations_21',['UCT Tag matching operations',['../group___u_c_t___t_a_g.html',1,'']]], + ['unified_20communication_20protocol_20ucp_20api_22',['Unified Communication Protocol (UCP) API',['../group___u_c_p___a_p_i.html',1,'']]], + ['unified_20communication_20services_20ucs_20api_23',['Unified Communication Services (UCS) API',['../group___u_c_s___a_p_i.html',1,'']]], + ['unified_20communication_20transport_20uct_20api_24',['Unified Communication Transport (UCT) API',['../group___u_c_t___a_p_i.html',1,'']]], + ['up_20routines_25',['UCP Wake-up routines',['../group___u_c_p___w_a_k_e_u_p.html',1,'']]] +]; diff --git a/api/v1.17/html/search/groups_d.js b/api/v1.17/html/search/groups_d.js new file mode 100644 index 00000000000..133fd0a1eff --- /dev/null +++ b/api/v1.17/html/search/groups_d.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['wake_20up_20routines_0',['UCP Wake-up routines',['../group___u_c_p___w_a_k_e_u_p.html',1,'']]], + ['worker_1',['UCP Worker',['../group___u_c_p___w_o_r_k_e_r.html',1,'']]] +]; diff --git a/api/v1.17/html/search/mag.svg b/api/v1.17/html/search/mag.svg new file mode 100644 index 00000000000..ffb6cf0d025 --- /dev/null +++ b/api/v1.17/html/search/mag.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/api/v1.17/html/search/mag_d.svg b/api/v1.17/html/search/mag_d.svg new file mode 100644 index 00000000000..4122773f92c --- /dev/null +++ b/api/v1.17/html/search/mag_d.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/api/v1.17/html/search/mag_sel.svg b/api/v1.17/html/search/mag_sel.svg new file mode 100644 index 00000000000..553dba87732 --- /dev/null +++ b/api/v1.17/html/search/mag_sel.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/api/v1.17/html/search/mag_seld.svg b/api/v1.17/html/search/mag_seld.svg new file mode 100644 index 00000000000..c906f84c83a --- /dev/null +++ b/api/v1.17/html/search/mag_seld.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/api/v1.17/html/search/pages_0.js b/api/v1.17/html/search/pages_0.js new file mode 100644 index 00000000000..7a9df6fb068 --- /dev/null +++ b/api/v1.17/html/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['and_20notations_0',['Conventions and Notations',['../md_docs_2doxygen_2conventions.html',1,'']]] +]; diff --git a/api/v1.17/html/search/pages_1.js b/api/v1.17/html/search/pages_1.js new file mode 100644 index 00000000000..e2a019ce8e3 --- /dev/null +++ b/api/v1.17/html/search/pages_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['conventions_20and_20notations_0',['Conventions and Notations',['../md_docs_2doxygen_2conventions.html',1,'']]] +]; diff --git a/api/v1.17/html/search/pages_2.js b/api/v1.17/html/search/pages_2.js new file mode 100644 index 00000000000..0811949e9a7 --- /dev/null +++ b/api/v1.17/html/search/pages_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['deprecated_20list_0',['Deprecated List',['../deprecated.html',1,'']]], + ['design_1',['Design',['../md_docs_2doxygen_2design.html',1,'']]] +]; diff --git a/api/v1.17/html/search/pages_3.js b/api/v1.17/html/search/pages_3.js new file mode 100644 index 00000000000..11031df1e66 --- /dev/null +++ b/api/v1.17/html/search/pages_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['introduction_0',['Introduction',['../md_docs_2doxygen_2intro.html',1,'']]] +]; diff --git a/api/v1.17/html/search/pages_4.js b/api/v1.17/html/search/pages_4.js new file mode 100644 index 00000000000..1ad91e39e1a --- /dev/null +++ b/api/v1.17/html/search/pages_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['list_0',['Deprecated List',['../deprecated.html',1,'']]] +]; diff --git a/api/v1.17/html/search/pages_5.js b/api/v1.17/html/search/pages_5.js new file mode 100644 index 00000000000..94702cf24ce --- /dev/null +++ b/api/v1.17/html/search/pages_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['notations_0',['Conventions and Notations',['../md_docs_2doxygen_2conventions.html',1,'']]] +]; diff --git a/api/v1.17/html/search/pages_6.js b/api/v1.17/html/search/pages_6.js new file mode 100644 index 00000000000..2c4263f7323 --- /dev/null +++ b/api/v1.17/html/search/pages_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['preface_0',['Preface',['../index.html',1,'']]] +]; diff --git a/api/v1.17/html/search/search.css b/api/v1.17/html/search/search.css new file mode 100644 index 00000000000..19f76f9d5b9 --- /dev/null +++ b/api/v1.17/html/search/search.css @@ -0,0 +1,291 @@ +/*---------------- Search Box positioning */ + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search box styling */ + +.SRPage * { + font-weight: normal; + line-height: normal; +} + +dark-mode-toggle { + margin-left: 5px; + display: flex; + float: right; +} + +#MSearchBox { + display: inline-block; + white-space : nowrap; + background: var(--search-background-color); + border-radius: 0.65em; + box-shadow: var(--search-box-shadow); + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + width: 20px; + height: 19px; + background-image: var(--search-magnification-select-image); + margin: 0 0 0 0.3em; + padding: 0; +} + +#MSearchSelectExt { + display: inline-block; + vertical-align: middle; + width: 10px; + height: 19px; + background-image: var(--search-magnification-image); + margin: 0 0 0 0.5em; + padding: 0; +} + + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 19px; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: var(--search-foreground-color); + outline: none; + font-family: var(--font-family-search); + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + +@media(hover: none) { + /* to avoid zooming on iOS */ + #MSearchField { + font-size: 16px; + } +} + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: var(--search-active-color); +} + + + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-filter-border-color); + background-color: var(--search-filter-background-color); + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt var(--font-family-search); + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: var(--font-family-monospace); + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: var(--search-filter-foreground-color); + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: var(--search-filter-foreground-color); + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: var(--search-filter-highlight-text-color); + background-color: var(--search-filter-highlight-bg-color); + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + /*width: 60ex;*/ + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-results-border-color); + background-color: var(--search-results-background-color); + z-index:10000; + width: 300px; + height: 400px; + overflow: auto; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +div.SRPage { + margin: 5px 2px; + background-color: var(--search-results-background-color); +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + font-size: 8pt; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: var(--font-family-search); +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: var(--font-family-search); +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: var(--nav-gradient-active-image-parent); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/api/v1.17/html/search/search.js b/api/v1.17/html/search/search.js new file mode 100644 index 00000000000..666af01e5ea --- /dev/null +++ b/api/v1.17/html/search/search.js @@ -0,0 +1,694 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +const SEARCH_COOKIE_NAME = ''+'search_grp'; + +const searchResults = new SearchResults(); + +/* A class handling everything associated with the search panel. + + Parameters: + name - The name of the global variable that will be + storing this instance. Is needed to be able to set timeouts. + resultPath - path to use for external files +*/ +function SearchBox(name, resultsPath, extension) { + if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); } + if (!extension || extension == "") { extension = ".html"; } + + function getXPos(item) { + let x = 0; + if (item.offsetWidth) { + while (item && item!=document.body) { + x += item.offsetLeft; + item = item.offsetParent; + } + } + return x; + } + + function getYPos(item) { + let y = 0; + if (item.offsetWidth) { + while (item && item!=document.body) { + y += item.offsetTop; + item = item.offsetParent; + } + } + return y; + } + + // ---------- Instance variables + this.name = name; + this.resultsPath = resultsPath; + this.keyTimeout = 0; + this.keyTimeoutLength = 500; + this.closeSelectionTimeout = 300; + this.lastSearchValue = ""; + this.lastResultsPage = ""; + this.hideTimeout = 0; + this.searchIndex = 0; + this.searchActive = false; + this.extension = extension; + + // ----------- DOM Elements + + this.DOMSearchField = () => document.getElementById("MSearchField"); + this.DOMSearchSelect = () => document.getElementById("MSearchSelect"); + this.DOMSearchSelectWindow = () => document.getElementById("MSearchSelectWindow"); + this.DOMPopupSearchResults = () => document.getElementById("MSearchResults"); + this.DOMPopupSearchResultsWindow = () => document.getElementById("MSearchResultsWindow"); + this.DOMSearchClose = () => document.getElementById("MSearchClose"); + this.DOMSearchBox = () => document.getElementById("MSearchBox"); + + // ------------ Event Handlers + + // Called when focus is added or removed from the search field. + this.OnSearchFieldFocus = function(isActive) { + this.Activate(isActive); + } + + this.OnSearchSelectShow = function() { + const searchSelectWindow = this.DOMSearchSelectWindow(); + const searchField = this.DOMSearchSelect(); + + const left = getXPos(searchField); + const top = getYPos(searchField) + searchField.offsetHeight; + + // show search selection popup + searchSelectWindow.style.display='block'; + searchSelectWindow.style.left = left + 'px'; + searchSelectWindow.style.top = top + 'px'; + + // stop selection hide timer + if (this.hideTimeout) { + clearTimeout(this.hideTimeout); + this.hideTimeout=0; + } + return false; // to avoid "image drag" default event + } + + this.OnSearchSelectHide = function() { + this.hideTimeout = setTimeout(this.CloseSelectionWindow.bind(this), + this.closeSelectionTimeout); + } + + // Called when the content of the search field is changed. + this.OnSearchFieldChange = function(evt) { + if (this.keyTimeout) { // kill running timer + clearTimeout(this.keyTimeout); + this.keyTimeout = 0; + } + + const e = evt ? evt : window.event; // for IE + if (e.keyCode==40 || e.keyCode==13) { + if (e.shiftKey==1) { + this.OnSearchSelectShow(); + const win=this.DOMSearchSelectWindow(); + for (let i=0;i do a search + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) { + const e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) { // Up + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } else if (e.keyCode==13 || e.keyCode==27) { + e.stopPropagation(); + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() { + this.keyTimeout = 0; + + // strip leading whitespace + const searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + const code = searchValue.toLowerCase().charCodeAt(0); + let idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) { // surrogate pair + idxChar = searchValue.substr(0, 2); + } + + let jsFile; + let idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) { + const hexCode=idx.toString(16); + jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; + } + + const loadJS = function(url, impl, loc) { + const scriptTag = document.createElement('script'); + scriptTag.src = url; + scriptTag.onload = impl; + scriptTag.onreadystatechange = impl; + loc.appendChild(scriptTag); + } + + const domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + const domSearchBox = this.DOMSearchBox(); + const domPopupSearchResults = this.DOMPopupSearchResults(); + const domSearchClose = this.DOMSearchClose(); + const resultsPath = this.resultsPath; + + const handleResults = function() { + document.getElementById("Loading").style.display="none"; + if (typeof searchData !== 'undefined') { + createResults(resultsPath); + document.getElementById("NoMatches").style.display="none"; + } + + if (idx!=-1) { + searchResults.Search(searchValue); + } else { // no file with search results => force empty search results + searchResults.Search('===='); + } + + if (domPopupSearchResultsWindow.style.display!='block') { + domSearchClose.style.display = 'inline-block'; + let left = getXPos(domSearchBox) + 150; + let top = getYPos(domSearchBox) + 20; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + const maxWidth = document.body.clientWidth; + const maxHeight = document.body.clientHeight; + let width = 300; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + let height = 400; + if (height+top+8>maxHeight) height=maxHeight-top-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResultsWindow.style.height = height + 'px'; + } + } + + if (jsFile) { + loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); + } else { + handleResults(); + } + + this.lastSearchValue = searchValue; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) { + this.DOMSearchBox().className = 'MSearchBoxActive'; + this.searchActive = true; + } else if (!isActive) { // directly remove the panel + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + this.DOMSearchField().value = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults() { + + function convertToId(search) { + let result = ''; + for (let i=0;i. + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) { + const parentElement = document.getElementById(id); + let element = parentElement.firstChild; + + while (element && element!=parentElement) { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) { + element = element.firstChild; + } else if (element.nextSibling) { + element = element.nextSibling; + } else { + do { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) { + const element = this.FindChildElement(id); + if (element) { + if (element.style.display == 'block') { + element.style.display = 'none'; + } else { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) { + if (!search) { // get search word from URL + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + const resultRows = document.getElementsByTagName("div"); + let matches = 0; + + let i = 0; + while (i < resultRows.length) { + const row = resultRows.item(i); + if (row.className == "SRResult") { + let rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) { + row.style.display = 'block'; + matches++; + } else { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) { // no results + document.getElementById("NoMatches").style.display='block'; + } else { // at least one result + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) { + let focusItem; + for (;;) { + const focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') { + break; + } else if (!focusItem) { // last element + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) { + let focusItem; + for (;;) { + const focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') { + break; + } else if (!focusItem) { // last element + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) { + if (e.type == "keydown") { + this.repeatOn = false; + this.lastKey = e.keyCode; + } else if (e.type == "keypress") { + if (!this.repeatOn) { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } else if (e.type == "keyup") { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) { + const e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) { // Up + const newIndex = itemIndex-1; + let focusItem = this.NavPrev(newIndex); + if (focusItem) { + let child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') { // children visible + let n=0; + let tmpElem; + for (;;) { // search for last child + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) { + focusItem = tmpElem; + } else { // found it! + break; + } + n++; + } + } + } + if (focusItem) { + focusItem.focus(); + } else { // return focus to search field + document.getElementById("MSearchField").focus(); + } + } else if (this.lastKey==40) { // Down + const newIndex = itemIndex+1; + let focusItem; + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') { // children visible + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } else if (this.lastKey==39) { // Right + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } else if (this.lastKey==37) { // Left + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } else if (this.lastKey==27) { // Escape + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } else if (this.lastKey==13) { // Enter + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) { + const e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) { // Up + if (childIndex>0) { + const newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } else { // already at first child, jump to parent + document.getElementById('Item'+itemIndex).focus(); + } + } else if (this.lastKey==40) { // Down + const newIndex = childIndex+1; + let elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) { // last child, jump to parent next parent + elem = this.NavNext(itemIndex+1); + } + if (elem) { + elem.focus(); + } + } else if (this.lastKey==27) { // Escape + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } else if (this.lastKey==13) { // Enter + return true; + } + return false; + } +} + +function createResults(resultsPath) { + + function setKeyActions(elem,action) { + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); + } + + function setClassAttr(elem,attr) { + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); + } + + const results = document.getElementById("SRResults"); + results.innerHTML = ''; + searchData.forEach((elem,index) => { + const id = elem[0]; + const srResult = document.createElement('div'); + srResult.setAttribute('id','SR_'+id); + setClassAttr(srResult,'SRResult'); + const srEntry = document.createElement('div'); + setClassAttr(srEntry,'SREntry'); + const srLink = document.createElement('a'); + srLink.setAttribute('id','Item'+index); + setKeyActions(srLink,'return searchResults.Nav(event,'+index+')'); + setClassAttr(srLink,'SRSymbol'); + srLink.innerHTML = elem[1][0]; + srEntry.appendChild(srLink); + if (elem[1].length==2) { // single result + srLink.setAttribute('href',resultsPath+elem[1][1][0]); + srLink.setAttribute('onclick','searchBox.CloseResultsWindow()'); + if (elem[1][1][1]) { + srLink.setAttribute('target','_parent'); + } else { + srLink.setAttribute('target','_blank'); + } + const srScope = document.createElement('span'); + setClassAttr(srScope,'SRScope'); + srScope.innerHTML = elem[1][1][2]; + srEntry.appendChild(srScope); + } else { // multiple results + srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")'); + const srChildren = document.createElement('div'); + setClassAttr(srChildren,'SRChildren'); + for (let c=0; c + + + + + + +UCX: status.h Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    UCX 1.17 +
    +
    Unified Communication X
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    status.h
    +
    +
    +
    1
    +
    9#ifndef UCS_TYPES_STATUS_H_
    +
    10#define UCS_TYPES_STATUS_H_
    +
    11
    +
    12#include <ucs/sys/compiler_def.h>
    +
    13
    +
    14BEGIN_C_DECLS
    +
    15
    + +
    87
    +
    88
    +
    89#define UCS_IS_LINK_ERROR(_code) \
    +
    90 (((_code) <= UCS_ERR_FIRST_LINK_FAILURE) && \
    +
    91 ((_code) >= UCS_ERR_LAST_LINK_FAILURE))
    +
    92
    +
    93#define UCS_IS_ENDPOINT_ERROR(_code) \
    +
    94 (((_code) <= UCS_ERR_FIRST_ENDPOINT_FAILURE) && \
    +
    95 ((_code) >= UCS_ERR_LAST_ENDPOINT_FAILURE))
    +
    96
    +
    106typedef void *ucs_status_ptr_t;
    +
    107
    +
    108#define UCS_PTR_IS_ERR(_ptr) (((uintptr_t)(_ptr)) >= ((uintptr_t)UCS_ERR_LAST))
    +
    109#define UCS_PTR_IS_PTR(_ptr) (((uintptr_t)(_ptr) - 1) < ((uintptr_t)UCS_ERR_LAST - 1))
    +
    110#define UCS_PTR_RAW_STATUS(_ptr) ((ucs_status_t)(intptr_t)(_ptr))
    +
    111#define UCS_PTR_STATUS(_ptr) (UCS_PTR_IS_PTR(_ptr) ? UCS_INPROGRESS : UCS_PTR_RAW_STATUS(_ptr))
    +
    112#define UCS_STATUS_PTR(_status) ((void*)(intptr_t)(_status))
    +
    113#define UCS_STATUS_IS_ERR(_status) ((_status) < 0)
    +
    114
    +
    115
    +
    121const char *ucs_status_string(ucs_status_t status);
    +
    122
    +
    123END_C_DECLS
    +
    124
    +
    125#endif
    +
    ucs_status_t
    Status codes.
    Definition status.h:45
    +
    void * ucs_status_ptr_t
    Status pointer.
    Definition status.h:106
    +
    @ UCS_ERR_NOT_CONNECTED
    Definition status.h:76
    +
    @ UCS_OK
    Definition status.h:47
    +
    @ UCS_ERR_NO_MESSAGE
    Definition status.h:53
    +
    @ UCS_ERR_FIRST_ENDPOINT_FAILURE
    Definition status.h:81
    +
    @ UCS_ERR_UNSUPPORTED
    Definition status.h:74
    +
    @ UCS_ERR_TIMED_OUT
    Definition status.h:72
    +
    @ UCS_ERR_BUFFER_TOO_SMALL
    Definition status.h:63
    +
    @ UCS_ERR_BUSY
    Definition status.h:67
    +
    @ UCS_ERR_LAST
    Definition status.h:85
    +
    @ UCS_ERR_CONNECTION_RESET
    Definition status.h:77
    +
    @ UCS_ERR_CANCELED
    Definition status.h:68
    +
    @ UCS_ERR_EXCEEDS_LIMIT
    Definition status.h:73
    +
    @ UCS_ERR_SHMEM_SEGMENT
    Definition status.h:69
    +
    @ UCS_ERR_NOT_IMPLEMENTED
    Definition status.h:60
    +
    @ UCS_INPROGRESS
    Definition status.h:50
    +
    @ UCS_ERR_OUT_OF_RANGE
    Definition status.h:71
    +
    @ UCS_ERR_REJECTED
    Definition status.h:75
    +
    @ UCS_ERR_ALREADY_EXISTS
    Definition status.h:70
    +
    @ UCS_ERR_FIRST_LINK_FAILURE
    Definition status.h:79
    +
    @ UCS_ERR_NO_RESOURCE
    Definition status.h:54
    +
    @ UCS_ERR_NO_MEMORY
    Definition status.h:56
    +
    @ UCS_ERR_LAST_LINK_FAILURE
    Definition status.h:80
    +
    @ UCS_ERR_NO_PROGRESS
    Definition status.h:62
    +
    @ UCS_ERR_LAST_ENDPOINT_FAILURE
    Definition status.h:83
    +
    @ UCS_ERR_SOME_CONNECTS_FAILED
    Definition status.h:65
    +
    @ UCS_ERR_IO_ERROR
    Definition status.h:55
    +
    @ UCS_ERR_INVALID_ADDR
    Definition status.h:59
    +
    @ UCS_ERR_UNREACHABLE
    Definition status.h:58
    +
    @ UCS_ERR_INVALID_PARAM
    Definition status.h:57
    +
    @ UCS_ERR_NO_ELEM
    Definition status.h:64
    +
    @ UCS_ERR_ENDPOINT_TIMEOUT
    Definition status.h:82
    +
    @ UCS_ERR_MESSAGE_TRUNCATED
    Definition status.h:61
    +
    @ UCS_ERR_NO_DEVICE
    Definition status.h:66
    +
    +
    + + + + diff --git a/api/v1.17/html/structucp__generic__dt__ops.html b/api/v1.17/html/structucp__generic__dt__ops.html new file mode 100644 index 00000000000..53d3321313e --- /dev/null +++ b/api/v1.17/html/structucp__generic__dt__ops.html @@ -0,0 +1,143 @@ + + + + + + + +UCX: ucp_generic_dt_ops Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    UCX 1.17 +
    +
    Unified Communication X
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +

    UCP generic data type descriptor. + More...

    + + + + + + + + + + + + + + + + + + + + +

    +Data Fields

    void *(* start_pack )(void *context, const void *buffer, size_t count)
     Start a packing request.
     
    void *(* start_unpack )(void *context, void *buffer, size_t count)
     Start an unpacking request.
     
    size_t(* packed_size )(void *state)
     Get the total size of packed data.
     
    size_t(* pack )(void *state, size_t offset, void *dest, size_t max_length)
     Pack data.
     
    ucs_status_t(* unpack )(void *state, size_t offset, const void *src, size_t length)
     Unpack data.
     
    void(* finish )(void *state)
     Finish packing/unpacking.
     
    +

    Detailed Description

    +

    This structure provides a generic datatype descriptor that is used for definition of application defined datatypes.

    +

    Typically, the descriptor is used for an integration with datatype engines implemented within MPI and SHMEM implementations.

    +
    Note
    In case of partial receive, any amount of received data is acceptable which matches buffer size.
    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/api/v1.17/html/structucp__generic__dt__ops.js b/api/v1.17/html/structucp__generic__dt__ops.js new file mode 100644 index 00000000000..75810745507 --- /dev/null +++ b/api/v1.17/html/structucp__generic__dt__ops.js @@ -0,0 +1,9 @@ +var structucp__generic__dt__ops = +[ + [ "start_pack", "group___u_c_p___d_a_t_a_t_y_p_e.html#ga80d7580ef18274885656e4ab226e7e96", null ], + [ "start_unpack", "group___u_c_p___d_a_t_a_t_y_p_e.html#ga32dc370dd9d442d48409c5ab2518e937", null ], + [ "packed_size", "group___u_c_p___d_a_t_a_t_y_p_e.html#gafa434c93350838be8da6480b2a68f83b", null ], + [ "pack", "group___u_c_p___d_a_t_a_t_y_p_e.html#ga347b6c1b7243047f3e069a70626a1e89", null ], + [ "unpack", "group___u_c_p___d_a_t_a_t_y_p_e.html#gaef4bcfb34731b7f113479b221304b698", null ], + [ "finish", "group___u_c_p___d_a_t_a_t_y_p_e.html#ga09ee4ed178f4c27feec4e37f52a8e17b", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/structuct__tag__context.html b/api/v1.17/html/structuct__tag__context.html new file mode 100644 index 00000000000..21af8f3a33d --- /dev/null +++ b/api/v1.17/html/structuct__tag__context.html @@ -0,0 +1,220 @@ + + + + + + + +UCX: uct_tag_context Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    UCX 1.17 +
    +
    Unified Communication X
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +

    Posted tag context. + More...

    + + + + + + + + + + +

    +Data Fields

    void(* tag_consumed_cb )(uct_tag_context_t *self)
     
    void(* completed_cb )(uct_tag_context_t *self, uct_tag_t stag, uint64_t imm, size_t length, void *inline_data, ucs_status_t status)
     
    void(* rndv_cb )(uct_tag_context_t *self, uct_tag_t stag, const void *header, unsigned header_length, ucs_status_t status, unsigned flags)
     
    char priv [UCT_TAG_PRIV_LEN]
     
    +

    Detailed Description

    +

    Tag context is an object which tracks a tag posted to the transport. It contains callbacks for matching events on this tag.

    +

    Field Documentation

    + +

    ◆ tag_consumed_cb

    + +
    +
    + + + + +
    void(* uct_tag_context::tag_consumed_cb) (uct_tag_context_t *self)
    +
    +

    Tag is consumed by the transport and should not be matched in software.

    +
    Parameters
    + + +
    [in]selfPointer to relevant context structure, which was initially passed to uct_iface_tag_recv_zcopy.
    +
    +
    + +
    +
    + +

    ◆ completed_cb

    + +
    +
    + + + + +
    void(* uct_tag_context::completed_cb) (uct_tag_context_t *self, uct_tag_t stag, uint64_t imm, size_t length, void *inline_data, ucs_status_t status)
    +
    +

    Tag processing is completed by the transport.

    +
    Parameters
    + + + + + + + +
    [in]selfPointer to relevant context structure, which was initially passed to uct_iface_tag_recv_zcopy.
    [in]stagTag from sender.
    [in]immImmediate data from sender. For rendezvous, it's always 0.
    [in]lengthCompleted length.
    [in]inline_dataIf non-null, points to a temporary buffer which contains the received data. In this case the received data was not placed directly in the receive buffer. This callback routine is responsible for copy-out the inline data, otherwise it is released.
    [in]statusCompletion status: (a) UCS_OK - Success, data placed in provided buffer. (b) UCS_ERR_TRUNCATED - Sender's length exceed posted buffer, no data is copied. (c) UCS_ERR_CANCELED - Canceled by user.
    +
    +
    + +
    +
    + +

    ◆ rndv_cb

    + +
    +
    + + + + +
    void(* uct_tag_context::rndv_cb) (uct_tag_context_t *self, uct_tag_t stag, const void *header, unsigned header_length, ucs_status_t status, unsigned flags)
    +
    +

    Tag was matched by a rendezvous request, which should be completed by the protocol layer.

    +
    Parameters
    + + + + + + + +
    [in]selfPointer to relevant context structure, which was initially passed to uct_iface_tag_recv_zcopy.
    [in]stagTag from sender.
    [in]headerUser defined header.
    [in]header_lengthUser defined header length in bytes.
    [in]statusCompletion status.
    [in]flagsFlags defined by UCT_TAG_RECV_CB_xx.
    +
    +
    + +
    +
    + +

    ◆ priv

    + +
    +
    + + + + +
    char uct_tag_context::priv[UCT_TAG_PRIV_LEN]
    +
    +

    A placeholder for the private data used by the transport

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/api/v1.17/html/structuct__tag__context.js b/api/v1.17/html/structuct__tag__context.js new file mode 100644 index 00000000000..e178cafae11 --- /dev/null +++ b/api/v1.17/html/structuct__tag__context.js @@ -0,0 +1,7 @@ +var structuct__tag__context = +[ + [ "tag_consumed_cb", "structuct__tag__context.html#a860b64e8963cbf48fb192045ec2d6689", null ], + [ "completed_cb", "structuct__tag__context.html#a8a872809ba82414123000deeb3f8dd2f", null ], + [ "rndv_cb", "structuct__tag__context.html#a64008d8faf823d5d2be97cb16854c308", null ], + [ "priv", "structuct__tag__context.html#a50355288112c6e3218f9b63f3b49be91", null ] +]; \ No newline at end of file diff --git a/api/v1.17/html/sync_off.png b/api/v1.17/html/sync_off.png new file mode 100644 index 00000000000..3b443fc6289 Binary files /dev/null and b/api/v1.17/html/sync_off.png differ diff --git a/api/v1.17/html/sync_on.png b/api/v1.17/html/sync_on.png new file mode 100644 index 00000000000..e08320fb64e Binary files /dev/null and b/api/v1.17/html/sync_on.png differ diff --git a/api/v1.17/html/tab_a.png b/api/v1.17/html/tab_a.png new file mode 100644 index 00000000000..3b725c41c5a Binary files /dev/null and b/api/v1.17/html/tab_a.png differ diff --git a/api/v1.17/html/tab_ad.png b/api/v1.17/html/tab_ad.png new file mode 100644 index 00000000000..e34850acfc2 Binary files /dev/null and b/api/v1.17/html/tab_ad.png differ diff --git a/api/v1.17/html/tab_b.png b/api/v1.17/html/tab_b.png new file mode 100644 index 00000000000..e2b4a8638cb Binary files /dev/null and b/api/v1.17/html/tab_b.png differ diff --git a/api/v1.17/html/tab_bd.png b/api/v1.17/html/tab_bd.png new file mode 100644 index 00000000000..91c25249869 Binary files /dev/null and b/api/v1.17/html/tab_bd.png differ diff --git a/api/v1.17/html/tab_h.png b/api/v1.17/html/tab_h.png new file mode 100644 index 00000000000..fd5cb705488 Binary files /dev/null and b/api/v1.17/html/tab_h.png differ diff --git a/api/v1.17/html/tab_hd.png b/api/v1.17/html/tab_hd.png new file mode 100644 index 00000000000..2489273d4ce Binary files /dev/null and b/api/v1.17/html/tab_hd.png differ diff --git a/api/v1.17/html/tab_s.png b/api/v1.17/html/tab_s.png new file mode 100644 index 00000000000..ab478c95b67 Binary files /dev/null and b/api/v1.17/html/tab_s.png differ diff --git a/api/v1.17/html/tab_sd.png b/api/v1.17/html/tab_sd.png new file mode 100644 index 00000000000..757a565ced4 Binary files /dev/null and b/api/v1.17/html/tab_sd.png differ diff --git a/api/v1.17/html/tabs.css b/api/v1.17/html/tabs.css new file mode 100644 index 00000000000..fe4854aa504 --- /dev/null +++ b/api/v1.17/html/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}} \ No newline at end of file diff --git a/api/v1.17/html/thread__mode_8h_source.html b/api/v1.17/html/thread__mode_8h_source.html new file mode 100644 index 00000000000..c827eda15c3 --- /dev/null +++ b/api/v1.17/html/thread__mode_8h_source.html @@ -0,0 +1,145 @@ + + + + + + + +UCX: thread_mode.h Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    UCX 1.17 +
    +
    Unified Communication X
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    thread_mode.h
    +
    +
    +
    1/*
    +
    2* Copyright (c) NVIDIA CORPORATION & AFFILIATES, 2001-2015. ALL RIGHTS RESERVED.
    +
    3* Copyright (C) The University of Tennessee and The University
    +
    4* of Tennessee Research Foundation. 2015. ALL RIGHTS RESERVED.
    +
    5*
    +
    6* See file LICENSE for terms.
    +
    7*/
    +
    8
    +
    9#ifndef UCS_TYPE_THREAD_MODE_H
    +
    10#define UCS_TYPE_THREAD_MODE_H
    +
    11
    +
    12
    + +
    25
    +
    26
    +
    27extern const char *ucs_thread_mode_names[];
    +
    28
    +
    29
    +
    30#endif
    +
    ucs_thread_mode_t
    Thread sharing mode.
    Definition thread_mode.h:19
    +
    @ UCS_THREAD_MODE_MULTI
    Definition thread_mode.h:22
    +
    @ UCS_THREAD_MODE_SERIALIZED
    Definition thread_mode.h:21
    +
    @ UCS_THREAD_MODE_SINGLE
    Definition thread_mode.h:20
    +
    @ UCS_THREAD_MODE_LAST
    Definition thread_mode.h:23
    +
    +
    + + + + diff --git a/api/v1.17/html/time__def_8h_source.html b/api/v1.17/html/time__def_8h_source.html new file mode 100644 index 00000000000..ed32c350e68 --- /dev/null +++ b/api/v1.17/html/time__def_8h_source.html @@ -0,0 +1,128 @@ + + + + + + + +UCX: time_def.h Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    UCX 1.17 +
    +
    Unified Communication X
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    time_def.h
    +
    +
    +
    1
    +
    7#ifndef UCS_TIME_DEF_H
    +
    8#define UCS_TIME_DEF_H
    +
    9
    +
    10#include <ucs/sys/compiler_def.h>
    +
    11
    +
    12BEGIN_C_DECLS
    +
    13
    +
    23typedef unsigned long ucs_time_t;
    +
    24
    +
    25END_C_DECLS
    +
    26
    +
    27#endif /* UCS_TIME_DEF_H */
    +
    unsigned long ucs_time_t
    Definition time_def.h:23
    +
    +
    + + + + diff --git a/api/v1.17/html/types_8h_source.html b/api/v1.17/html/types_8h_source.html new file mode 100644 index 00000000000..910204fce44 --- /dev/null +++ b/api/v1.17/html/types_8h_source.html @@ -0,0 +1,246 @@ + + + + + + + +UCX: types.h Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    UCX 1.17 +
    +
    Unified Communication X
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    types.h
    +
    +
    +
    1
    +
    7#ifndef UCS_CONFIG_TYPES_H
    +
    8#define UCS_CONFIG_TYPES_H
    +
    9
    +
    10#include <ucs/sys/compiler_def.h>
    +
    11#include <sys/socket.h>
    +
    12
    +
    16typedef enum {
    +
    17 UCS_LOG_LEVEL_FATAL, /* Immediate termination */
    +
    18 UCS_LOG_LEVEL_ERROR, /* Error is returned to the user */
    +
    19 UCS_LOG_LEVEL_WARN, /* Something's wrong, but we continue */
    +
    20 UCS_LOG_LEVEL_DIAG, /* Diagnostics, silent adjustments or internal error handling */
    +
    21 UCS_LOG_LEVEL_INFO, /* Information */
    +
    22 UCS_LOG_LEVEL_DEBUG, /* Low-volume debugging */
    +
    23 UCS_LOG_LEVEL_TRACE, /* High-volume debugging */
    +
    24 UCS_LOG_LEVEL_TRACE_REQ, /* Every send/receive request */
    +
    25 UCS_LOG_LEVEL_TRACE_DATA, /* Data sent/received on the transport */
    +
    26 UCS_LOG_LEVEL_TRACE_ASYNC, /* Asynchronous progress engine */
    +
    27 UCS_LOG_LEVEL_TRACE_FUNC, /* Function calls */
    +
    28 UCS_LOG_LEVEL_TRACE_POLL, /* Polling functions */
    +
    29 UCS_LOG_LEVEL_LAST,
    +
    30 UCS_LOG_LEVEL_PRINT /* Temporary output */
    +
    31} ucs_log_level_t;
    +
    32
    +
    33
    +
    37typedef enum {
    +
    38 UCS_ASYNC_MODE_SIGNAL,
    +
    39 UCS_ASYNC_MODE_THREAD, /* Deprecated, keep for backward compatibility */
    +
    40 UCS_ASYNC_MODE_THREAD_SPINLOCK = UCS_ASYNC_MODE_THREAD,
    +
    41 UCS_ASYNC_MODE_THREAD_MUTEX,
    +
    42 UCS_ASYNC_MODE_POLL, /* TODO keep only in debug version */
    +
    43 UCS_ASYNC_MODE_LAST
    +
    44} ucs_async_mode_t;
    +
    45
    +
    46
    +
    47extern const char *ucs_async_mode_names[];
    +
    48
    +
    49
    +
    53typedef enum ucs_ternary_auto_value {
    +
    54 UCS_NO = 0,
    +
    55 UCS_YES = 1,
    +
    56 UCS_TRY = 2,
    +
    57 UCS_AUTO = 3,
    +
    58 UCS_TERNARY_LAST
    +
    59} ucs_ternary_auto_value_t;
    +
    60
    +
    61
    +
    65typedef enum ucs_on_off_auto_value {
    +
    66 UCS_CONFIG_OFF = 0,
    +
    67 UCS_CONFIG_ON = 1,
    +
    68 UCS_CONFIG_AUTO = 2,
    +
    69 UCS_CONFIG_ON_OFF_LAST
    +
    70} ucs_on_off_auto_value_t;
    +
    71
    +
    72
    +
    76typedef enum {
    +
    77 UCS_HANDLE_ERROR_BACKTRACE, /* Print backtrace */
    +
    78 UCS_HANDLE_ERROR_FREEZE, /* Freeze and wait for a debugger */
    +
    79 UCS_HANDLE_ERROR_DEBUG, /* Attach debugger */
    +
    80 UCS_HANDLE_ERROR_NONE, /* Do not take any action */
    +
    81 UCS_HANDLE_ERROR_LAST
    +
    82} ucs_handle_error_t;
    +
    83
    +
    84
    +
    88typedef enum {
    +
    89 UCS_CONFIG_PRINT_CONFIG = UCS_BIT(0),
    +
    90 UCS_CONFIG_PRINT_HEADER = UCS_BIT(1),
    +
    91 UCS_CONFIG_PRINT_DOC = UCS_BIT(2),
    +
    92 UCS_CONFIG_PRINT_HIDDEN = UCS_BIT(3),
    +
    93 UCS_CONFIG_PRINT_COMMENT_DEFAULT = UCS_BIT(4)
    +
    94} ucs_config_print_flags_t;
    +
    95
    +
    96
    +
    101#define UCS_CONFIG_ARRAY_FIELD(_type, _array_name) \
    +
    102 struct { \
    +
    103 _type *_array_name; \
    +
    104 unsigned count; \
    +
    105 unsigned pad; \
    +
    106 }
    +
    107
    +
    108
    +
    109/* Specific structure for an array of strings */
    +
    110#define UCS_CONFIG_STRING_ARRAY_FIELD(_array_name) \
    +
    111 UCS_CONFIG_ARRAY_FIELD(char*, _array_name)
    +
    112
    +
    113
    +
    114typedef UCS_CONFIG_STRING_ARRAY_FIELD(names) ucs_config_names_array_t;
    +
    115
    +
    116
    +
    120typedef enum {
    +
    121 UCS_CONFIG_ALLOW_LIST_ALLOW_ALL, /* Allow all possible options */
    +
    122 UCS_CONFIG_ALLOW_LIST_ALLOW, /* Allow only the specified options */
    +
    123 UCS_CONFIG_ALLOW_LIST_NEGATE /* Negate (forbid) the specified options */
    +
    124} ucs_config_allow_list_mode_t;
    +
    125
    +
    126
    +
    +
    127typedef struct {
    +
    128 ucs_config_names_array_t array;
    +
    129 ucs_config_allow_list_mode_t mode;
    + +
    +
    131
    +
    132
    +
    +
    137typedef struct ucs_sock_addr {
    +
    138 const struct sockaddr *addr;
    +
    139 socklen_t addrlen;
    + +
    +
    141
    +
    142
    +
    + +
    147 ucs_log_level_t log_level;
    +
    148 char name[16];
    +
    149 const char *file_filter; /* glob pattern of source files */
    + +
    +
    151
    +
    152#endif /* TYPES_H_ */
    +
    const struct sockaddr * addr
    Definition types.h:138
    +
    socklen_t addrlen
    Definition types.h:139
    +
    struct ucs_sock_addr ucs_sock_addr_t
    +
    Definition types.h:137
    +
    ucs_config_names_array_t array
    Definition types.h:128
    +
    ucs_config_allow_list_mode_t mode
    Definition types.h:129
    +
    const char * file_filter
    Definition types.h:149
    +
    char name[16]
    Definition types.h:148
    +
    ucs_log_level_t log_level
    Definition types.h:147
    +
    Definition types.h:127
    +
    Definition types.h:146
    +
    +
    + + + + diff --git a/api/v1.17/html/ucp_8h_source.html b/api/v1.17/html/ucp_8h_source.html new file mode 100644 index 00000000000..703bc1e1e0d --- /dev/null +++ b/api/v1.17/html/ucp_8h_source.html @@ -0,0 +1,1621 @@ + + + + + + + +UCX: ucp.h Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    UCX 1.17 +
    +
    Unified Communication X
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    ucp.h
    +
    +
    +
    1/*
    +
    2* Copyright (c) NVIDIA CORPORATION & AFFILIATES, 2001-2020. ALL RIGHTS RESERVED.
    +
    3* Copyright (C) UT-Battelle, LLC. 2014-2017. ALL RIGHTS RESERVED.
    +
    4* Copyright (C) ARM Ltd. 2016-2017. ALL RIGHTS RESERVED.
    +
    5* Copyright (C) Los Alamos National Security, LLC. 2018 ALL RIGHTS RESERVED.
    +
    6* See file LICENSE for terms.
    +
    7*/
    +
    8
    +
    9#ifndef UCP_H_
    +
    10#define UCP_H_
    +
    11
    +
    12#include <ucp/api/ucp_def.h>
    +
    13#include <ucp/api/ucp_compat.h>
    +
    14#include <ucp/api/ucp_version.h>
    +
    15#include <ucs/type/thread_mode.h>
    +
    16#include <ucs/type/cpu_set.h>
    +
    17#include <ucs/config/types.h>
    +
    18#include <ucs/sys/compiler_def.h>
    +
    19#include <ucs/memory/memory_type.h>
    +
    20#include <stdio.h>
    +
    21#include <sys/types.h>
    +
    22
    +
    23BEGIN_C_DECLS
    +
    24
    + +
    130
    +
    131
    +
    + +
    142 UCP_FEATURE_TAG = UCS_BIT(0),
    +
    143
    +
    145 UCP_FEATURE_RMA = UCS_BIT(1),
    +
    146
    +
    148 UCP_FEATURE_AMO32 = UCS_BIT(2),
    +
    149
    +
    151 UCP_FEATURE_AMO64 = UCS_BIT(3),
    +
    152
    +
    154 UCP_FEATURE_WAKEUP = UCS_BIT(4),
    +
    155
    +
    157 UCP_FEATURE_STREAM = UCS_BIT(5),
    +
    158
    +
    160 UCP_FEATURE_AM = UCS_BIT(6),
    +
    161
    +
    167 UCP_FEATURE_EXPORTED_MEMH = UCS_BIT(7)
    + +
    +
    169
    +
    170
    + +
    191
    +
    192
    +
    +
    200typedef enum {
    + + +
    +
    204
    +
    205
    + +
    228
    +
    229
    +
    +
    238typedef enum {
    +
    239
    + + +
    +
    245
    +
    246
    + +
    269
    +
    270
    + +
    305
    +
    306
    +
    +
    313typedef enum {
    +
    314 UCP_EP_CLOSE_FLAG_FORCE = UCS_BIT(0)
    + +
    +
    336
    +
    337
    + +
    350
    +
    351
    + +
    364
    +
    365
    + +
    397
    + +
    410
    +
    411
    + +
    423
    +
    424
    + +
    438
    +
    439
    + +
    457
    +
    458
    + +
    470
    +
    471
    + +
    482
    +
    483
    + +
    495
    +
    496
    + +
    514
    +
    515
    + +
    533
    +
    534
    +
    542enum {
    + +
    549
    + +
    556
    +
    561 UCP_MEM_MAP_FIXED = UCS_BIT(2),
    +
    562
    +
    570 UCP_MEM_MAP_SYMMETRIC_RKEY = UCS_BIT(3)
    + +
    572
    +
    573
    +
    581enum {
    + + + + + +
    587
    +
    588
    +
    + + +
    600
    +
    607 UCP_AM_FLAG_PERSISTENT_DATA = UCS_BIT(1)
    + +
    +
    609
    +
    610
    +
    + + +
    623
    + +
    628
    + +
    633
    + +
    641
    + + +
    +
    647
    +
    648
    +
    + +
    660 UCP_CB_PARAM_FLAG_DATA = UCS_BIT(0)
    + +
    +
    662
    +
    663
    + +
    680
    +
    681
    +
    +
    688typedef enum {
    +
    689 UCP_STREAM_RECV_FLAG_WAITALL = UCS_BIT(0)
    + +
    +
    696
    +
    697
    + +
    744
    +
    745
    + +
    759
    +
    760
    +
    +
    769typedef enum {
    + + +
    780
    +
    788 UCP_AM_RECV_ATTR_FLAG_RNDV = UCS_BIT(17)
    + +
    +
    790
    +
    791
    + +
    817
    +
    818
    +
    +
    833#define ucp_dt_make_contig(_elem_size) \
    +
    834 (((ucp_datatype_t)(_elem_size) << UCP_DATATYPE_SHIFT) | UCP_DATATYPE_CONTIG)
    +
    +
    835
    +
    836
    +
    850#define ucp_dt_make_iov() ((ucp_datatype_t)UCP_DATATYPE_IOV)
    +
    851
    +
    852
    +
    +
    864typedef struct ucp_dt_iov {
    +
    865 void *buffer;
    +
    866 size_t length;
    + +
    +
    868
    +
    869
    +
    +
    883typedef struct ucp_generic_dt_ops {
    +
    884
    +
    899 void* (*start_pack)(void *context, const void *buffer, size_t count);
    +
    900
    +
    915 void* (*start_unpack)(void *context, void *buffer, size_t count);
    +
    916
    +
    930 size_t (*packed_size)(void *state);
    +
    931
    +
    948 size_t (*pack) (void *state, size_t offset, void *dest, size_t max_length);
    +
    949
    +
    965 ucs_status_t (*unpack)(void *state, size_t offset, const void *src, size_t length);
    +
    966
    +
    981 void (*finish)(void *state);
    + +
    +
    983
    +
    984
    +
    +
    991typedef struct ucp_datatype_attr {
    +
    997 uint64_t field_mask;
    +
    998
    + +
    1003
    +
    1010 const void *buffer;
    +
    1011
    +
    1018 size_t count;
    + +
    +
    1020
    +
    1021
    +
    +
    1035typedef struct ucp_params {
    +
    1041 uint64_t field_mask;
    +
    1042
    +
    1049 uint64_t features;
    +
    1050
    + +
    1060
    + +
    1072
    + +
    1083
    + +
    1090
    + +
    1106
    + +
    1117
    + +
    1127
    +
    1136 const char *name;
    + +
    +
    1138
    +
    1139
    + +
    1164
    +
    1165
    +
    +
    1173typedef struct ucp_context_attr {
    +
    1180 uint64_t field_mask;
    +
    1181
    + +
    1188
    + +
    1194
    + +
    1200
    + + +
    +
    1206
    +
    1207
    +
    +
    1215typedef struct ucp_worker_attr {
    +
    1222 uint64_t field_mask;
    +
    1223
    + +
    1228
    + +
    1236
    + +
    1245
    + +
    1250
    + +
    1255
    + +
    1260
    + + +
    +
    1266
    +
    1267
    + +
    1284
    +
    1285
    +
    +
    1293typedef struct ucp_worker_params {
    +
    1299 uint64_t field_mask;
    +
    1300
    + +
    1314
    +
    1322 ucs_cpu_set_t cpu_mask;
    +
    1323
    +
    1331 unsigned events;
    +
    1332
    + +
    1340
    + +
    1357
    +
    1364 uint64_t flags;
    +
    1365
    +
    1374 const char *name;
    +
    1375
    + +
    1382
    +
    1389 uint64_t client_id;
    + +
    +
    1391
    +
    1392
    +
    + +
    1406 uint64_t field_mask;
    +
    1407
    +
    1411 uint64_t worker_uid;
    + +
    +
    1413
    +
    1414
    +
    +
    1422typedef struct {
    +
    1429 uint64_t field_mask;
    +
    1430
    + + +
    +
    1437
    +
    1438
    +
    +
    1446typedef struct {
    +
    1453 uint64_t field_mask;
    +
    1454
    + + +
    +
    1462
    +
    +
    1470typedef struct ucp_listener_attr {
    +
    1477 uint64_t field_mask;
    +
    1478
    +
    1483 struct sockaddr_storage sockaddr;
    + +
    +
    1485
    +
    1486
    +
    + +
    1501 uint64_t field_mask;
    +
    1502
    +
    1507 struct sockaddr_storage client_address;
    +
    1508
    +
    1513 uint64_t client_id;
    + +
    +
    1515
    +
    1516
    + +
    1563
    +
    1564
    +
    +
    1571typedef struct ucp_stream_poll_ep {
    + +
    1576
    + +
    1582
    +
    1586 unsigned flags;
    +
    1587
    +
    1591 uint8_t reserved[16];
    + +
    +
    1593
    +
    1594
    +
    +
    1602typedef struct ucp_mem_map_params {
    +
    1609 uint64_t field_mask;
    +
    1610
    +
    1621 void *address;
    +
    1622
    +
    1630 size_t length;
    +
    1631
    +
    1639 unsigned flags;
    +
    1640
    +
    1648 unsigned prot;
    +
    1649
    +
    1650 /*
    +
    1651 * Memory type (for possible memory types see @ref ucs_memory_type_t)
    +
    1652 * It is an optimization hint to avoid memory type detection for map buffer.
    +
    1653 * The meaning of this field depends on the operation type.
    +
    1654 *
    +
    1655 * - Memory allocation: (@ref UCP_MEM_MAP_ALLOCATE flag is set) This field
    +
    1656 * specifies the type of memory to allocate. If it's not set (along with its
    +
    1657 * corresponding bit in the field_mask - @ref UCP_MEM_MAP_PARAM_FIELD_MEMORY_TYPE),
    +
    1658 * @ref UCS_MEMORY_TYPE_HOST will be assumed by default.
    +
    1659 *
    +
    1660 * - Memory registration: This field specifies the type of memory which is
    +
    1661 * pointed by @ref ucp_mem_map_params.address. If it's not set (along with its
    +
    1662 * corresponding bit in the field_mask - @ref UCP_MEM_MAP_PARAM_FIELD_MEMORY_TYPE),
    +
    1663 * or set to @ref UCS_MEMORY_TYPE_UNKNOWN, the memory type will be detected
    +
    1664 * internally.
    +
    1665 */
    + +
    1667
    + + +
    +
    1682
    +
    1683
    +
    + + +
    1697 size_t length;
    +
    1698};
    +
    +
    1699
    +
    1700
    +
    +
    1741typedef struct {
    + +
    1748
    +
    1749 /* Operation specific flags. */
    +
    1750 uint32_t flags;
    +
    1751
    +
    1758 void *request;
    +
    1759
    +
    +
    1764 union {
    + + + + +
    1769 } cb;
    +
    +
    1770
    + +
    1777
    + +
    1782
    + +
    1788
    + +
    1797
    +
    +
    1804 union {
    +
    1805 size_t *length; /* Length of received message in bytes.
    +
    1806 Relevant for non-tagged receive
    +
    1807 operations. */
    +
    1808 ucp_tag_recv_info_t *tag_info; /* Information about received message.
    +
    1809 Relevant for @a ucp_tag_recv_nbx
    +
    1810 function. */
    +
    1811 } recv_info;
    +
    +
    1812
    + +
    1821
    + +
    +
    1823
    +
    1824
    +
    +
    1829typedef struct {
    +
    1835 uint64_t field_mask;
    +
    1836
    + +
    1843
    + +
    1850
    + +
    1855
    + + +
    +
    1861
    +
    1862
    +
    +
    1868typedef struct ucp_am_handler_param {
    +
    1874 uint64_t field_mask;
    +
    1875
    +
    1879 unsigned id;
    +
    1880
    +
    1884 uint32_t flags;
    +
    1885
    + +
    1891
    +
    1896 void *arg;
    + +
    +
    1898
    +
    1899
    +
    + +
    1910 uint64_t recv_attr;
    +
    1911
    + +
    1916};
    +
    +
    1917
    +
    1918
    + +
    1930
    +
    1931
    +
    1958ucs_status_t ucp_config_read(const char *env_prefix, const char *filename,
    +
    1959 ucp_config_t **config_p);
    +
    1960
    +
    1961
    + +
    1973
    +
    1974
    + +
    1989 const char *value);
    +
    1990
    +
    1991
    +
    2007void ucp_config_print(const ucp_config_t *config, FILE *stream,
    +
    2008 const char *title, ucs_config_print_flags_t print_flags);
    +
    2009
    +
    2010
    +
    2021void ucp_get_version(unsigned *major_version, unsigned *minor_version,
    +
    2022 unsigned *release_number);
    +
    2023
    +
    2024
    +
    2032const char *ucp_get_version_string(void);
    +
    2033
    +
    2034
    +
    2043ucs_status_t ucp_init_version(unsigned api_major_version, unsigned api_minor_version,
    +
    2044 const ucp_params_t *params, const ucp_config_t *config,
    +
    2045 ucp_context_h *context_p);
    +
    +
    2084static inline ucs_status_t ucp_init(const ucp_params_t *params,
    +
    2085 const ucp_config_t *config,
    +
    2086 ucp_context_h *context_p)
    +
    2087{
    +
    2088 return ucp_init_version(UCP_API_MAJOR, UCP_API_MINOR, params, config,
    +
    2089 context_p);
    +
    2090}
    +
    +
    2091
    +
    2092
    + +
    2111
    +
    2112
    + +
    2127 ucp_context_attr_t *attr);
    +
    2128
    +
    2129
    + + +
    2152 const ucp_rkey_compare_params_t *params, int *result);
    +
    2153
    +
    2154
    +
    2166void ucp_context_print_info(const ucp_context_h context, FILE *stream);
    +
    2167
    +
    2168
    + +
    2193 const ucp_worker_params_t *params,
    +
    2194 ucp_worker_h *worker_p);
    +
    2195
    +
    2196
    + +
    2213
    +
    2214
    + +
    2227 ucp_worker_attr_t *attr);
    +
    2228
    +
    2229
    +
    2240void ucp_worker_print_info(ucp_worker_h worker, FILE *stream);
    +
    2241
    +
    2242
    + +
    2263
    +
    2264
    + + +
    2279
    +
    2280
    + +
    2301
    +
    2302
    + +
    2324 ucp_stream_poll_ep_t *poll_eps, size_t max_eps,
    +
    2325 unsigned flags);
    +
    2326
    +
    2327
    + +
    2359
    +
    2360
    + +
    2390
    +
    2391
    +
    2415void ucp_worker_wait_mem(ucp_worker_h worker, void *address);
    +
    2416
    +
    2417
    + +
    2488
    +
    2489
    + +
    2509
    +
    2510
    + +
    2537 const ucp_listener_params_t *params,
    +
    2538 ucp_listener_h *listener_p);
    +
    2539
    +
    2540
    + +
    2551
    +
    2552
    + +
    2565
    +
    2566
    + + +
    2581
    +
    2582
    + +
    2593
    +
    2594
    + +
    2628 ucp_ep_h *ep_p);
    +
    2629
    +
    2630
    + +
    2654 const ucp_request_param_t *param);
    +
    2655
    +
    2656
    + +
    2674 ucp_conn_request_h conn_request);
    +
    2675
    +
    2676
    +
    2687void ucp_ep_print_info(ucp_ep_h ep, FILE *stream);
    +
    2688
    +
    2689
    + +
    2739
    +
    2740
    + +
    2755 const ucp_ep_evaluate_perf_param_t *param,
    + +
    2757
    +
    2758
    + +
    2834 ucp_mem_h *memh_p);
    +
    2835
    +
    2836
    + +
    2865
    +
    2866
    + +
    2881
    +
    2882
    +
    2899void ucp_mem_print_info(const char *mem_spec, ucp_context_h context,
    +
    2900 FILE *stream);
    +
    2901
    +
    2902
    + +
    2917
    +
    2918
    +
    + +
    2933 uint64_t field_mask;
    +
    2934
    +
    2938 void *address;
    +
    2939
    +
    2943 size_t length;
    +
    2944
    + + +
    +
    2950
    +
    2951
    + +
    2972 ucp_mem_advise_params_t *params);
    +
    2973
    +
    2974
    + +
    2990
    +
    2991
    +
    + +
    3008 UCP_MEMH_PACK_FLAG_EXPORT = UCS_BIT(0)
    + +
    +
    3010
    +
    3011
    +
    +
    3020typedef struct ucp_memh_pack_params {
    +
    3026 uint64_t field_mask;
    +
    3027
    +
    3031 uint64_t flags;
    + +
    +
    3033
    +
    3034
    + + +
    3070 void **buffer_p, size_t *buffer_size_p);
    +
    3071
    +
    3072
    + +
    3089
    +
    3090
    +
    3109void ucp_memh_buffer_release(void *buffer,
    +
    3110 const ucp_memh_buffer_release_params_t *params);
    +
    3111
    +
    3112
    +
    3135ucs_status_t ucp_ep_rkey_unpack(ucp_ep_h ep, const void *rkey_buffer,
    +
    3136 ucp_rkey_h *rkey_p);
    +
    3137
    +
    3138
    +
    3158ucs_status_t ucp_rkey_ptr(ucp_rkey_h rkey, uint64_t raddr, void **addr_p);
    +
    3159
    +
    3160
    + +
    3183
    +
    3184
    + +
    3206 const ucp_am_handler_param_t *param);
    +
    3207
    +
    3208
    + +
    3262 const void *header, size_t header_length,
    +
    3263 const void *buffer, size_t count,
    +
    3264 const ucp_request_param_t *param);
    +
    3265
    +
    3266
    + +
    3314 void *buffer, size_t count,
    +
    3315 const ucp_request_param_t *param);
    +
    3316
    +
    3317
    +
    3330void ucp_am_data_release(ucp_worker_h worker, void *data);
    +
    3331
    +
    3332
    +
    3359ucs_status_ptr_t ucp_stream_send_nbx(ucp_ep_h ep, const void *buffer, size_t count,
    +
    3360 const ucp_request_param_t *param);
    +
    3361
    +
    3362
    +
    3401ucs_status_ptr_t ucp_tag_send_nbx(ucp_ep_h ep, const void *buffer, size_t count,
    +
    3402 ucp_tag_t tag, const ucp_request_param_t *param);
    +
    3403
    +
    3404
    + +
    3434 size_t count, ucp_tag_t tag,
    +
    3435 const ucp_request_param_t *param);
    +
    3436
    +
    3437
    +
    3473ucs_status_ptr_t ucp_stream_recv_nbx(ucp_ep_h ep, void *buffer, size_t count,
    +
    3474 size_t *length,
    +
    3475 const ucp_request_param_t *param);
    +
    3476
    +
    3477
    + +
    3511
    +
    3512
    +
    3550ucs_status_ptr_t ucp_tag_recv_nbx(ucp_worker_h worker, void *buffer, size_t count,
    +
    3551 ucp_tag_t tag, ucp_tag_t tag_mask,
    +
    3552 const ucp_request_param_t *param);
    +
    3553
    +
    3554
    + +
    3596 ucp_tag_t tag_mask, int remove,
    +
    3597 ucp_tag_recv_info_t *info);
    +
    3598
    +
    3599
    + +
    3631 size_t count, ucp_tag_message_h message,
    +
    3632 const ucp_request_param_t *param);
    +
    3633
    +
    3634
    +
    3688ucs_status_ptr_t ucp_put_nbx(ucp_ep_h ep, const void *buffer, size_t count,
    +
    3689 uint64_t remote_addr, ucp_rkey_h rkey,
    +
    3690 const ucp_request_param_t *param);
    +
    3691
    +
    3692
    +
    3745ucs_status_ptr_t ucp_get_nbx(ucp_ep_h ep, void *buffer, size_t count,
    +
    3746 uint64_t remote_addr, ucp_rkey_h rkey,
    +
    3747 const ucp_request_param_t *param);
    +
    3748
    +
    3749
    + +
    3817ucp_atomic_op_nbx(ucp_ep_h ep, ucp_atomic_op_t opcode, const void *buffer,
    +
    3818 size_t count, uint64_t remote_addr, ucp_rkey_h rkey,
    +
    3819 const ucp_request_param_t *param);
    +
    3820
    +
    3821
    + +
    3835
    +
    3836
    + +
    3854
    +
    3855
    +
    3873ucs_status_t ucp_stream_recv_request_test(void *request, size_t *length_p);
    +
    3874
    +
    3875
    +
    3895void ucp_request_cancel(ucp_worker_h worker, void *request);
    +
    3896
    +
    3897
    + +
    3911
    +
    3912
    +
    3924void ucp_request_free(void *request);
    +
    3925
    +
    3926
    + +
    3941
    +
    3942
    + +
    3966 ucp_datatype_t *datatype_p);
    +
    3967
    +
    3968
    + +
    3985
    +
    3986
    + +
    4001
    +
    4002
    + +
    4026
    +
    4027
    + +
    4054 const ucp_request_param_t *param);
    +
    4055
    +
    4056
    + +
    4070
    +
    4071
    +
    +
    4079typedef struct ucp_ep_attr {
    +
    4086 uint64_t field_mask;
    +
    4087
    + +
    4093
    +
    4100 struct sockaddr_storage local_sockaddr;
    +
    4101
    +
    4108 struct sockaddr_storage remote_sockaddr;
    +
    4109
    + +
    4116
    + +
    +
    4118
    +
    4119
    + +
    4132
    +
    4133
    +
    4142END_C_DECLS
    +
    4143
    +
    4144#endif
    +
    uint64_t field_mask
    Definition ucp.h:1835
    +
    ucs_status_t status
    Definition ucp.h:1854
    +
    ucs_memory_type_t mem_type
    Definition ucp.h:1859
    +
    size_t debug_string_size
    Definition ucp.h:1849
    +
    char * debug_string
    Definition ucp.h:1842
    +
    ucs_status_ptr_t ucp_atomic_op_nbx(ucp_ep_h ep, ucp_atomic_op_t opcode, const void *buffer, size_t count, uint64_t remote_addr, ucp_rkey_h rkey, const ucp_request_param_t *param)
    Post an atomic memory operation.
    +
    ucs_status_ptr_t ucp_tag_send_sync_nbx(ucp_ep_h ep, const void *buffer, size_t count, ucp_tag_t tag, const ucp_request_param_t *param)
    Non-blocking synchronous tagged-send operation.
    +
    void ucp_request_free(void *request)
    Release a communications request.
    +
    void ucp_stream_data_release(ucp_ep_h ep, void *data)
    Release UCP data buffer returned by ucp_stream_recv_data_nb.
    +
    void(* ucp_am_recv_data_nbx_callback_t)(void *request, ucs_status_t status, size_t length, void *user_data)
    Completion callback for non-blocking Active Message receives.
    Definition ucp_def.h:540
    +
    ucs_status_ptr_t ucp_put_nbx(ucp_ep_h ep, const void *buffer, size_t count, uint64_t remote_addr, ucp_rkey_h rkey, const ucp_request_param_t *param)
    Non-blocking remote memory put operation.
    +
    ucs_status_ptr_t ucp_stream_recv_nbx(ucp_ep_h ep, void *buffer, size_t count, size_t *length, const ucp_request_param_t *param)
    Non-blocking stream receive operation of structured data into a user-supplied buffer.
    +
    void ucp_request_cancel(ucp_worker_h worker, void *request)
    Cancel an outstanding communications request.
    +
    ucp_tag_message_h ucp_tag_probe_nb(ucp_worker_h worker, ucp_tag_t tag, ucp_tag_t tag_mask, int remove, ucp_tag_recv_info_t *info)
    Non-blocking probe and return a message.
    +
    void ucp_am_data_release(ucp_worker_h worker, void *data)
    Releases Active Message data.
    +
    ucs_status_ptr_t ucp_stream_recv_data_nb(ucp_ep_h ep, size_t *length)
    Non-blocking stream receive operation of unstructured data into a UCP-supplied buffer.
    +
    ucp_am_recv_attr_t
    UCP AM receive data parameter fields and flags.
    Definition ucp.h:769
    +
    ucs_status_ptr_t ucp_tag_msg_recv_nbx(ucp_worker_h worker, void *buffer, size_t count, ucp_tag_message_h message, const ucp_request_param_t *param)
    Non-blocking receive operation for a probed message.
    +
    ucs_status_ptr_t ucp_am_send_nbx(ucp_ep_h ep, unsigned id, const void *header, size_t header_length, const void *buffer, size_t count, const ucp_request_param_t *param)
    Send Active Message.
    +
    ucs_status_t ucp_stream_recv_request_test(void *request, size_t *length_p)
    Check the status and currently available state of non-blocking request returned from ucp_stream_recv_...
    +
    uint64_t ucp_tag_t
    UCP Tag Identifier.
    Definition ucp_def.h:257
    +
    ucp_atomic_op_t
    Atomic operation requested for ucp_atomic_op_nbx.
    Definition ucp.h:671
    +
    ucp_op_attr_t
    UCP operation fields and flags.
    Definition ucp.h:706
    +
    struct ucp_recv_desc * ucp_tag_message_h
    UCP Message descriptor.
    Definition ucp_def.h:268
    +
    ucs_status_t ucp_tag_recv_request_test(void *request, ucp_tag_recv_info_t *info)
    Check the status and currently available state of non-blocking request returned from ucp_tag_recv_nb ...
    +
    void(* ucp_tag_recv_nbx_callback_t)(void *request, ucs_status_t status, const ucp_tag_recv_info_t *tag_info, void *user_data)
    Completion callback for non-blocking tag receives ucp_tag_recv_nbx call.
    Definition ucp_def.h:518
    +
    ucs_status_ptr_t ucp_tag_send_nbx(ucp_ep_h ep, const void *buffer, size_t count, ucp_tag_t tag, const ucp_request_param_t *param)
    Non-blocking tagged-send operation.
    +
    void * ucp_request_alloc(ucp_worker_h worker)
    Create an empty communications request.
    +
    ucs_status_ptr_t ucp_get_nbx(ucp_ep_h ep, void *buffer, size_t count, uint64_t remote_addr, ucp_rkey_h rkey, const ucp_request_param_t *param)
    Non-blocking remote memory get operation.
    +
    ucs_status_ptr_t ucp_tag_recv_nbx(ucp_worker_h worker, void *buffer, size_t count, ucp_tag_t tag, ucp_tag_t tag_mask, const ucp_request_param_t *param)
    Non-blocking tagged-receive operation.
    +
    ucp_req_attr_field
    UCP request query attributes.
    Definition ucp.h:753
    +
    ucp_stream_recv_flags_t
    Flags to define behavior of ucp_stream_recv_nb function.
    Definition ucp.h:688
    +
    ucs_status_t ucp_request_check_status(void *request)
    Check the status of non-blocking request.
    +
    uint64_t ucp_datatype_t
    UCP Datatype Identifier.
    Definition ucp_def.h:278
    +
    ucs_status_ptr_t ucp_stream_send_nbx(ucp_ep_h ep, const void *buffer, size_t count, const ucp_request_param_t *param)
    Non-blocking stream send operation.
    +
    ucp_am_handler_param_field
    UCP AM receive data parameters fields and flags.
    Definition ucp.h:799
    +
    void(* ucp_send_nbx_callback_t)(void *request, ucs_status_t status, void *user_data)
    Completion callback for non-blocking sends.
    Definition ucp_def.h:340
    +
    ucs_status_ptr_t ucp_am_recv_data_nbx(ucp_worker_h worker, void *data_desc, void *buffer, size_t count, const ucp_request_param_t *param)
    Receive Active Message as defined by provided data descriptor.
    +
    void(* ucp_stream_recv_nbx_callback_t)(void *request, ucs_status_t status, size_t length, void *user_data)
    Completion callback for non-blocking stream receives ucp_stream_recv_nbx call.
    Definition ucp_def.h:470
    +
    ucs_status_t ucp_request_query(void *request, ucp_request_attr_t *attr)
    Get information about ucp_request.
    +
    @ UCP_AM_RECV_ATTR_FIELD_REPLY_EP
    Definition ucp.h:770
    +
    @ UCP_AM_RECV_ATTR_FLAG_DATA
    Definition ucp.h:779
    +
    @ UCP_AM_RECV_ATTR_FLAG_RNDV
    Definition ucp.h:788
    +
    @ UCP_ATOMIC_OP_LAST
    Definition ucp.h:678
    +
    @ UCP_ATOMIC_OP_ADD
    Definition ucp.h:672
    +
    @ UCP_ATOMIC_OP_OR
    Definition ucp.h:676
    +
    @ UCP_ATOMIC_OP_XOR
    Definition ucp.h:677
    +
    @ UCP_ATOMIC_OP_AND
    Definition ucp.h:675
    +
    @ UCP_ATOMIC_OP_CSWAP
    Definition ucp.h:674
    +
    @ UCP_ATOMIC_OP_SWAP
    Definition ucp.h:673
    +
    @ UCP_OP_ATTR_FIELD_FLAGS
    Definition ucp.h:711
    +
    @ UCP_OP_ATTR_FIELD_DATATYPE
    Definition ucp.h:710
    +
    @ UCP_OP_ATTR_FLAG_MULTI_SEND
    Definition ucp.h:737
    +
    @ UCP_OP_ATTR_FLAG_FAST_CMPL
    Definition ucp.h:723
    +
    @ UCP_OP_ATTR_FIELD_CALLBACK
    Definition ucp.h:708
    +
    @ UCP_OP_ATTR_FIELD_MEMORY_TYPE
    Definition ucp.h:713
    +
    @ UCP_OP_ATTR_FIELD_MEMH
    Definition ucp.h:715
    +
    @ UCP_OP_ATTR_FLAG_NO_IMM_CMPL
    Definition ucp.h:717
    +
    @ UCP_OP_ATTR_FIELD_REPLY_BUFFER
    Definition ucp.h:712
    +
    @ UCP_OP_ATTR_FIELD_RECV_INFO
    Definition ucp.h:714
    +
    @ UCP_OP_ATTR_FIELD_REQUEST
    Definition ucp.h:707
    +
    @ UCP_OP_ATTR_FLAG_FORCE_IMM_CMPL
    Definition ucp.h:733
    +
    @ UCP_OP_ATTR_FIELD_USER_DATA
    Definition ucp.h:709
    +
    @ UCP_REQUEST_ATTR_FIELD_INFO_STRING
    Definition ucp.h:754
    +
    @ UCP_REQUEST_ATTR_FIELD_MEM_TYPE
    Definition ucp.h:757
    +
    @ UCP_REQUEST_ATTR_FIELD_STATUS
    Definition ucp.h:756
    +
    @ UCP_REQUEST_ATTR_FIELD_INFO_STRING_SIZE
    Definition ucp.h:755
    +
    @ UCP_STREAM_RECV_FLAG_WAITALL
    Definition ucp.h:689
    +
    @ UCP_AM_HANDLER_PARAM_FIELD_ARG
    Definition ucp.h:815
    +
    @ UCP_AM_HANDLER_PARAM_FIELD_ID
    Definition ucp.h:803
    +
    @ UCP_AM_HANDLER_PARAM_FIELD_CB
    Definition ucp.h:811
    +
    @ UCP_AM_HANDLER_PARAM_FIELD_FLAGS
    Definition ucp.h:807
    +
    Attributes of a particular request.
    Definition ucp.h:1829
    +
    size_t request_size
    Definition ucp.h:1059
    +
    size_t estimated_num_eps
    Definition ucp.h:1116
    +
    uint64_t field_mask
    Definition ucp.h:1041
    +
    uint64_t tag_sender_mask
    Definition ucp.h:1089
    +
    size_t estimated_num_ppn
    Definition ucp.h:1126
    +
    const char * name
    Definition ucp.h:1136
    +
    ucp_request_init_callback_t request_init
    Definition ucp.h:1071
    +
    int mt_workers_shared
    Definition ucp.h:1105
    +
    ucp_request_cleanup_callback_t request_cleanup
    Definition ucp.h:1082
    +
    uint64_t features
    Definition ucp.h:1049
    +
    void ucp_config_release(ucp_config_t *config)
    Release configuration descriptor.
    +
    void ucp_config_print(const ucp_config_t *config, FILE *stream, const char *title, ucs_config_print_flags_t print_flags)
    Print configuration information.
    +
    struct ucp_params ucp_params_t
    Tuning parameters for UCP library.
    +
    ucs_status_t ucp_config_modify(ucp_config_t *config, const char *name, const char *value)
    Modify context configuration.
    +
    ucs_status_t ucp_config_read(const char *env_prefix, const char *filename, ucp_config_t **config_p)
    Read UCP configuration descriptor.
    +
    struct ucp_config ucp_config_t
    UCP configuration descriptor.
    Definition ucp_def.h:77
    +
    Tuning parameters for UCP library.
    Definition ucp.h:1035
    +
    ucp_tag_t sender_tag
    Definition ucp.h:1695
    +
    ucp_datatype_t datatype
    Definition ucp.h:1776
    +
    ucs_thread_mode_t max_thread_level
    Definition ucp.h:1162
    +
    ucs_thread_mode_t thread_mode
    Definition ucp.h:1193
    +
    uint64_t field_mask
    Definition ucp.h:1153
    +
    ucs_memory_type_t memory_type
    Definition ucp.h:1796
    +
    uint32_t flags
    Definition ucp.h:1750
    +
    uint64_t memory_types
    Definition ucp.h:1199
    +
    size_t length
    Definition ucp.h:1697
    +
    void * request
    Definition ucp.h:1758
    +
    ucp_mem_h memh
    Definition ucp.h:1820
    +
    char name[UCP_ENTITY_NAME_MAX]
    Definition ucp.h:1204
    +
    uint32_t op_attr_mask
    Definition ucp.h:1747
    +
    size_t request_size
    Definition ucp.h:1187
    +
    void * user_data
    Definition ucp.h:1781
    +
    void * reply_buffer
    Definition ucp.h:1787
    +
    uint64_t field_mask
    Definition ucp.h:1180
    +
    struct ucp_lib_attr ucp_lib_attr_t
    Lib attributes.
    +
    void(* ucp_request_init_callback_t)(void *request)
    Request initialization callback.
    Definition ucp_def.h:289
    +
    struct ucp_context * ucp_context_h
    UCP Application Context.
    Definition ucp_def.h:60
    +
    ucp_lib_attr_field
    UCP library attributes field mask.
    Definition ucp.h:419
    +
    ucs_status_t ucp_context_query(ucp_context_h context_p, ucp_context_attr_t *attr)
    Get attributes specific to a particular context.
    +
    static ucs_status_t ucp_init(const ucp_params_t *params, const ucp_config_t *config, ucp_context_h *context_p)
    UCP context initialization.
    Definition ucp.h:2084
    +
    ucp_context_attr_field
    UCP context attributes field mask.
    Definition ucp.h:432
    +
    ucs_status_t ucp_lib_query(ucp_lib_attr_t *attr)
    Get attributes of the UCP library.
    +
    struct ucp_context_attr ucp_context_attr_t
    Context attributes.
    +
    void ucp_context_print_info(const ucp_context_h context, FILE *stream)
    Print context information.
    +
    void(* ucp_request_cleanup_callback_t)(void *request)
    Request cleanup callback.
    Definition ucp_def.h:301
    +
    void ucp_cleanup(ucp_context_h context_p)
    Release UCP application context.
    +
    ucp_params_field
    UCP context parameters field mask.
    Definition ucp.h:119
    +
    ucp_feature
    UCP configuration features.
    Definition ucp.h:140
    +
    #define UCP_ENTITY_NAME_MAX
    Maximum size of the UCP entity name in structure of entity attributes provided by a query method.
    Definition ucp_def.h:772
    +
    void ucp_get_version(unsigned *major_version, unsigned *minor_version, unsigned *release_number)
    Get UCP library version.
    +
    const char * ucp_get_version_string(void)
    Get UCP library version as a string.
    +
    @ UCP_LIB_ATTR_FIELD_MAX_THREAD_LEVEL
    Definition ucp.h:421
    +
    @ UCP_ATTR_FIELD_MEMORY_TYPES
    Definition ucp.h:435
    +
    @ UCP_ATTR_FIELD_NAME
    Definition ucp.h:436
    +
    @ UCP_ATTR_FIELD_REQUEST_SIZE
    Definition ucp.h:433
    +
    @ UCP_ATTR_FIELD_THREAD_MODE
    Definition ucp.h:434
    +
    @ UCP_PARAM_FIELD_TAG_SENDER_MASK
    Definition ucp.h:124
    +
    @ UCP_PARAM_FIELD_ESTIMATED_NUM_PPN
    Definition ucp.h:127
    +
    @ UCP_PARAM_FIELD_FEATURES
    Definition ucp.h:120
    +
    @ UCP_PARAM_FIELD_ESTIMATED_NUM_EPS
    Definition ucp.h:126
    +
    @ UCP_PARAM_FIELD_REQUEST_SIZE
    Definition ucp.h:121
    +
    @ UCP_PARAM_FIELD_NAME
    Definition ucp.h:128
    +
    @ UCP_PARAM_FIELD_REQUEST_CLEANUP
    Definition ucp.h:123
    +
    @ UCP_PARAM_FIELD_MT_WORKERS_SHARED
    Definition ucp.h:125
    +
    @ UCP_PARAM_FIELD_REQUEST_INIT
    Definition ucp.h:122
    +
    @ UCP_FEATURE_STREAM
    Definition ucp.h:157
    +
    @ UCP_FEATURE_TAG
    Definition ucp.h:142
    +
    @ UCP_FEATURE_AM
    Definition ucp.h:160
    +
    @ UCP_FEATURE_AMO32
    Definition ucp.h:148
    +
    @ UCP_FEATURE_WAKEUP
    Definition ucp.h:154
    +
    @ UCP_FEATURE_AMO64
    Definition ucp.h:151
    +
    @ UCP_FEATURE_RMA
    Definition ucp.h:145
    +
    @ UCP_FEATURE_EXPORTED_MEMH
    Definition ucp.h:167
    +
    Context attributes.
    Definition ucp.h:1173
    +
    Lib attributes.
    Definition ucp.h:1146
    +
    Operation parameters passed to ucp_tag_send_nbx, ucp_tag_send_sync_nbx, ucp_tag_recv_nbx,...
    Definition ucp.h:1741
    +
    UCP receive information descriptor.
    Definition ucp.h:1693
    +
    size_t count
    Definition ucp.h:1018
    +
    const void * buffer
    Definition ucp.h:1010
    +
    size_t packed_size
    Definition ucp.h:1002
    +
    uint64_t field_mask
    Definition ucp.h:997
    +
    void * buffer
    Definition ucp.h:865
    +
    size_t length
    Definition ucp.h:866
    +
    void ucp_dt_destroy(ucp_datatype_t datatype)
    Destroy a datatype and release its resources.
    +
    void(* finish)(void *state)
    Finish packing/unpacking.
    Definition ucp.h:981
    +
    ucs_status_t ucp_dt_query(ucp_datatype_t datatype, ucp_datatype_attr_t *attr)
    Query attributes of a datatype.
    +
    size_t(* pack)(void *state, size_t offset, void *dest, size_t max_length)
    Pack data.
    Definition ucp.h:948
    +
    ucp_dt_type
    UCP data type classification.
    Definition ucp.h:503
    +
    struct ucp_datatype_attr ucp_datatype_attr_t
    UCP datatype attributes.
    +
    struct ucp_dt_iov ucp_dt_iov_t
    Structure for scatter-gather I/O.
    +
    struct ucp_generic_dt_ops ucp_generic_dt_ops_t
    UCP generic data type descriptor.
    +
    ucp_datatype_attr_field
    UCP datatype attributes field mask.
    Definition ucp.h:523
    +
    ucs_status_t ucp_dt_create_generic(const ucp_generic_dt_ops_t *ops, void *context, ucp_datatype_t *datatype_p)
    Create a generic datatype.
    +
    ucs_status_t(* unpack)(void *state, size_t offset, const void *src, size_t length)
    Unpack data.
    Definition ucp.h:965
    +
    size_t(* packed_size)(void *state)
    Get the total size of packed data.
    Definition ucp.h:930
    +
    @ UCP_DATATYPE_IOV
    Definition ucp.h:506
    +
    @ UCP_DATATYPE_CONTIG
    Definition ucp.h:504
    +
    @ UCP_DATATYPE_SHIFT
    Definition ucp.h:509
    +
    @ UCP_DATATYPE_CLASS_MASK
    Definition ucp.h:511
    +
    @ UCP_DATATYPE_STRIDED
    Definition ucp.h:505
    +
    @ UCP_DATATYPE_GENERIC
    Definition ucp.h:507
    +
    @ UCP_DATATYPE_ATTR_FIELD_BUFFER
    Definition ucp.h:528
    +
    @ UCP_DATATYPE_ATTR_FIELD_PACKED_SIZE
    Definition ucp.h:525
    +
    @ UCP_DATATYPE_ATTR_FIELD_COUNT
    Definition ucp.h:531
    +
    UCP datatype attributes.
    Definition ucp.h:991
    +
    Structure for scatter-gather I/O.
    Definition ucp.h:864
    +
    uint8_t reserved[16]
    Definition ucp.h:1591
    +
    unsigned flags
    Definition ucp.h:1586
    +
    void * user_data
    Definition ucp.h:1581
    +
    ucp_transports_t transports
    Definition ucp.h:4115
    +
    uint64_t field_mask
    Definition ucp.h:1453
    +
    uint64_t field_mask
    Definition ucp.h:4086
    +
    struct sockaddr_storage remote_sockaddr
    Definition ucp.h:4108
    +
    ucp_ep_h ep
    Definition ucp.h:1575
    +
    size_t message_size
    Definition ucp.h:1435
    +
    double estimated_time
    Definition ucp.h:1460
    +
    char name[UCP_ENTITY_NAME_MAX]
    Definition ucp.h:4092
    +
    struct sockaddr_storage local_sockaddr
    Definition ucp.h:4100
    +
    uint64_t field_mask
    Definition ucp.h:1429
    +
    enum ucp_ep_perf_attr_field ucp_ep_perf_attr_field_t
    UCP performance fields and flags.
    +
    struct ucp_conn_request * ucp_conn_request_h
    UCP connection request.
    Definition ucp_def.h:102
    +
    ucs_status_ptr_t ucp_ep_flush_nbx(ucp_ep_h ep, const ucp_request_param_t *param)
    Non-blocking flush of outstanding AMO and RMA operations on the endpoint.
    +
    ucp_ep_params_flags_field
    UCP endpoint parameters flags.
    Definition ucp.h:278
    +
    ucp_cb_param_flags
    Descriptor flags for Active Message callback.
    Definition ucp.h:659
    +
    ucp_ep_perf_param_field
    UCP performance fields and flags.
    Definition ucp.h:346
    +
    ucs_status_t ucp_ep_query(ucp_ep_h ep, ucp_ep_attr_t *attr)
    Get attributes of a given endpoint.
    +
    ucs_status_t ucp_ep_evaluate_perf(ucp_ep_h ep, const ucp_ep_evaluate_perf_param_t *param, ucp_ep_evaluate_perf_attr_t *attr)
    Estimate performance characteristics of a specific endpoint.
    +
    ucs_status_ptr_t ucp_ep_close_nbx(ucp_ep_h ep, const ucp_request_param_t *param)
    Non-blocking endpoint closure.
    +
    ucs_status_t ucp_ep_create(ucp_worker_h worker, const ucp_ep_params_t *params, ucp_ep_h *ep_p)
    Create and connect an endpoint.
    +
    ucp_ep_perf_attr_field
    UCP performance fields and flags.
    Definition ucp.h:360
    +
    enum ucp_ep_perf_param_field ucp_ep_perf_param_field_t
    UCP performance fields and flags.
    +
    struct ucp_ep * ucp_ep_h
    UCP Endpoint.
    Definition ucp_def.h:92
    +
    ucp_ep_attr_field
    UCP endpoint attributes field mask.
    Definition ucp.h:4064
    +
    ucs_status_t(* ucp_am_recv_callback_t)(void *arg, const void *header, size_t header_length, void *data, size_t length, const ucp_am_recv_param_t *param)
    Callback to process incoming Active Message sent by ucp_am_send_nbx routine.
    Definition ucp_def.h:670
    +
    ucp_ep_params_field
    UCP endpoint parameters field mask.
    Definition ucp.h:254
    +
    struct ucp_stream_poll_ep ucp_stream_poll_ep_t
    Output parameter of ucp_stream_worker_poll function.
    +
    void ucp_ep_print_info(ucp_ep_h ep, FILE *stream)
    Print endpoint information.
    +
    ucp_ep_close_flags_t
    Close UCP endpoint modes.
    Definition ucp.h:313
    +
    struct ucp_ep_attr ucp_ep_attr_t
    UCP endpoint attributes.
    +
    @ UCP_EP_PARAMS_FLAGS_NO_LOOPBACK
    Definition ucp.h:287
    +
    @ UCP_EP_PARAMS_FLAGS_CLIENT_SERVER
    Definition ucp.h:279
    +
    @ UCP_EP_PARAMS_FLAGS_SEND_CLIENT_ID
    Definition ucp.h:296
    +
    @ UCP_CB_PARAM_FLAG_DATA
    Definition ucp.h:660
    +
    @ UCP_EP_PERF_PARAM_FIELD_MESSAGE_SIZE
    Definition ucp.h:348
    +
    @ UCP_EP_PERF_ATTR_FIELD_ESTIMATED_TIME
    Definition ucp.h:362
    +
    @ UCP_EP_ATTR_FIELD_TRANSPORTS
    Definition ucp.h:4068
    +
    @ UCP_EP_ATTR_FIELD_LOCAL_SOCKADDR
    Definition ucp.h:4066
    +
    @ UCP_EP_ATTR_FIELD_REMOTE_SOCKADDR
    Definition ucp.h:4067
    +
    @ UCP_EP_ATTR_FIELD_NAME
    Definition ucp.h:4065
    +
    @ UCP_EP_PARAM_FIELD_ERR_HANDLING_MODE
    Definition ucp.h:257
    +
    @ UCP_EP_PARAM_FIELD_FLAGS
    Definition ucp.h:263
    +
    @ UCP_EP_PARAM_FIELD_SOCK_ADDR
    Definition ucp.h:262
    +
    @ UCP_EP_PARAM_FIELD_CONN_REQUEST
    Definition ucp.h:265
    +
    @ UCP_EP_PARAM_FIELD_NAME
    Definition ucp.h:266
    +
    @ UCP_EP_PARAM_FIELD_ERR_HANDLER
    Definition ucp.h:259
    +
    @ UCP_EP_PARAM_FIELD_LOCAL_SOCK_ADDR
    Definition ucp.h:267
    +
    @ UCP_EP_PARAM_FIELD_REMOTE_ADDRESS
    Definition ucp.h:255
    +
    @ UCP_EP_PARAM_FIELD_USER_DATA
    Definition ucp.h:261
    +
    @ UCP_EP_CLOSE_FLAG_FORCE
    Definition ucp.h:314
    +
    UCP endpoint attributes.
    Definition ucp.h:4079
    +
    UCP endpoint performance evaluation result attributes.
    Definition ucp.h:1446
    +
    UCP endpoint performance evaluation request attributes.
    Definition ucp.h:1422
    +
    Tuning parameters for the UCP endpoint.
    Definition ucp_def.h:683
    +
    Output parameter of ucp_stream_worker_poll function.
    Definition ucp.h:1571
    +
    Structure containing an array of transport layers and device names used by an endpoint.
    Definition ucp_def.h:846
    +
    uint64_t field_mask
    Definition ucp.h:2933
    +
    ucp_mem_advice_t advice
    Definition ucp.h:2948
    +
    uint64_t field_mask
    Definition ucp.h:3087
    +
    size_t length
    Definition ucp.h:2943
    +
    size_t length
    Definition ucp.h:1630
    +
    uint64_t flags
    Definition ucp.h:3031
    +
    unsigned flags
    Definition ucp.h:1639
    +
    ucs_memory_type_t memory_type
    Definition ucp.h:1666
    +
    uint64_t field_mask
    Definition ucp.h:1282
    +
    uint64_t field_mask
    Definition ucp.h:1609
    +
    uint64_t field_mask
    Definition ucp.h:3026
    +
    void * address
    Definition ucp.h:2938
    +
    void * address
    Definition ucp.h:1621
    +
    const void * exported_memh_buffer
    Definition ucp.h:1680
    +
    unsigned prot
    Definition ucp.h:1648
    +
    ucs_status_t ucp_mem_query(const ucp_mem_h memh, ucp_mem_attr_t *attr)
    query mapped memory segment
    +
    struct ucp_mem_map_params ucp_mem_map_params_t
    Tuning parameters for the UCP memory mapping.
    +
    ucp_mem_advice
    list of UCP memory use advice.
    Definition ucp.h:2910
    +
    ucs_status_t ucp_mem_map(ucp_context_h context, const ucp_mem_map_params_t *params, ucp_mem_h *memh_p)
    Map or allocate memory for zero-copy operations.
    +
    ucp_mem_map_params_field
    UCP memory mapping parameters field mask.
    Definition ucp.h:373
    +
    struct ucp_memh_buffer_release_params ucp_memh_buffer_release_params_t
    Memory handle release parameters passed to ucp_memh_buffer_release.
    +
    struct ucp_rkey_compare_params ucp_rkey_compare_params_t
    Tuning parameters for the comparison function ucp_rkey_compare.
    +
    void ucp_mem_print_info(const char *mem_spec, ucp_context_h context, FILE *stream)
    Print memory mapping information.
    +
    struct ucp_mem_advise_params ucp_mem_advise_params_t
    Tuning parameters for the UCP memory advice.
    +
    ucp_mem_advise_params_field
    UCP memory advice parameters field mask.
    Definition ucp.h:405
    +
    struct ucp_memh_pack_params ucp_memh_pack_params_t
    Memory handle pack parameters passed to ucp_memh_pack.
    +
    ucs_status_t ucp_mem_advise(ucp_context_h context, ucp_mem_h memh, ucp_mem_advise_params_t *params)
    give advice about the use of memory
    +
    enum ucp_mem_advice ucp_mem_advice_t
    list of UCP memory use advice.
    +
    ucs_status_t ucp_rkey_ptr(ucp_rkey_h rkey, uint64_t raddr, void **addr_p)
    Get a local pointer to remote memory.
    +
    ucp_memh_pack_flags
    UCP memory handle flags.
    Definition ucp.h:2999
    +
    ucs_status_t ucp_memh_pack(ucp_mem_h memh, const ucp_memh_pack_params_t *params, void **buffer_p, size_t *buffer_size_p)
    Pack a memory handle to a buffer specified by the user.
    +
    ucp_memh_pack_params_field
    UCP memory handle packing parameters field mask.
    Definition ucp.h:2983
    +
    ucs_status_t ucp_ep_rkey_unpack(ucp_ep_h ep, const void *rkey_buffer, ucp_rkey_h *rkey_p)
    Create remote access key from packed buffer.
    +
    void ucp_memh_buffer_release(void *buffer, const ucp_memh_buffer_release_params_t *params)
    Release packed memory handle buffer.
    +
    ucs_status_t ucp_mem_unmap(ucp_context_h context, ucp_mem_h memh)
    Unmap memory segment.
    +
    struct ucp_mem * ucp_mem_h
    UCP Memory handle.
    Definition ucp_def.h:167
    +
    void ucp_rkey_destroy(ucp_rkey_h rkey)
    Destroy the remote key.
    +
    ucs_status_t ucp_rkey_compare(ucp_worker_h worker, ucp_rkey_h rkey1, ucp_rkey_h rkey2, const ucp_rkey_compare_params_t *params, int *result)
    Compare two remote keys.
    +
    struct ucp_rkey * ucp_rkey_h
    UCP Remote memory handle.
    Definition ucp_def.h:152
    +
    @ UCP_MEM_MAP_NONBLOCK
    Definition ucp.h:548
    +
    @ UCP_MEM_MAP_SYMMETRIC_RKEY
    Definition ucp.h:570
    +
    @ UCP_MEM_MAP_ALLOCATE
    Definition ucp.h:555
    +
    @ UCP_MEM_MAP_FIXED
    Definition ucp.h:561
    +
    @ UCP_MADV_NORMAL
    Definition ucp.h:2911
    +
    @ UCP_MADV_WILLNEED
    Definition ucp.h:2912
    +
    @ UCP_MEM_MAP_PARAM_FIELD_PROT
    Definition ucp.h:389
    +
    @ UCP_MEM_MAP_PARAM_FIELD_ADDRESS
    Definition ucp.h:377
    +
    @ UCP_MEM_MAP_PARAM_FIELD_LENGTH
    Definition ucp.h:383
    +
    @ UCP_MEM_MAP_PARAM_FIELD_MEMORY_TYPE
    Definition ucp.h:392
    +
    @ UCP_MEM_MAP_PARAM_FIELD_EXPORTED_MEMH_BUFFER
    Definition ucp.h:395
    +
    @ UCP_MEM_MAP_PARAM_FIELD_FLAGS
    Definition ucp.h:386
    +
    @ UCP_MEM_ADVISE_PARAM_FIELD_ADDRESS
    Definition ucp.h:406
    +
    @ UCP_MEM_ADVISE_PARAM_FIELD_ADVICE
    Definition ucp.h:408
    +
    @ UCP_MEM_ADVISE_PARAM_FIELD_LENGTH
    Definition ucp.h:407
    +
    @ UCP_MEMH_PACK_FLAG_EXPORT
    Definition ucp.h:3008
    +
    @ UCP_MEMH_PACK_PARAM_FIELD_FLAGS
    Definition ucp.h:2988
    +
    @ UCP_MEM_MAP_PROT_REMOTE_READ
    Definition ucp.h:584
    +
    @ UCP_MEM_MAP_PROT_REMOTE_WRITE
    Definition ucp.h:585
    +
    @ UCP_MEM_MAP_PROT_LOCAL_WRITE
    Definition ucp.h:583
    +
    @ UCP_MEM_MAP_PROT_LOCAL_READ
    Definition ucp.h:582
    +
    Tuning parameters for the UCP memory advice.
    Definition ucp.h:2927
    +
    Attributes of the UCP Memory handle, filled by ucp_mem_query function.
    Definition ucp_def.h:185
    +
    Tuning parameters for the UCP memory mapping.
    Definition ucp.h:1602
    +
    Memory handle release parameters passed to ucp_memh_buffer_release.
    Definition ucp.h:3082
    +
    Memory handle pack parameters passed to ucp_memh_pack.
    Definition ucp.h:3020
    +
    Tuning parameters for the comparison function ucp_rkey_compare.
    Definition ucp.h:1276
    +
    ucs_status_t ucp_worker_signal(ucp_worker_h worker)
    Cause an event of the worker.
    +
    void ucp_worker_wait_mem(ucp_worker_h worker, void *address)
    Wait for memory update on the address.
    +
    ucs_status_t ucp_worker_wait(ucp_worker_h worker)
    Wait for an event of the worker.
    +
    ucs_status_t ucp_worker_arm(ucp_worker_h worker)
    Turn on event notification for the next event.
    +
    ucs_status_t ucp_worker_get_efd(ucp_worker_h worker, int *fd)
    Obtain an event file descriptor for event notification.
    +
    uint32_t flags
    Definition ucp.h:1884
    +
    ucp_listener_conn_handler_t conn_handler
    Definition ucp.h:1561
    +
    ucp_address_t * address
    Definition ucp.h:1244
    +
    ucp_listener_accept_handler_t accept_handler
    Definition ucp.h:1548
    +
    void * user_data
    Definition ucp.h:1339
    +
    char name[UCP_ENTITY_NAME_MAX]
    Definition ucp.h:1259
    +
    uint64_t field_mask
    Definition ucp.h:1299
    +
    uint64_t client_id
    Definition ucp.h:1389
    +
    uint64_t recv_attr
    Definition ucp.h:1910
    +
    uint64_t field_mask
    Definition ucp.h:1406
    +
    ucp_ep_h reply_ep
    Definition ucp.h:1915
    +
    uint64_t worker_uid
    Definition ucp.h:1411
    +
    uint32_t address_flags
    Definition ucp.h:1235
    +
    size_t max_am_header
    Definition ucp.h:1254
    +
    ucs_thread_mode_t thread_mode
    Definition ucp.h:1313
    +
    size_t max_debug_string
    Definition ucp.h:1264
    +
    size_t address_length
    Definition ucp.h:1249
    +
    const char * name
    Definition ucp.h:1374
    +
    ucs_sock_addr_t sockaddr
    Definition ucp.h:1540
    +
    unsigned events
    Definition ucp.h:1331
    +
    struct sockaddr_storage client_address
    Definition ucp.h:1507
    +
    uint64_t field_mask
    Definition ucp.h:1874
    +
    uint64_t field_mask
    Definition ucp.h:1477
    +
    size_t am_alignment
    Definition ucp.h:1381
    +
    int event_fd
    Definition ucp.h:1356
    +
    ucs_thread_mode_t thread_mode
    Definition ucp.h:1227
    +
    ucp_am_recv_callback_t cb
    Definition ucp.h:1890
    +
    unsigned id
    Definition ucp.h:1879
    +
    uint64_t field_mask
    Definition ucp.h:1501
    +
    uint64_t flags
    Definition ucp.h:1364
    +
    void * arg
    Definition ucp.h:1896
    +
    uint64_t field_mask
    Definition ucp.h:1222
    +
    uint64_t field_mask
    Definition ucp.h:1531
    +
    ucs_cpu_set_t cpu_mask
    Definition ucp.h:1322
    +
    uint64_t client_id
    Definition ucp.h:1513
    +
    struct sockaddr_storage sockaddr
    Definition ucp.h:1483
    +
    struct ucp_conn_request_attr ucp_conn_request_attr_t
    UCP listener's connection request attributes.
    +
    ucs_status_t ucp_worker_fence(ucp_worker_h worker)
    Assures ordering between non-blocking operations.
    +
    struct ucp_worker_params ucp_worker_params_t
    Tuning parameters for the UCP worker.
    +
    ucs_status_t ucp_worker_create(ucp_context_h context, const ucp_worker_params_t *params, ucp_worker_h *worker_p)
    Create a worker object.
    +
    ucs_status_t ucp_worker_address_query(ucp_address_t *address, ucp_worker_address_attr_t *attr)
    Get attributes of the particular worker address.
    +
    ucp_worker_flags_t
    UCP worker flags.
    Definition ucp.h:200
    +
    struct ucp_am_handler_param ucp_am_handler_param_t
    Active Message handler parameters passed to ucp_worker_set_am_recv_handler routine.
    +
    ucs_status_t ucp_listener_reject(ucp_listener_h listener, ucp_conn_request_h conn_request)
    Reject an incoming connection request.
    +
    ucp_conn_request_attr_field
    UCP listener's connection request attributes field mask.
    Definition ucp.h:491
    +
    unsigned ucp_worker_progress(ucp_worker_h worker)
    Progress all communications on a specific worker.
    +
    ucp_listener_params_field
    UCP listener parameters field mask.
    Definition ucp.h:213
    +
    ucs_status_t ucp_worker_set_am_recv_handler(ucp_worker_h worker, const ucp_am_handler_param_t *param)
    Add user defined callback for Active Message.
    +
    ucp_am_cb_flags
    Flags for a UCP Active Message callback.
    Definition ucp.h:595
    +
    struct ucp_listener_params ucp_listener_params_t
    Parameters for a UCP listener object.
    +
    ucs_status_t ucp_conn_request_query(ucp_conn_request_h conn_request, ucp_conn_request_attr_t *attr)
    Get attributes specific to a particular connection request received on the server side.
    +
    ucp_listener_attr_field
    UCP listener attributes field mask.
    Definition ucp.h:479
    +
    ucs_status_ptr_t ucp_worker_flush_nbx(ucp_worker_h worker, const ucp_request_param_t *param)
    Flush outstanding AMO and RMA operations on the worker.
    +
    ucp_send_am_flags
    Flags for sending a UCP Active Message.
    Definition ucp.h:618
    +
    struct ucp_worker * ucp_worker_h
    UCP Worker.
    Definition ucp_def.h:246
    +
    void ucp_worker_destroy(ucp_worker_h worker)
    Destroy a worker object.
    +
    struct ucp_worker_address_attr ucp_worker_address_attr_t
    UCP worker address attributes.
    +
    ucs_status_t ucp_listener_query(ucp_listener_h listener, ucp_listener_attr_t *attr)
    Get attributes specific to a particular listener.
    +
    ucs_status_t ucp_listener_create(ucp_worker_h worker, const ucp_listener_params_t *params, ucp_listener_h *listener_p)
    Create a listener to accept connections on. Connection requests on the listener will arrive at a loca...
    +
    struct ucp_address ucp_address_t
    UCP worker address.
    Definition ucp_def.h:112
    +
    void ucp_worker_release_address(ucp_worker_h worker, ucp_address_t *address)
    Release an address of the worker object.
    +
    struct ucp_listener_attr ucp_listener_attr_t
    UCP listener attributes.
    +
    ucs_status_t ucp_worker_query(ucp_worker_h worker, ucp_worker_attr_t *attr)
    Get attributes specific to a particular worker.
    +
    ssize_t ucp_stream_worker_poll(ucp_worker_h worker, ucp_stream_poll_ep_t *poll_eps, size_t max_eps, unsigned flags)
    Poll for endpoints that are ready to consume streaming data.
    +
    ucp_worker_address_attr_field
    UCP worker address attributes field mask.
    Definition ucp.h:467
    +
    ucp_worker_address_flags_t
    UCP worker address flags.
    Definition ucp.h:238
    +
    void ucp_worker_print_info(ucp_worker_h worker, FILE *stream)
    Print information about the worker.
    +
    struct ucp_listener * ucp_listener_h
    UCP listen handle.
    Definition ucp_def.h:177
    +
    ucp_worker_attr_field
    UCP worker attributes field mask.
    Definition ucp.h:447
    +
    struct ucp_worker_attr ucp_worker_attr_t
    UCP worker attributes.
    +
    ucp_worker_params_field
    UCP worker parameters field mask.
    Definition ucp.h:178
    +
    void ucp_listener_destroy(ucp_listener_h listener)
    Stop accepting connections on a local address of the worker object.
    +
    @ UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK
    Definition ucp.h:201
    +
    @ UCP_CONN_REQUEST_ATTR_FIELD_CLIENT_ID
    Definition ucp.h:493
    +
    @ UCP_CONN_REQUEST_ATTR_FIELD_CLIENT_ADDR
    Definition ucp.h:492
    +
    @ UCP_LISTENER_PARAM_FIELD_SOCK_ADDR
    Definition ucp.h:217
    +
    @ UCP_LISTENER_PARAM_FIELD_ACCEPT_HANDLER
    Definition ucp.h:222
    +
    @ UCP_LISTENER_PARAM_FIELD_CONN_HANDLER
    Definition ucp.h:226
    +
    @ UCP_AM_FLAG_PERSISTENT_DATA
    Definition ucp.h:607
    +
    @ UCP_AM_FLAG_WHOLE_MSG
    Definition ucp.h:599
    +
    @ UCP_LISTENER_ATTR_FIELD_SOCKADDR
    Definition ucp.h:480
    +
    @ UCP_AM_SEND_FLAG_COPY_HEADER
    Definition ucp.h:640
    +
    @ UCP_AM_SEND_REPLY
    Definition ucp.h:645
    +
    @ UCP_AM_SEND_FLAG_RNDV
    Definition ucp.h:632
    +
    @ UCP_AM_SEND_FLAG_REPLY
    Definition ucp.h:622
    +
    @ UCP_AM_SEND_FLAG_EAGER
    Definition ucp.h:627
    +
    @ UCP_WORKER_ADDRESS_ATTR_FIELD_UID
    Definition ucp.h:468
    +
    @ UCP_WORKER_ADDRESS_FLAG_NET_ONLY
    Definition ucp.h:243
    +
    @ UCP_WORKER_ATTR_FIELD_ADDRESS
    Definition ucp.h:449
    +
    @ UCP_WORKER_ATTR_FIELD_MAX_AM_HEADER
    Definition ucp.h:451
    +
    @ UCP_WORKER_ATTR_FIELD_THREAD_MODE
    Definition ucp.h:448
    +
    @ UCP_WORKER_ATTR_FIELD_NAME
    Definition ucp.h:453
    +
    @ UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS
    Definition ucp.h:450
    +
    @ UCP_WORKER_ATTR_FIELD_MAX_INFO_STRING
    Definition ucp.h:454
    +
    @ UCP_WORKER_PARAM_FIELD_CPU_MASK
    Definition ucp.h:180
    +
    @ UCP_WORKER_PARAM_FIELD_USER_DATA
    Definition ucp.h:182
    +
    @ UCP_WORKER_PARAM_FIELD_CLIENT_ID
    Definition ucp.h:189
    +
    @ UCP_WORKER_PARAM_FIELD_FLAGS
    Definition ucp.h:185
    +
    @ UCP_WORKER_PARAM_FIELD_NAME
    Definition ucp.h:186
    +
    @ UCP_WORKER_PARAM_FIELD_THREAD_MODE
    Definition ucp.h:179
    +
    @ UCP_WORKER_PARAM_FIELD_AM_ALIGNMENT
    Definition ucp.h:187
    +
    @ UCP_WORKER_PARAM_FIELD_EVENTS
    Definition ucp.h:181
    +
    @ UCP_WORKER_PARAM_FIELD_EVENT_FD
    Definition ucp.h:183
    +
    Active Message handler parameters passed to ucp_worker_set_am_recv_handler routine.
    Definition ucp.h:1868
    +
    Operation parameters provided in ucp_am_recv_callback_t callback.
    Definition ucp.h:1904
    +
    UCP listener's connection request attributes.
    Definition ucp.h:1494
    +
    Definition ucp_compat.h:23
    +
    UCP listener attributes.
    Definition ucp.h:1470
    +
    UCP callback to handle the connection request in a client-server connection establishment flow.
    Definition ucp_def.h:426
    +
    Parameters for a UCP listener object.
    Definition ucp.h:1524
    +
    UCP worker address attributes.
    Definition ucp.h:1399
    +
    UCP worker attributes.
    Definition ucp.h:1215
    +
    Tuning parameters for the UCP worker.
    Definition ucp.h:1293
    +
    enum ucs_memory_type ucs_memory_type_t
    Memory types.
    +
    ucs_thread_mode_t
    Thread sharing mode.
    Definition thread_mode.h:19
    +
    ucs_status_t
    Status codes.
    Definition status.h:45
    +
    void * ucs_status_ptr_t
    Status pointer.
    Definition status.h:106
    +
    Definition types.h:137
    +
    UCP generic data type descriptor.
    Definition ucp.h:883
    +
    +
    + + + + diff --git a/api/v1.17/html/ucp__compat_8h_source.html b/api/v1.17/html/ucp__compat_8h_source.html new file mode 100644 index 00000000000..e5e4d135e84 --- /dev/null +++ b/api/v1.17/html/ucp__compat_8h_source.html @@ -0,0 +1,421 @@ + + + + + + + +UCX: ucp_compat.h Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    UCX 1.17 +
    +
    Unified Communication X
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    ucp_compat.h
    +
    +
    +
    1/*
    +
    2 * Copyright (c) NVIDIA CORPORATION & AFFILIATES, 2001-2017. ALL RIGHTS RESERVED.
    +
    3 *
    +
    4 * See file LICENSE for terms.
    +
    5 */
    +
    6
    +
    7
    +
    8#ifndef UCP_COMPAT_H_
    +
    9#define UCP_COMPAT_H_
    +
    10
    +
    11
    +
    12#include <ucp/api/ucp_def.h>
    +
    13#include <ucs/sys/compiler_def.h>
    +
    14
    +
    15BEGIN_C_DECLS
    +
    16
    + +
    28
    +
    29
    +
    34int ucp_request_is_completed(void *request);
    +
    35
    +
    36
    +
    41void ucp_request_release(void *request);
    +
    42
    +
    43
    + +
    49
    +
    50
    + +
    56
    +
    57
    + +
    72
    +
    73
    + +
    106 void **rkey_buffer_p, size_t *size_p);
    +
    107
    +
    108
    +
    127void ucp_rkey_buffer_release(void *rkey_buffer);
    +
    128
    +
    129
    + +
    135
    + +
    178
    +
    179
    +
    227ucs_status_t ucp_put(ucp_ep_h ep, const void *buffer, size_t length,
    +
    228 uint64_t remote_addr, ucp_rkey_h rkey);
    +
    229
    +
    230
    +
    254ucs_status_t ucp_get(ucp_ep_h ep, void *buffer, size_t length,
    +
    255 uint64_t remote_addr, ucp_rkey_h rkey);
    +
    256
    +
    257
    + +
    285 uint64_t remote_addr, ucp_rkey_h rkey);
    +
    286
    +
    287
    + +
    315 uint64_t remote_addr, ucp_rkey_h rkey);
    +
    316
    +
    317
    +
    348ucs_status_t ucp_atomic_fadd32(ucp_ep_h ep, uint32_t add, uint64_t remote_addr,
    +
    349 ucp_rkey_h rkey, uint32_t *result);
    +
    350
    +
    351
    +
    382ucs_status_t ucp_atomic_fadd64(ucp_ep_h ep, uint64_t add, uint64_t remote_addr,
    +
    383 ucp_rkey_h rkey, uint64_t *result);
    +
    384
    +
    385
    +
    415ucs_status_t ucp_atomic_swap32(ucp_ep_h ep, uint32_t swap, uint64_t remote_addr,
    +
    416 ucp_rkey_h rkey, uint32_t *result);
    +
    417
    +
    418
    +
    448ucs_status_t ucp_atomic_swap64(ucp_ep_h ep, uint64_t swap, uint64_t remote_addr,
    +
    449 ucp_rkey_h rkey, uint64_t *result);
    +
    450
    +
    451
    +
    482ucs_status_t ucp_atomic_cswap32(ucp_ep_h ep, uint32_t compare, uint32_t swap,
    +
    483 uint64_t remote_addr, ucp_rkey_h rkey,
    +
    484 uint32_t *result);
    +
    485
    +
    486
    +
    517ucs_status_t ucp_atomic_cswap64(ucp_ep_h ep, uint64_t compare, uint64_t swap,
    +
    518 uint64_t remote_addr, ucp_rkey_h rkey,
    +
    519 uint64_t *result);
    +
    520
    +
    521
    + +
    556
    +
    557
    + +
    579 ucp_address_t **address_p,
    +
    580 size_t *address_length_p);
    +
    581
    +
    582
    + +
    612
    +
    613
    + + +
    643
    +
    644
    + +
    673 ucp_am_callback_t cb, void *arg,
    +
    674 uint32_t flags);
    +
    675
    +
    676
    + +
    703 const void *buffer, size_t count,
    +
    704 ucp_datatype_t datatype,
    +
    705 ucp_send_callback_t cb, unsigned flags);
    +
    706
    +
    707
    +
    748ucs_status_ptr_t ucp_stream_send_nb(ucp_ep_h ep, const void *buffer, size_t count,
    + +
    750 unsigned flags);
    +
    751
    +
    752
    +
    796ucs_status_ptr_t ucp_stream_recv_nb(ucp_ep_h ep, void *buffer, size_t count,
    +
    797 ucp_datatype_t datatype,
    + +
    799 size_t *length, unsigned flags);
    +
    800
    +
    801
    +
    844ucs_status_ptr_t ucp_tag_send_nb(ucp_ep_h ep, const void *buffer, size_t count,
    +
    845 ucp_datatype_t datatype, ucp_tag_t tag,
    + +
    847
    +
    848
    +
    930ucs_status_t ucp_tag_send_nbr(ucp_ep_h ep, const void *buffer, size_t count,
    +
    931 ucp_datatype_t datatype, ucp_tag_t tag, void *req);
    +
    932
    +
    933
    +
    967ucs_status_ptr_t ucp_tag_send_sync_nb(ucp_ep_h ep, const void *buffer, size_t count,
    +
    968 ucp_datatype_t datatype, ucp_tag_t tag,
    + +
    970
    +
    971
    +
    1012ucs_status_ptr_t ucp_tag_recv_nb(ucp_worker_h worker, void *buffer, size_t count,
    +
    1013 ucp_datatype_t datatype, ucp_tag_t tag,
    +
    1014 ucp_tag_t tag_mask, ucp_tag_recv_callback_t cb);
    +
    1015
    +
    1016
    +
    1049ucs_status_t ucp_tag_recv_nbr(ucp_worker_h worker, void *buffer, size_t count,
    +
    1050 ucp_datatype_t datatype, ucp_tag_t tag,
    +
    1051 ucp_tag_t tag_mask, void *req);
    +
    1052
    +
    1053
    + +
    1090 size_t count, ucp_datatype_t datatype,
    +
    1091 ucp_tag_message_h message,
    + +
    1093
    +
    1094
    +
    1125ucs_status_t ucp_put_nbi(ucp_ep_h ep, const void *buffer, size_t length,
    +
    1126 uint64_t remote_addr, ucp_rkey_h rkey);
    +
    1127
    +
    1128
    +
    1174ucs_status_ptr_t ucp_put_nb(ucp_ep_h ep, const void *buffer, size_t length,
    +
    1175 uint64_t remote_addr, ucp_rkey_h rkey,
    + +
    1177
    +
    1178
    +
    1208ucs_status_t ucp_get_nbi(ucp_ep_h ep, void *buffer, size_t length,
    +
    1209 uint64_t remote_addr, ucp_rkey_h rkey);
    +
    1210
    +
    1211
    +
    1256ucs_status_ptr_t ucp_get_nb(ucp_ep_h ep, void *buffer, size_t length,
    +
    1257 uint64_t remote_addr, ucp_rkey_h rkey,
    + +
    1259
    +
    1260
    + +
    1278
    +
    1279
    + +
    1305 size_t op_size, uint64_t remote_addr, ucp_rkey_h rkey);
    +
    1306
    +
    1307
    + +
    1327
    +
    1328
    + + +
    1380 uint64_t value, void *result, size_t op_size,
    +
    1381 uint64_t remote_addr, ucp_rkey_h rkey,
    + +
    1383
    +
    1384
    + + +
    1418
    +
    1419
    + +
    1446
    +
    1447
    +
    1448END_C_DECLS
    +
    1449
    +
    1450#endif
    +
    void(* ucp_tag_recv_callback_t)(void *request, ucs_status_t status, ucp_tag_recv_info_t *info)
    Completion callback for non-blocking tag receives.
    Definition ucp_def.h:493
    +
    ucs_status_t ucp_atomic_fadd32(ucp_ep_h ep, uint32_t add, uint64_t remote_addr, ucp_rkey_h rkey, uint32_t *result)
    Blocking atomic fetch and add operation for 32 bit integers.
    +
    ucs_status_ptr_t ucp_put_nb(ucp_ep_h ep, const void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey, ucp_send_callback_t cb)
    Non-blocking remote memory put operation.
    +
    ucs_status_t ucp_atomic_swap32(ucp_ep_h ep, uint32_t swap, uint64_t remote_addr, ucp_rkey_h rkey, uint32_t *result)
    Blocking atomic swap operation for 32 bit values.
    +
    int ucp_request_is_completed(void *request)
    +
    ucs_status_ptr_t ucp_atomic_fetch_nb(ucp_ep_h ep, ucp_atomic_fetch_op_t opcode, uint64_t value, void *result, size_t op_size, uint64_t remote_addr, ucp_rkey_h rkey, ucp_send_callback_t cb)
    Post an atomic fetch operation.
    +
    uint64_t ucp_tag_t
    UCP Tag Identifier.
    Definition ucp_def.h:257
    +
    ucs_status_t ucp_tag_recv_nbr(ucp_worker_h worker, void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_t tag, ucp_tag_t tag_mask, void *req)
    Non-blocking tagged-receive operation.
    +
    ucs_status_t ucp_atomic_cswap32(ucp_ep_h ep, uint32_t compare, uint32_t swap, uint64_t remote_addr, ucp_rkey_h rkey, uint32_t *result)
    Blocking atomic conditional swap (cswap) operation for 32 bit values.
    +
    void(* ucp_stream_recv_callback_t)(void *request, ucs_status_t status, size_t length)
    Completion callback for non-blocking stream oriented receives.
    Definition ucp_def.h:448
    +
    struct ucp_recv_desc * ucp_tag_message_h
    UCP Message descriptor.
    Definition ucp_def.h:268
    +
    ucs_status_t ucp_atomic_fadd64(ucp_ep_h ep, uint64_t add, uint64_t remote_addr, ucp_rkey_h rkey, uint64_t *result)
    Blocking atomic fetch and add operation for 64 bit integers.
    +
    ucs_status_t ucp_put_nbi(ucp_ep_h ep, const void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey)
    Non-blocking implicit remote memory put operation.
    +
    ucs_status_ptr_t ucp_get_nb(ucp_ep_h ep, void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey, ucp_send_callback_t cb)
    Non-blocking remote memory get operation.
    +
    ucs_status_t ucp_atomic_post(ucp_ep_h ep, ucp_atomic_post_op_t opcode, uint64_t value, size_t op_size, uint64_t remote_addr, ucp_rkey_h rkey)
    Post an atomic memory operation.
    +
    ucs_status_t ucp_put(ucp_ep_h ep, const void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey)
    Blocking remote memory put operation.
    +
    ucs_status_ptr_t ucp_stream_send_nb(ucp_ep_h ep, const void *buffer, size_t count, ucp_datatype_t datatype, ucp_send_callback_t cb, unsigned flags)
    Non-blocking stream send operation.
    +
    ucs_status_ptr_t ucp_am_send_nb(ucp_ep_h ep, uint16_t id, const void *buffer, size_t count, ucp_datatype_t datatype, ucp_send_callback_t cb, unsigned flags)
    Send Active Message.
    +
    ucs_status_t ucp_atomic_add32(ucp_ep_h ep, uint32_t add, uint64_t remote_addr, ucp_rkey_h rkey)
    Blocking atomic add operation for 32 bit integers.
    +
    ucs_status_t ucp_atomic_swap64(ucp_ep_h ep, uint64_t swap, uint64_t remote_addr, ucp_rkey_h rkey, uint64_t *result)
    Blocking atomic swap operation for 64 bit values.
    +
    ucs_status_t ucp_atomic_add64(ucp_ep_h ep, uint64_t add, uint64_t remote_addr, ucp_rkey_h rkey)
    Blocking atomic add operation for 64 bit integers.
    +
    void(* ucp_send_callback_t)(void *request, ucs_status_t status)
    Completion callback for non-blocking sends.
    Definition ucp_def.h:319
    +
    ucs_status_ptr_t ucp_tag_send_nb(ucp_ep_h ep, const void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_t tag, ucp_send_callback_t cb)
    Non-blocking tagged-send operations.
    +
    ucs_status_ptr_t ucp_tag_send_sync_nb(ucp_ep_h ep, const void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_t tag, ucp_send_callback_t cb)
    Non-blocking synchronous tagged-send operation.
    +
    ucp_atomic_fetch_op_t
    Atomic operation requested for ucp_atomic_fetch.
    Definition ucp_compat.h:1318
    +
    ucs_status_ptr_t ucp_tag_msg_recv_nb(ucp_worker_h worker, void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_message_h message, ucp_tag_recv_callback_t cb)
    Non-blocking receive operation for a probed message.
    +
    ucp_atomic_post_op_t
    Atomic operation requested for ucp_atomic_post.
    Definition ucp_compat.h:1271
    +
    ucs_status_t ucp_tag_send_nbr(ucp_ep_h ep, const void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_t tag, void *req)
    Non-blocking tagged-send operations with user provided request.
    +
    ucs_status_ptr_t ucp_stream_recv_nb(ucp_ep_h ep, void *buffer, size_t count, ucp_datatype_t datatype, ucp_stream_recv_callback_t cb, size_t *length, unsigned flags)
    Non-blocking stream receive operation of structured data into a user-supplied buffer.
    +
    ucs_status_t ucp_get_nbi(ucp_ep_h ep, void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey)
    Non-blocking implicit remote memory get operation.
    +
    uint64_t ucp_datatype_t
    UCP Datatype Identifier.
    Definition ucp_def.h:278
    +
    ucs_status_ptr_t ucp_tag_recv_nb(ucp_worker_h worker, void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_t tag, ucp_tag_t tag_mask, ucp_tag_recv_callback_t cb)
    Non-blocking tagged-receive operation.
    +
    ucs_status_t ucp_get(ucp_ep_h ep, void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey)
    Blocking remote memory get operation.
    +
    ucs_status_t ucp_atomic_cswap64(ucp_ep_h ep, uint64_t compare, uint64_t swap, uint64_t remote_addr, ucp_rkey_h rkey, uint64_t *result)
    Blocking atomic conditional swap (cswap) operation for 64 bit values.
    +
    @ UCP_ATOMIC_FETCH_OP_FAND
    Definition ucp_compat.h:1322
    +
    @ UCP_ATOMIC_FETCH_OP_LAST
    Definition ucp_compat.h:1325
    +
    @ UCP_ATOMIC_FETCH_OP_FOR
    Definition ucp_compat.h:1323
    +
    @ UCP_ATOMIC_FETCH_OP_FXOR
    Definition ucp_compat.h:1324
    +
    @ UCP_ATOMIC_FETCH_OP_SWAP
    Definition ucp_compat.h:1320
    +
    @ UCP_ATOMIC_FETCH_OP_CSWAP
    Definition ucp_compat.h:1321
    +
    @ UCP_ATOMIC_FETCH_OP_FADD
    Definition ucp_compat.h:1319
    +
    @ UCP_ATOMIC_POST_OP_AND
    Definition ucp_compat.h:1273
    +
    @ UCP_ATOMIC_POST_OP_LAST
    Definition ucp_compat.h:1276
    +
    @ UCP_ATOMIC_POST_OP_XOR
    Definition ucp_compat.h:1275
    +
    @ UCP_ATOMIC_POST_OP_ADD
    Definition ucp_compat.h:1272
    +
    @ UCP_ATOMIC_POST_OP_OR
    Definition ucp_compat.h:1274
    +
    struct ucp_context * ucp_context_h
    UCP Application Context.
    Definition ucp_def.h:60
    +
    UCP receive information descriptor.
    Definition ucp.h:1693
    +
    ucs_status_ptr_t ucp_ep_modify_nb(ucp_ep_h ep, const ucp_ep_params_t *params)
    Modify endpoint parameters.
    +
    ucs_status_t ucp_ep_flush(ucp_ep_h ep)
    +
    ucs_status_ptr_t ucp_disconnect_nb(ucp_ep_h ep)
    +
    ucs_status_t ucp_request_test(void *request, ucp_tag_recv_info_t *info)
    +
    ucp_ep_close_mode
    Close UCP endpoint modes.
    Definition ucp_compat.h:1428
    +
    ucs_status_ptr_t ucp_ep_flush_nb(ucp_ep_h ep, unsigned flags, ucp_send_callback_t cb)
    Non-blocking flush of outstanding AMO and RMA operations on the endpoint.
    +
    struct ucp_ep * ucp_ep_h
    UCP Endpoint.
    Definition ucp_def.h:92
    +
    ucs_status_ptr_t ucp_ep_close_nb(ucp_ep_h ep, unsigned mode)
    Non-blocking endpoint closure.
    +
    void ucp_request_release(void *request)
    +
    void ucp_ep_destroy(ucp_ep_h ep)
    +
    ucs_status_t(* ucp_am_callback_t)(void *arg, void *data, size_t length, ucp_ep_h reply_ep, unsigned flags)
    Callback to process incoming Active Message.
    Definition ucp_def.h:613
    +
    @ UCP_EP_CLOSE_MODE_FLUSH
    Definition ucp_compat.h:1442
    +
    @ UCP_EP_CLOSE_MODE_FORCE
    Definition ucp_compat.h:1429
    +
    Tuning parameters for the UCP endpoint.
    Definition ucp_def.h:683
    +
    void ucp_rkey_buffer_release(void *rkey_buffer)
    Release packed remote key buffer.
    +
    struct ucp_mem * ucp_mem_h
    UCP Memory handle.
    Definition ucp_def.h:167
    +
    ucs_status_t ucp_rkey_pack(ucp_context_h context, ucp_mem_h memh, void **rkey_buffer_p, size_t *size_p)
    Pack memory region remote access key.
    +
    struct ucp_rkey * ucp_rkey_h
    UCP Remote memory handle.
    Definition ucp_def.h:152
    +
    void * arg
    Definition ucp_compat.h:25
    +
    ucp_listener_accept_callback_t cb
    Definition ucp_compat.h:24
    +
    ucs_status_t ucp_worker_get_address(ucp_worker_h worker, ucp_address_t **address_p, size_t *address_length_p)
    Get the address of the worker object.
    +
    struct ucp_worker * ucp_worker_h
    UCP Worker.
    Definition ucp_def.h:246
    +
    struct ucp_listener_accept_handler ucp_listener_accept_handler_t
    +
    struct ucp_address ucp_address_t
    UCP worker address.
    Definition ucp_def.h:112
    +
    void(* ucp_listener_accept_callback_t)(ucp_ep_h ep, void *arg)
    A callback for accepting client/server connections on a listener ucp_listener_h.
    Definition ucp_def.h:390
    +
    ucs_status_t ucp_worker_set_am_handler(ucp_worker_h worker, uint16_t id, ucp_am_callback_t cb, void *arg, uint32_t flags)
    Add user defined callback for Active Message.
    +
    ucs_status_ptr_t ucp_worker_flush_nb(ucp_worker_h worker, unsigned flags, ucp_send_callback_t cb)
    Flush outstanding AMO and RMA operations on the worker.
    +
    ucs_status_t ucp_worker_flush(ucp_worker_h worker)
    Flush outstanding AMO and RMA operations on the worker.
    +
    Definition ucp_compat.h:23
    +
    ucs_status_t
    Status codes.
    Definition status.h:45
    +
    void * ucs_status_ptr_t
    Status pointer.
    Definition status.h:106
    +
    +
    + + + + diff --git a/api/v1.17/html/ucp__def_8h_source.html b/api/v1.17/html/ucp__def_8h_source.html new file mode 100644 index 00000000000..53aacc3a286 --- /dev/null +++ b/api/v1.17/html/ucp__def_8h_source.html @@ -0,0 +1,420 @@ + + + + + + + +UCX: ucp_def.h Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    UCX 1.17 +
    +
    Unified Communication X
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    ucp_def.h
    +
    +
    +
    1/*
    +
    2* Copyright (c) NVIDIA CORPORATION & AFFILIATES, 2001-2014. ALL RIGHTS RESERVED.
    +
    3* Copyright (C) UT-Battelle, LLC. 2014-2015. ALL RIGHTS RESERVED.
    +
    4* Copyright (C) IBM 2015. ALL RIGHTS RESERVED.
    +
    5* Copyright (C) Los Alamos National Security, LLC. 2018. ALL RIGHTS RESERVED.
    +
    6* Copyright (C) Arm, Ltd. 2021. ALL RIGHTS RESERVED.
    +
    7*
    +
    8* See file LICENSE for terms.
    +
    9*/
    +
    10
    +
    11#ifndef UCP_DEF_H_
    +
    12#define UCP_DEF_H_
    +
    13
    +
    14#include <ucs/memory/memory_type.h>
    +
    15#include <ucs/type/status.h>
    +
    16#include <ucs/config/types.h>
    +
    17#include <stddef.h>
    +
    18#include <stdint.h>
    +
    19
    +
    20
    + +
    31
    +
    32
    + +
    38
    +
    39
    +
    60typedef struct ucp_context *ucp_context_h;
    +
    61
    +
    62
    +
    77typedef struct ucp_config ucp_config_t;
    +
    78
    +
    79
    +
    92typedef struct ucp_ep *ucp_ep_h;
    +
    93
    +
    94
    +
    102typedef struct ucp_conn_request *ucp_conn_request_h;
    +
    103
    +
    104
    +
    112typedef struct ucp_address ucp_address_t;
    +
    113
    +
    114
    + +
    140
    +
    141
    +
    152typedef struct ucp_rkey *ucp_rkey_h;
    +
    153
    +
    154
    +
    167typedef struct ucp_mem *ucp_mem_h;
    +
    168
    +
    169
    +
    177typedef struct ucp_listener *ucp_listener_h;
    +
    178
    +
    179
    +
    +
    185typedef struct ucp_mem_attr {
    +
    191 uint64_t field_mask;
    +
    192
    +
    196 void *address;
    +
    197
    +
    201 size_t length;
    +
    202
    + + +
    +
    208
    +
    209
    + +
    222
    +
    223
    +
    246 typedef struct ucp_worker *ucp_worker_h;
    +
    247
    +
    248
    +
    257typedef uint64_t ucp_tag_t;
    +
    258
    +
    259
    +
    268typedef struct ucp_recv_desc *ucp_tag_message_h;
    +
    269
    +
    270
    +
    278typedef uint64_t ucp_datatype_t;
    +
    279
    +
    280
    +
    289typedef void (*ucp_request_init_callback_t)(void *request);
    +
    290
    +
    291
    +
    301typedef void (*ucp_request_cleanup_callback_t)(void *request);
    +
    302
    +
    303
    +
    319typedef void (*ucp_send_callback_t)(void *request, ucs_status_t status);
    +
    320
    +
    321
    +
    340typedef void (*ucp_send_nbx_callback_t)(void *request, ucs_status_t status,
    +
    341 void *user_data);
    +
    342
    +
    343
    +
    357typedef void (*ucp_err_handler_cb_t)(void *arg, ucp_ep_h ep, ucs_status_t status);
    +
    358
    +
    359
    + +
    374
    +
    375
    +
    390typedef void (*ucp_listener_accept_callback_t)(ucp_ep_h ep, void *arg);
    +
    391
    +
    392
    +
    406typedef void
    +
    407(*ucp_listener_conn_callback_t)(ucp_conn_request_h conn_request, void *arg);
    +
    408
    +
    409
    + +
    431
    +
    432
    +
    448typedef void (*ucp_stream_recv_callback_t)(void *request, ucs_status_t status,
    +
    449 size_t length);
    +
    450
    +
    451
    +
    470typedef void (*ucp_stream_recv_nbx_callback_t)(void *request, ucs_status_t status,
    +
    471 size_t length, void *user_data);
    +
    472
    +
    473
    +
    493typedef void (*ucp_tag_recv_callback_t)(void *request, ucs_status_t status,
    +
    494 ucp_tag_recv_info_t *info);
    +
    495
    +
    496
    +
    518typedef void (*ucp_tag_recv_nbx_callback_t)(void *request, ucs_status_t status,
    +
    519 const ucp_tag_recv_info_t *tag_info,
    +
    520 void *user_data);
    +
    521
    +
    522
    +
    540typedef void (*ucp_am_recv_data_nbx_callback_t)(void *request,
    +
    541 ucs_status_t status,
    +
    542 size_t length, void *user_data);
    +
    543
    +
    544
    +
    + +
    559 UCP_WAKEUP_RMA = UCS_BIT(0),
    +
    560 UCP_WAKEUP_AMO = UCS_BIT(1),
    +
    561 UCP_WAKEUP_TAG_SEND = UCS_BIT(2),
    +
    562 UCP_WAKEUP_TAG_RECV = UCS_BIT(3),
    +
    563 UCP_WAKEUP_TX = UCS_BIT(10),
    +
    570 UCP_WAKEUP_RX = UCS_BIT(11),
    +
    575 UCP_WAKEUP_EDGE = UCS_BIT(16)
    + +
    +
    580
    +
    581
    +
    613typedef ucs_status_t (*ucp_am_callback_t)(void *arg, void *data, size_t length,
    +
    614 ucp_ep_h reply_ep, unsigned flags);
    +
    615
    +
    616
    +
    670typedef ucs_status_t (*ucp_am_recv_callback_t)(void *arg, const void *header,
    +
    671 size_t header_length,
    +
    672 void *data, size_t length,
    +
    673 const ucp_am_recv_param_t *param);
    +
    674
    +
    675
    + +
    765
    +
    766
    +
    772#define UCP_ENTITY_NAME_MAX 32
    +
    773
    +
    +
    820typedef struct {
    +
    826 const char *transport_name;
    +
    827
    +
    833 const char *device_name;
    +
    834
    + +
    +
    836
    +
    837
    +
    +
    846typedef struct {
    + +
    853
    +
    860 unsigned num_entries;
    +
    861
    + +
    869
    + +
    +
    871
    +
    872#endif
    +
    ucp_err_handler_cb_t cb
    Definition ucp_def.h:367
    +
    void * arg
    Definition ucp_def.h:369
    +
    void(* ucp_tag_recv_callback_t)(void *request, ucs_status_t status, ucp_tag_recv_info_t *info)
    Completion callback for non-blocking tag receives.
    Definition ucp_def.h:493
    +
    void(* ucp_am_recv_data_nbx_callback_t)(void *request, ucs_status_t status, size_t length, void *user_data)
    Completion callback for non-blocking Active Message receives.
    Definition ucp_def.h:540
    +
    uint64_t ucp_tag_t
    UCP Tag Identifier.
    Definition ucp_def.h:257
    +
    struct ucp_err_handler ucp_err_handler_t
    UCP endpoint error handling context.
    +
    void(* ucp_stream_recv_callback_t)(void *request, ucs_status_t status, size_t length)
    Completion callback for non-blocking stream oriented receives.
    Definition ucp_def.h:448
    +
    struct ucp_recv_desc * ucp_tag_message_h
    UCP Message descriptor.
    Definition ucp_def.h:268
    +
    void(* ucp_tag_recv_nbx_callback_t)(void *request, ucs_status_t status, const ucp_tag_recv_info_t *tag_info, void *user_data)
    Completion callback for non-blocking tag receives ucp_tag_recv_nbx call.
    Definition ucp_def.h:518
    +
    void(* ucp_send_callback_t)(void *request, ucs_status_t status)
    Completion callback for non-blocking sends.
    Definition ucp_def.h:319
    +
    uint64_t ucp_datatype_t
    UCP Datatype Identifier.
    Definition ucp_def.h:278
    +
    void(* ucp_send_nbx_callback_t)(void *request, ucs_status_t status, void *user_data)
    Completion callback for non-blocking sends.
    Definition ucp_def.h:340
    +
    void(* ucp_err_handler_cb_t)(void *arg, ucp_ep_h ep, ucs_status_t status)
    Callback to process peer failure.
    Definition ucp_def.h:357
    +
    void(* ucp_stream_recv_nbx_callback_t)(void *request, ucs_status_t status, size_t length, void *user_data)
    Completion callback for non-blocking stream receives ucp_stream_recv_nbx call.
    Definition ucp_def.h:470
    +
    UCP endpoint error handling context.
    Definition ucp_def.h:366
    +
    struct ucp_config ucp_config_t
    UCP configuration descriptor.
    Definition ucp_def.h:77
    +
    void(* ucp_request_init_callback_t)(void *request)
    Request initialization callback.
    Definition ucp_def.h:289
    +
    struct ucp_context * ucp_context_h
    UCP Application Context.
    Definition ucp_def.h:60
    +
    void(* ucp_request_cleanup_callback_t)(void *request)
    Request cleanup callback.
    Definition ucp_def.h:301
    +
    UCP receive information descriptor.
    Definition ucp.h:1693
    +
    size_t entry_size
    Definition ucp_def.h:868
    +
    const char * transport_name
    Definition ucp_def.h:826
    +
    unsigned num_entries
    Definition ucp_def.h:860
    +
    const char * name
    Definition ucp_def.h:753
    +
    ucp_transport_entry_t * entries
    Definition ucp_def.h:852
    +
    ucp_err_handling_mode_t err_mode
    Definition ucp_def.h:704
    +
    const char * device_name
    Definition ucp_def.h:833
    +
    const ucp_address_t * address
    Definition ucp_def.h:698
    +
    unsigned flags
    Definition ucp_def.h:724
    +
    ucp_conn_request_h conn_request
    Definition ucp_def.h:743
    +
    ucs_sock_addr_t sockaddr
    Definition ucp_def.h:733
    +
    ucp_err_handler_t err_handler
    Definition ucp_def.h:709
    +
    uint64_t field_mask
    Definition ucp_def.h:690
    +
    ucs_sock_addr_t local_sockaddr
    Definition ucp_def.h:762
    +
    void * user_data
    Definition ucp_def.h:715
    +
    struct ucp_conn_request * ucp_conn_request_h
    UCP connection request.
    Definition ucp_def.h:102
    +
    ucp_err_handling_mode_t
    Error handling mode for the UCP endpoint.
    Definition ucp_def.h:121
    +
    struct ucp_ep * ucp_ep_h
    UCP Endpoint.
    Definition ucp_def.h:92
    +
    ucs_status_t(* ucp_am_recv_callback_t)(void *arg, const void *header, size_t header_length, void *data, size_t length, const ucp_am_recv_param_t *param)
    Callback to process incoming Active Message sent by ucp_am_send_nbx routine.
    Definition ucp_def.h:670
    +
    ucs_status_t(* ucp_am_callback_t)(void *arg, void *data, size_t length, ucp_ep_h reply_ep, unsigned flags)
    Callback to process incoming Active Message.
    Definition ucp_def.h:613
    +
    struct ucp_ep_params ucp_ep_params_t
    Tuning parameters for the UCP endpoint.
    +
    @ UCP_ERR_HANDLING_MODE_NONE
    Definition ucp_def.h:122
    +
    @ UCP_ERR_HANDLING_MODE_PEER
    Definition ucp_def.h:130
    +
    Tuning parameters for the UCP endpoint.
    Definition ucp_def.h:683
    +
    The ucp_transports_t and ucp_transport_entry_t structures are used when ucp_ep_query is called to ret...
    Definition ucp_def.h:820
    +
    Structure containing an array of transport layers and device names used by an endpoint.
    Definition ucp_def.h:846
    +
    void * address
    Definition ucp_def.h:196
    +
    uint64_t field_mask
    Definition ucp_def.h:191
    +
    ucs_memory_type_t mem_type
    Definition ucp_def.h:206
    +
    size_t length
    Definition ucp_def.h:201
    +
    struct ucp_mem_attr ucp_mem_attr_t
    Attributes of the UCP Memory handle, filled by ucp_mem_query function.
    +
    ucp_mem_attr_field
    UCP Memory handle attributes field mask.
    Definition ucp_def.h:217
    +
    struct ucp_mem * ucp_mem_h
    UCP Memory handle.
    Definition ucp_def.h:167
    +
    struct ucp_rkey * ucp_rkey_h
    UCP Remote memory handle.
    Definition ucp_def.h:152
    +
    @ UCP_MEM_ATTR_FIELD_ADDRESS
    Definition ucp_def.h:218
    +
    @ UCP_MEM_ATTR_FIELD_MEM_TYPE
    Definition ucp_def.h:220
    +
    @ UCP_MEM_ATTR_FIELD_LENGTH
    Definition ucp_def.h:219
    +
    Attributes of the UCP Memory handle, filled by ucp_mem_query function.
    Definition ucp_def.h:185
    +
    ucp_listener_conn_callback_t cb
    Definition ucp_def.h:427
    +
    void * arg
    Definition ucp_def.h:428
    +
    enum ucp_wakeup_event_types ucp_wakeup_event_t
    UCP worker wakeup events mask.
    +
    void(* ucp_listener_conn_callback_t)(ucp_conn_request_h conn_request, void *arg)
    A callback for handling of incoming connection request conn_request from a client.
    Definition ucp_def.h:407
    +
    struct ucp_worker * ucp_worker_h
    UCP Worker.
    Definition ucp_def.h:246
    +
    ucp_wakeup_event_types
    UCP worker wakeup events mask.
    Definition ucp_def.h:558
    +
    struct ucp_address ucp_address_t
    UCP worker address.
    Definition ucp_def.h:112
    +
    void(* ucp_listener_accept_callback_t)(ucp_ep_h ep, void *arg)
    A callback for accepting client/server connections on a listener ucp_listener_h.
    Definition ucp_def.h:390
    +
    struct ucp_listener * ucp_listener_h
    UCP listen handle.
    Definition ucp_def.h:177
    +
    struct ucp_listener_conn_handler ucp_listener_conn_handler_t
    UCP callback to handle the connection request in a client-server connection establishment flow.
    +
    @ UCP_WAKEUP_TAG_SEND
    Definition ucp_def.h:561
    +
    @ UCP_WAKEUP_TAG_RECV
    Definition ucp_def.h:562
    +
    @ UCP_WAKEUP_RX
    Definition ucp_def.h:570
    +
    @ UCP_WAKEUP_AMO
    Definition ucp_def.h:560
    +
    @ UCP_WAKEUP_EDGE
    Definition ucp_def.h:575
    +
    @ UCP_WAKEUP_RMA
    Definition ucp_def.h:559
    +
    @ UCP_WAKEUP_TX
    Definition ucp_def.h:563
    +
    Operation parameters provided in ucp_am_recv_callback_t callback.
    Definition ucp.h:1904
    +
    UCP callback to handle the connection request in a client-server connection establishment flow.
    Definition ucp_def.h:426
    +
    enum ucs_memory_type ucs_memory_type_t
    Memory types.
    +
    ucs_status_t
    Status codes.
    Definition status.h:45
    +
    Definition types.h:137
    +
    +
    + + + + diff --git a/api/v1.17/html/ucp_client_server_8c-example.html b/api/v1.17/html/ucp_client_server_8c-example.html new file mode 100644 index 00000000000..3e72f9609ea --- /dev/null +++ b/api/v1.17/html/ucp_client_server_8c-example.html @@ -0,0 +1,1269 @@ + + + + + + + +UCX: ucp_client_server.c + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    UCX 1.17 +
    +
    Unified Communication X
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    ucp_client_server.c
    +
    +
    +

    UCP client / server example using different APIs (tag, stream, am) utility.

    +
    +
    /*
    +
    * UCP client - server example utility
    +
    * -----------------------------------------------
    +
    *
    +
    * Server side:
    +
    *
    +
    * ./ucp_client_server
    +
    *
    +
    * Client side:
    +
    *
    +
    * ./ucp_client_server -a <server-ip>
    +
    *
    +
    * Notes:
    +
    *
    +
    * - The server will listen to incoming connection requests on INADDR_ANY.
    +
    * - The client needs to pass the IP address of the server side to connect to
    +
    * as an argument to the test.
    +
    * - Currently, the passed IP needs to be an IPoIB or a RoCE address.
    +
    * - The port which the server side would listen on can be modified with the
    +
    * '-p' option and should be used on both sides. The default port to use is
    +
    * 13337.
    +
    */
    +
    +
    #include "hello_world_util.h"
    +
    #include "ucp_util.h"
    +
    +
    #include <ucp/api/ucp.h>
    +
    +
    #include <string.h> /* memset */
    +
    #include <arpa/inet.h> /* inet_addr */
    +
    #include <unistd.h> /* getopt */
    +
    #include <stdlib.h> /* atoi */
    +
    +
    #define DEFAULT_PORT 13337
    +
    #define IP_STRING_LEN 50
    +
    #define PORT_STRING_LEN 8
    +
    #define TAG 0xCAFE
    +
    #define COMM_TYPE_DEFAULT "STREAM"
    +
    #define PRINT_INTERVAL 2000
    +
    #define DEFAULT_NUM_ITERATIONS 1
    +
    #define TEST_AM_ID 0
    +
    +
    +
    static long test_string_length = 16;
    +
    static long iov_cnt = 1;
    +
    static uint16_t server_port = DEFAULT_PORT;
    +
    static sa_family_t ai_family = AF_INET;
    +
    static int num_iterations = DEFAULT_NUM_ITERATIONS;
    +
    static int connection_closed = 1;
    +
    +
    +
    typedef enum {
    +
    CLIENT_SERVER_SEND_RECV_STREAM = UCS_BIT(0),
    +
    CLIENT_SERVER_SEND_RECV_TAG = UCS_BIT(1),
    +
    CLIENT_SERVER_SEND_RECV_AM = UCS_BIT(2),
    +
    CLIENT_SERVER_SEND_RECV_DEFAULT = CLIENT_SERVER_SEND_RECV_STREAM
    +
    } send_recv_type_t;
    +
    +
    +
    typedef struct ucx_server_ctx {
    +
    volatile ucp_conn_request_h conn_request;
    +
    ucp_listener_h listener;
    +
    } ucx_server_ctx_t;
    +
    +
    +
    typedef struct test_req {
    +
    int complete;
    +
    } test_req_t;
    +
    +
    +
    static struct {
    +
    volatile int complete;
    +
    int is_rndv;
    +
    void *desc;
    +
    void *recv_buf;
    +
    } am_data_desc = {0, 0, NULL, NULL};
    +
    +
    +
    static void usage(void);
    +
    +
    void buffer_free(ucp_dt_iov_t *iov)
    +
    {
    +
    size_t idx;
    +
    +
    for (idx = 0; idx < iov_cnt; idx++) {
    +
    mem_type_free(iov[idx].buffer);
    +
    }
    +
    }
    +
    +
    int buffer_malloc(ucp_dt_iov_t *iov)
    +
    {
    +
    size_t idx;
    +
    +
    for (idx = 0; idx < iov_cnt; idx++) {
    +
    iov[idx].length = test_string_length;
    +
    iov[idx].buffer = mem_type_malloc(iov[idx].length);
    +
    if (iov[idx].buffer == NULL) {
    +
    buffer_free(iov);
    +
    return -1;
    +
    }
    +
    }
    +
    +
    return 0;
    +
    }
    +
    +
    int fill_buffer(ucp_dt_iov_t *iov)
    +
    {
    +
    int ret = 0;
    +
    size_t idx;
    +
    +
    for (idx = 0; idx < iov_cnt; idx++) {
    +
    ret = generate_test_string(iov[idx].buffer, iov[idx].length);
    +
    if (ret != 0) {
    +
    break;
    +
    }
    +
    }
    +
    CHKERR_ACTION(ret != 0, "generate test string", return -1;);
    +
    return 0;
    +
    }
    +
    +
    static void common_cb(void *user_data, const char *type_str)
    +
    {
    +
    test_req_t *ctx;
    +
    +
    if (user_data == NULL) {
    +
    fprintf(stderr, "user_data passed to %s mustn't be NULL\n", type_str);
    +
    return;
    +
    }
    +
    +
    ctx = user_data;
    +
    ctx->complete = 1;
    +
    }
    +
    +
    static void tag_recv_cb(void *request, ucs_status_t status,
    +
    const ucp_tag_recv_info_t *info, void *user_data)
    +
    {
    +
    common_cb(user_data, "tag_recv_cb");
    +
    }
    +
    +
    static void stream_recv_cb(void *request, ucs_status_t status, size_t length,
    +
    void *user_data)
    +
    {
    +
    common_cb(user_data, "stream_recv_cb");
    +
    }
    +
    +
    static void am_recv_cb(void *request, ucs_status_t status, size_t length,
    +
    void *user_data)
    +
    {
    +
    common_cb(user_data, "am_recv_cb");
    +
    }
    +
    +
    static void send_cb(void *request, ucs_status_t status, void *user_data)
    +
    {
    +
    common_cb(user_data, "send_cb");
    +
    }
    +
    +
    static void err_cb(void *arg, ucp_ep_h ep, ucs_status_t status)
    +
    {
    +
    printf("error handling callback was invoked with status %d (%s)\n",
    +
    status, ucs_status_string(status));
    +
    connection_closed = 1;
    +
    }
    +
    +
    void set_sock_addr(const char *address_str, struct sockaddr_storage *saddr)
    +
    {
    +
    struct sockaddr_in *sa_in;
    +
    struct sockaddr_in6 *sa_in6;
    +
    +
    /* The server will listen on INADDR_ANY */
    +
    memset(saddr, 0, sizeof(*saddr));
    +
    +
    switch (ai_family) {
    +
    case AF_INET:
    +
    sa_in = (struct sockaddr_in*)saddr;
    +
    if (address_str != NULL) {
    +
    inet_pton(AF_INET, address_str, &sa_in->sin_addr);
    +
    } else {
    +
    sa_in->sin_addr.s_addr = INADDR_ANY;
    +
    }
    +
    sa_in->sin_family = AF_INET;
    +
    sa_in->sin_port = htons(server_port);
    +
    break;
    +
    case AF_INET6:
    +
    sa_in6 = (struct sockaddr_in6*)saddr;
    +
    if (address_str != NULL) {
    +
    inet_pton(AF_INET6, address_str, &sa_in6->sin6_addr);
    +
    } else {
    +
    sa_in6->sin6_addr = in6addr_any;
    +
    }
    +
    sa_in6->sin6_family = AF_INET6;
    +
    sa_in6->sin6_port = htons(server_port);
    +
    break;
    +
    default:
    +
    fprintf(stderr, "Invalid address family");
    +
    break;
    +
    }
    +
    }
    +
    +
    static ucs_status_t start_client(ucp_worker_h ucp_worker,
    +
    const char *address_str, ucp_ep_h *client_ep)
    +
    {
    +
    ucp_ep_params_t ep_params;
    +
    struct sockaddr_storage connect_addr;
    +
    ucs_status_t status;
    +
    +
    set_sock_addr(address_str, &connect_addr);
    +
    +
    /*
    +
    * Endpoint field mask bits:
    +
    * UCP_EP_PARAM_FIELD_FLAGS - Use the value of the 'flags' field.
    +
    * UCP_EP_PARAM_FIELD_SOCK_ADDR - Use a remote sockaddr to connect
    +
    * to the remote peer.
    +
    * UCP_EP_PARAM_FIELD_ERR_HANDLING_MODE - Error handling mode - this flag
    +
    * is temporarily required since the
    +
    * endpoint will be closed with
    +
    * UCP_EP_CLOSE_MODE_FORCE which
    +
    * requires this mode.
    +
    * Once UCP_EP_CLOSE_MODE_FORCE is
    +
    * removed, the error handling mode
    +
    * will be removed.
    +
    */
    + + + + + +
    ep_params.err_handler.cb = err_cb;
    +
    ep_params.err_handler.arg = NULL;
    + +
    ep_params.sockaddr.addr = (struct sockaddr*)&connect_addr;
    +
    ep_params.sockaddr.addrlen = sizeof(connect_addr);
    +
    +
    status = ucp_ep_create(ucp_worker, &ep_params, client_ep);
    +
    if (status != UCS_OK) {
    +
    fprintf(stderr, "failed to connect to %s (%s)\n", address_str,
    +
    ucs_status_string(status));
    +
    }
    +
    +
    return status;
    +
    }
    +
    +
    static void print_iov(const ucp_dt_iov_t *iov)
    +
    {
    +
    char *msg = alloca(test_string_length);
    +
    size_t idx;
    +
    +
    for (idx = 0; idx < iov_cnt; idx++) {
    +
    /* In case of Non-System memory */
    +
    mem_type_memcpy(msg, iov[idx].buffer, test_string_length);
    +
    printf("%s.\n", msg);
    +
    }
    +
    }
    +
    +
    static
    +
    void print_result(int is_server, const ucp_dt_iov_t *iov, int current_iter)
    +
    {
    +
    if (is_server) {
    +
    printf("Server: iteration #%d\n", (current_iter + 1));
    +
    printf("UCX data message was received\n");
    +
    printf("\n\n----- UCP TEST SUCCESS -------\n\n");
    +
    } else {
    +
    printf("Client: iteration #%d\n", (current_iter + 1));
    +
    printf("\n\n------------------------------\n\n");
    +
    }
    +
    +
    print_iov(iov);
    +
    +
    printf("\n\n------------------------------\n\n");
    +
    }
    +
    +
    static ucs_status_t request_wait(ucp_worker_h ucp_worker, void *request,
    +
    test_req_t *ctx)
    +
    {
    +
    ucs_status_t status;
    +
    +
    /* if operation was completed immediately */
    +
    if (request == NULL) {
    +
    return UCS_OK;
    +
    }
    +
    +
    if (UCS_PTR_IS_ERR(request)) {
    +
    return UCS_PTR_STATUS(request);
    +
    }
    +
    +
    while (ctx->complete == 0) {
    +
    ucp_worker_progress(ucp_worker);
    +
    }
    +
    status = ucp_request_check_status(request);
    +
    +
    ucp_request_free(request);
    +
    +
    return status;
    +
    }
    +
    +
    static int request_finalize(ucp_worker_h ucp_worker, test_req_t *request,
    +
    test_req_t *ctx, int is_server, ucp_dt_iov_t *iov,
    +
    int current_iter)
    +
    {
    +
    int ret = 0;
    +
    ucs_status_t status;
    +
    +
    status = request_wait(ucp_worker, request, ctx);
    +
    if (status != UCS_OK) {
    +
    fprintf(stderr, "unable to %s UCX message (%s)\n",
    +
    is_server ? "receive": "send", ucs_status_string(status));
    +
    ret = -1;
    +
    goto release_iov;
    +
    }
    +
    +
    /* Print the output of the first, last and every PRINT_INTERVAL iteration */
    +
    if ((current_iter == 0) || (current_iter == (num_iterations - 1)) ||
    +
    !((current_iter + 1) % (PRINT_INTERVAL))) {
    +
    print_result(is_server, iov, current_iter);
    +
    }
    +
    +
    release_iov:
    +
    buffer_free(iov);
    +
    return ret;
    +
    }
    +
    +
    static int
    +
    fill_request_param(ucp_dt_iov_t *iov, int is_client,
    +
    void **msg, size_t *msg_length,
    +
    test_req_t *ctx, ucp_request_param_t *param)
    +
    {
    +
    CHKERR_ACTION(buffer_malloc(iov) != 0, "allocate memory", return -1;);
    +
    +
    if (is_client && (fill_buffer(iov) != 0)) {
    +
    buffer_free(iov);
    +
    return -1;
    +
    }
    +
    +
    *msg = (iov_cnt == 1) ? iov[0].buffer : iov;
    +
    *msg_length = (iov_cnt == 1) ? iov[0].length : iov_cnt;
    +
    +
    ctx->complete = 0;
    + + + +
    param->datatype = (iov_cnt == 1) ? ucp_dt_make_contig(1) :
    + +
    param->user_data = ctx;
    +
    +
    return 0;
    +
    }
    +
    +
    static int send_recv_stream(ucp_worker_h ucp_worker, ucp_ep_h ep, int is_server,
    +
    int current_iter)
    +
    {
    +
    ucp_dt_iov_t *iov = alloca(iov_cnt * sizeof(ucp_dt_iov_t));
    + +
    test_req_t *request;
    +
    size_t msg_length;
    +
    void *msg;
    +
    test_req_t ctx;
    +
    +
    memset(iov, 0, iov_cnt * sizeof(*iov));
    +
    +
    if (fill_request_param(iov, !is_server, &msg, &msg_length,
    +
    &ctx, &param) != 0) {
    +
    return -1;
    +
    }
    +
    +
    if (!is_server) {
    +
    /* Client sends a message to the server using the stream API */
    +
    param.cb.send = send_cb;
    +
    request = ucp_stream_send_nbx(ep, msg, msg_length, &param);
    +
    } else {
    +
    /* Server receives a message from the client using the stream API */
    + + +
    param.cb.recv_stream = stream_recv_cb;
    +
    request = ucp_stream_recv_nbx(ep, msg, msg_length,
    +
    &msg_length, &param);
    +
    }
    +
    +
    return request_finalize(ucp_worker, request, &ctx, is_server, iov,
    +
    current_iter);
    +
    }
    +
    +
    static int send_recv_tag(ucp_worker_h ucp_worker, ucp_ep_h ep, int is_server,
    +
    int current_iter)
    +
    {
    +
    ucp_dt_iov_t *iov = alloca(iov_cnt * sizeof(ucp_dt_iov_t));
    + +
    void *request;
    +
    size_t msg_length;
    +
    void *msg;
    +
    test_req_t ctx;
    +
    +
    memset(iov, 0, iov_cnt * sizeof(*iov));
    +
    +
    if (fill_request_param(iov, !is_server, &msg, &msg_length,
    +
    &ctx, &param) != 0) {
    +
    return -1;
    +
    }
    +
    +
    if (!is_server) {
    +
    /* Client sends a message to the server using the Tag-Matching API */
    +
    param.cb.send = send_cb;
    +
    request = ucp_tag_send_nbx(ep, msg, msg_length, TAG, &param);
    +
    } else {
    +
    /* Server receives a message from the client using the Tag-Matching API */
    +
    param.cb.recv = tag_recv_cb;
    +
    request = ucp_tag_recv_nbx(ucp_worker, msg, msg_length, TAG, 0,
    +
    &param);
    +
    }
    +
    +
    return request_finalize(ucp_worker, request, &ctx, is_server, iov,
    +
    current_iter);
    +
    }
    +
    +
    ucs_status_t ucp_am_data_cb(void *arg, const void *header, size_t header_length,
    +
    void *data, size_t length,
    +
    const ucp_am_recv_param_t *param)
    +
    {
    + +
    size_t idx;
    +
    size_t offset;
    +
    +
    if (length != iov_cnt * test_string_length) {
    +
    fprintf(stderr, "received wrong data length %ld (expected %ld)",
    +
    length, iov_cnt * test_string_length);
    +
    return UCS_OK;
    +
    }
    +
    +
    if (header_length != 0) {
    +
    fprintf(stderr, "received unexpected header, length %ld", header_length);
    +
    }
    +
    +
    am_data_desc.complete++;
    +
    + +
    /* Rendezvous request arrived, data contains an internal UCX descriptor,
    +
    * which has to be passed to ucp_am_recv_data_nbx function to confirm
    +
    * data transfer.
    +
    */
    +
    am_data_desc.is_rndv = 1;
    +
    am_data_desc.desc = data;
    + +
    }
    +
    +
    /* Message delivered with eager protocol, data should be available
    +
    * immediately
    +
    */
    +
    am_data_desc.is_rndv = 0;
    +
    +
    iov = am_data_desc.recv_buf;
    +
    offset = 0;
    +
    for (idx = 0; idx < iov_cnt; idx++) {
    +
    mem_type_memcpy(iov[idx].buffer, UCS_PTR_BYTE_OFFSET(data, offset),
    +
    iov[idx].length);
    +
    offset += iov[idx].length;
    +
    }
    +
    +
    return UCS_OK;
    +
    }
    +
    +
    static int send_recv_am(ucp_worker_h ucp_worker, ucp_ep_h ep, int is_server,
    +
    int current_iter)
    +
    {
    +
    static int last = 0;
    +
    ucp_dt_iov_t *iov = alloca(iov_cnt * sizeof(ucp_dt_iov_t));
    +
    test_req_t *request;
    + +
    size_t msg_length;
    +
    void *msg;
    +
    test_req_t ctx;
    +
    +
    memset(iov, 0, iov_cnt * sizeof(*iov));
    +
    +
    if (fill_request_param(iov, !is_server, &msg, &msg_length,
    +
    &ctx, &params) != 0) {
    +
    return -1;
    +
    }
    +
    +
    if (is_server) {
    +
    am_data_desc.recv_buf = iov;
    +
    +
    /* waiting for AM callback has called */
    +
    while (last == am_data_desc.complete) {
    +
    ucp_worker_progress(ucp_worker);
    +
    }
    +
    +
    last++;
    +
    +
    if (am_data_desc.is_rndv) {
    +
    /* Rendezvous request has arrived, need to invoke receive operation
    +
    * to confirm data transfer from the sender to the "recv_message"
    +
    * buffer. */
    + +
    params.cb.recv_am = am_recv_cb;
    +
    request = ucp_am_recv_data_nbx(ucp_worker,
    +
    am_data_desc.desc,
    +
    msg, msg_length,
    +
    &params);
    +
    } else {
    +
    /* Data has arrived eagerly and is ready for use, no need to
    +
    * initiate receive operation. */
    +
    request = NULL;
    +
    }
    +
    } else {
    +
    /* Client sends a message to the server using the AM API */
    +
    params.cb.send = (ucp_send_nbx_callback_t)send_cb;
    +
    request = ucp_am_send_nbx(ep, TEST_AM_ID, NULL, 0ul, msg,
    +
    msg_length, &params);
    +
    }
    +
    +
    return request_finalize(ucp_worker, request, &ctx, is_server, iov,
    +
    current_iter);
    +
    }
    +
    +
    static void usage()
    +
    {
    +
    fprintf(stderr, "Usage: ucp_client_server [parameters]\n");
    +
    fprintf(stderr, "UCP client-server example utility\n");
    +
    fprintf(stderr, "\nParameters are:\n");
    +
    fprintf(stderr, " -a Set IP address of the server "
    +
    "(required for client and should not be specified "
    +
    "for the server)\n");
    +
    fprintf(stderr, " -l Set IP address where server listens "
    +
    "(If not specified, server uses INADDR_ANY; "
    +
    "Irrelevant at client)\n");
    +
    fprintf(stderr, " -p Port number to listen/connect to (default = %d). "
    +
    "0 on the server side means select a random port and print it\n",
    +
    DEFAULT_PORT);
    +
    fprintf(stderr, " -c Communication type for the client and server. "
    +
    " Valid values are:\n"
    +
    " 'stream' : Stream API\n"
    +
    " 'tag' : Tag API\n"
    +
    " 'am' : AM API\n"
    +
    " If not specified, %s API will be used.\n", COMM_TYPE_DEFAULT);
    +
    fprintf(stderr, " -i Number of iterations to run. Client and server must "
    +
    "have the same value. (default = %d).\n",
    +
    num_iterations);
    +
    fprintf(stderr, " -v Number of buffers in a single data "
    +
    "transfer function call. (default = %ld).\n",
    +
    iov_cnt);
    +
    print_common_help();
    +
    fprintf(stderr, "\n");
    +
    }
    +
    +
    static int parse_cmd(int argc, char *const argv[], char **server_addr,
    +
    char **listen_addr, send_recv_type_t *send_recv_type)
    +
    {
    +
    int c = 0;
    +
    int port;
    +
    +
    while ((c = getopt(argc, argv, "a:l:p:c:6i:s:v:m:h")) != -1) {
    +
    switch (c) {
    +
    case 'a':
    +
    *server_addr = optarg;
    +
    break;
    +
    case 'c':
    +
    if (!strcasecmp(optarg, "stream")) {
    +
    *send_recv_type = CLIENT_SERVER_SEND_RECV_STREAM;
    +
    } else if (!strcasecmp(optarg, "tag")) {
    +
    *send_recv_type = CLIENT_SERVER_SEND_RECV_TAG;
    +
    } else if (!strcasecmp(optarg, "am")) {
    +
    *send_recv_type = CLIENT_SERVER_SEND_RECV_AM;
    +
    } else {
    +
    fprintf(stderr, "Wrong communication type %s. "
    +
    "Using %s as default\n", optarg, COMM_TYPE_DEFAULT);
    +
    *send_recv_type = CLIENT_SERVER_SEND_RECV_DEFAULT;
    +
    }
    +
    break;
    +
    case 'l':
    +
    *listen_addr = optarg;
    +
    break;
    +
    case 'p':
    +
    port = atoi(optarg);
    +
    if ((port < 0) || (port > UINT16_MAX)) {
    +
    fprintf(stderr, "Wrong server port number %d\n", port);
    +
    return -1;
    +
    }
    +
    server_port = port;
    +
    break;
    +
    case '6':
    +
    ai_family = AF_INET6;
    +
    break;
    +
    case 'i':
    +
    num_iterations = atoi(optarg);
    +
    break;
    +
    case 's':
    +
    test_string_length = atol(optarg);
    +
    if (test_string_length < 0) {
    +
    fprintf(stderr, "Wrong string size %ld\n", test_string_length);
    + +
    }
    +
    break;
    +
    case 'v':
    +
    iov_cnt = atol(optarg);
    +
    if (iov_cnt <= 0) {
    +
    fprintf(stderr, "Wrong iov count %ld\n", iov_cnt);
    + +
    }
    +
    break;
    +
    case 'm':
    +
    test_mem_type = parse_mem_type(optarg);
    +
    if (test_mem_type == UCS_MEMORY_TYPE_LAST) {
    + +
    }
    +
    break;
    +
    case 'h':
    +
    default:
    +
    usage();
    +
    return -1;
    +
    }
    +
    }
    +
    +
    return 0;
    +
    }
    +
    +
    static char* sockaddr_get_ip_str(const struct sockaddr_storage *sock_addr,
    +
    char *ip_str, size_t max_size)
    +
    {
    +
    struct sockaddr_in addr_in;
    +
    struct sockaddr_in6 addr_in6;
    +
    +
    switch (sock_addr->ss_family) {
    +
    case AF_INET:
    +
    memcpy(&addr_in, sock_addr, sizeof(struct sockaddr_in));
    +
    inet_ntop(AF_INET, &addr_in.sin_addr, ip_str, max_size);
    +
    return ip_str;
    +
    case AF_INET6:
    +
    memcpy(&addr_in6, sock_addr, sizeof(struct sockaddr_in6));
    +
    inet_ntop(AF_INET6, &addr_in6.sin6_addr, ip_str, max_size);
    +
    return ip_str;
    +
    default:
    +
    return "Invalid address family";
    +
    }
    +
    }
    +
    +
    static char* sockaddr_get_port_str(const struct sockaddr_storage *sock_addr,
    +
    char *port_str, size_t max_size)
    +
    {
    +
    struct sockaddr_in addr_in;
    +
    struct sockaddr_in6 addr_in6;
    +
    +
    switch (sock_addr->ss_family) {
    +
    case AF_INET:
    +
    memcpy(&addr_in, sock_addr, sizeof(struct sockaddr_in));
    +
    snprintf(port_str, max_size, "%d", ntohs(addr_in.sin_port));
    +
    return port_str;
    +
    case AF_INET6:
    +
    memcpy(&addr_in6, sock_addr, sizeof(struct sockaddr_in6));
    +
    snprintf(port_str, max_size, "%d", ntohs(addr_in6.sin6_port));
    +
    return port_str;
    +
    default:
    +
    return "Invalid address family";
    +
    }
    +
    }
    +
    +
    static int client_server_communication(ucp_worker_h worker, ucp_ep_h ep,
    +
    send_recv_type_t send_recv_type,
    +
    int is_server, int current_iter)
    +
    {
    +
    int ret;
    +
    +
    switch (send_recv_type) {
    +
    case CLIENT_SERVER_SEND_RECV_STREAM:
    +
    /* Client-Server communication via Stream API */
    +
    ret = send_recv_stream(worker, ep, is_server, current_iter);
    +
    break;
    +
    case CLIENT_SERVER_SEND_RECV_TAG:
    +
    /* Client-Server communication via Tag-Matching API */
    +
    ret = send_recv_tag(worker, ep, is_server, current_iter);
    +
    break;
    +
    case CLIENT_SERVER_SEND_RECV_AM:
    +
    /* Client-Server communication via AM API. */
    +
    ret = send_recv_am(worker, ep, is_server, current_iter);
    +
    break;
    +
    default:
    +
    fprintf(stderr, "unknown send-recv type %d\n", send_recv_type);
    +
    return -1;
    +
    }
    +
    +
    return ret;
    +
    }
    +
    +
    static int init_worker(ucp_context_h ucp_context, ucp_worker_h *ucp_worker)
    +
    {
    +
    ucp_worker_params_t worker_params;
    +
    ucs_status_t status;
    +
    int ret = 0;
    +
    +
    memset(&worker_params, 0, sizeof(worker_params));
    +
    + + +
    +
    status = ucp_worker_create(ucp_context, &worker_params, ucp_worker);
    +
    if (status != UCS_OK) {
    +
    fprintf(stderr, "failed to ucp_worker_create (%s)\n", ucs_status_string(status));
    +
    ret = -1;
    +
    }
    +
    +
    return ret;
    +
    }
    +
    +
    static void server_conn_handle_cb(ucp_conn_request_h conn_request, void *arg)
    +
    {
    +
    ucx_server_ctx_t *context = arg;
    + +
    char ip_str[IP_STRING_LEN];
    +
    char port_str[PORT_STRING_LEN];
    +
    ucs_status_t status;
    +
    + +
    status = ucp_conn_request_query(conn_request, &attr);
    +
    if (status == UCS_OK) {
    +
    printf("Server received a connection request from client at address %s:%s\n",
    +
    sockaddr_get_ip_str(&attr.client_address, ip_str, sizeof(ip_str)),
    +
    sockaddr_get_port_str(&attr.client_address, port_str, sizeof(port_str)));
    +
    } else if (status != UCS_ERR_UNSUPPORTED) {
    +
    fprintf(stderr, "failed to query the connection request (%s)\n",
    +
    ucs_status_string(status));
    +
    }
    +
    +
    if (context->conn_request == NULL) {
    +
    context->conn_request = conn_request;
    +
    } else {
    +
    /* The server is already handling a connection request from a client,
    +
    * reject this new one */
    +
    printf("Rejecting a connection request. "
    +
    "Only one client at a time is supported.\n");
    +
    status = ucp_listener_reject(context->listener, conn_request);
    +
    if (status != UCS_OK) {
    +
    fprintf(stderr, "server failed to reject a connection request: (%s)\n",
    +
    ucs_status_string(status));
    +
    }
    +
    }
    +
    }
    +
    +
    static ucs_status_t server_create_ep(ucp_worker_h data_worker,
    +
    ucp_conn_request_h conn_request,
    +
    ucp_ep_h *server_ep)
    +
    {
    +
    ucp_ep_params_t ep_params;
    +
    ucs_status_t status;
    +
    +
    /* Server creates an ep to the client on the data worker.
    +
    * This is not the worker the listener was created on.
    +
    * The client side should have initiated the connection, leading
    +
    * to this ep's creation */
    + + +
    ep_params.conn_request = conn_request;
    +
    ep_params.err_handler.cb = err_cb;
    +
    ep_params.err_handler.arg = NULL;
    +
    +
    status = ucp_ep_create(data_worker, &ep_params, server_ep);
    +
    if (status != UCS_OK) {
    +
    fprintf(stderr, "failed to create an endpoint on the server: (%s)\n",
    +
    ucs_status_string(status));
    +
    }
    +
    +
    return status;
    +
    }
    +
    + +
    start_server(ucp_worker_h ucp_worker, ucx_server_ctx_t *context,
    +
    ucp_listener_h *listener_p, const char *address_str)
    +
    {
    +
    struct sockaddr_storage listen_addr;
    + + +
    ucs_status_t status;
    +
    char ip_str[IP_STRING_LEN];
    +
    char port_str[PORT_STRING_LEN];
    +
    +
    set_sock_addr(address_str, &listen_addr);
    +
    +
    params.field_mask = UCP_LISTENER_PARAM_FIELD_SOCK_ADDR |
    + +
    params.sockaddr.addr = (const struct sockaddr*)&listen_addr;
    +
    params.sockaddr.addrlen = sizeof(listen_addr);
    +
    params.conn_handler.cb = server_conn_handle_cb;
    +
    params.conn_handler.arg = context;
    +
    +
    /* Create a listener on the server side to listen on the given address.*/
    +
    status = ucp_listener_create(ucp_worker, &params, listener_p);
    +
    if (status != UCS_OK) {
    +
    fprintf(stderr, "failed to listen (%s)\n", ucs_status_string(status));
    +
    goto out;
    +
    }
    +
    +
    /* Query the created listener to get the port it is listening on. */
    + +
    status = ucp_listener_query(*listener_p, &attr);
    +
    if (status != UCS_OK) {
    +
    fprintf(stderr, "failed to query the listener (%s)\n",
    +
    ucs_status_string(status));
    +
    ucp_listener_destroy(*listener_p);
    +
    goto out;
    +
    }
    +
    +
    fprintf(stderr, "server is listening on IP %s port %s\n",
    +
    sockaddr_get_ip_str(&attr.sockaddr, ip_str, IP_STRING_LEN),
    +
    sockaddr_get_port_str(&attr.sockaddr, port_str, PORT_STRING_LEN));
    +
    +
    printf("Waiting for connection...\n");
    +
    +
    out:
    +
    return status;
    +
    }
    +
    +
    ucs_status_t register_am_recv_callback(ucp_worker_h worker)
    +
    {
    + +
    + + + +
    param.id = TEST_AM_ID;
    +
    param.cb = ucp_am_data_cb;
    +
    param.arg = worker; /* not used in our callback */
    +
    +
    return ucp_worker_set_am_recv_handler(worker, &param);
    +
    }
    +
    +
    static int client_server_do_work(ucp_worker_h ucp_worker, ucp_ep_h ep,
    +
    send_recv_type_t send_recv_type, int is_server)
    +
    {
    +
    int i, ret = 0;
    +
    ucs_status_t status;
    +
    +
    connection_closed = 0;
    +
    +
    for (i = 0; i < num_iterations; i++) {
    +
    ret = client_server_communication(ucp_worker, ep, send_recv_type,
    +
    is_server, i);
    +
    if (ret != 0) {
    +
    fprintf(stderr, "%s failed on iteration #%d\n",
    +
    (is_server ? "server": "client"), i + 1);
    +
    goto out;
    +
    }
    +
    }
    +
    +
    /* Register recv callback on the client side to receive FIN message */
    +
    if (!is_server && (send_recv_type == CLIENT_SERVER_SEND_RECV_AM)) {
    +
    status = register_am_recv_callback(ucp_worker);
    +
    if (status != UCS_OK) {
    +
    ret = -1;
    +
    goto out;
    +
    }
    +
    }
    +
    +
    /* FIN message in reverse direction to acknowledge delivery */
    +
    ret = client_server_communication(ucp_worker, ep, send_recv_type,
    +
    !is_server, i + 1);
    +
    if (ret != 0) {
    +
    fprintf(stderr, "%s failed on FIN message\n",
    +
    (is_server ? "server": "client"));
    +
    goto out;
    +
    }
    +
    +
    printf("%s FIN message\n", is_server ? "sent" : "received");
    +
    +
    /* Server waits until the client closed the connection after receiving FIN */
    +
    while (is_server && !connection_closed) {
    +
    ucp_worker_progress(ucp_worker);
    +
    }
    +
    +
    out:
    +
    return ret;
    +
    }
    +
    +
    static int run_server(ucp_context_h ucp_context, ucp_worker_h ucp_worker,
    +
    char *listen_addr, send_recv_type_t send_recv_type)
    +
    {
    +
    ucx_server_ctx_t context;
    +
    ucp_worker_h ucp_data_worker;
    +
    ucp_ep_h server_ep;
    +
    ucs_status_t status;
    +
    int ret;
    +
    +
    /* Create a data worker (to be used for data exchange between the server
    +
    * and the client after the connection between them was established) */
    +
    ret = init_worker(ucp_context, &ucp_data_worker);
    +
    if (ret != 0) {
    +
    goto err;
    +
    }
    +
    +
    if (send_recv_type == CLIENT_SERVER_SEND_RECV_AM) {
    +
    status = register_am_recv_callback(ucp_data_worker);
    +
    if (status != UCS_OK) {
    +
    ret = -1;
    +
    goto err_worker;
    +
    }
    +
    }
    +
    +
    /* Initialize the server's context. */
    +
    context.conn_request = NULL;
    +
    +
    /* Create a listener on the worker created at first. The 'connection
    +
    * worker' - used for connection establishment between client and server.
    +
    * This listener will stay open for listening to incoming connection
    +
    * requests from the client */
    +
    status = start_server(ucp_worker, &context, &context.listener, listen_addr);
    +
    if (status != UCS_OK) {
    +
    ret = -1;
    +
    goto err_worker;
    +
    }
    +
    +
    /* Server is always up listening */
    +
    while (1) {
    +
    /* Wait for the server to receive a connection request from the client.
    +
    * If there are multiple clients for which the server's connection request
    +
    * callback is invoked, i.e. several clients are trying to connect in
    +
    * parallel, the server will handle only the first one and reject the rest */
    +
    while (context.conn_request == NULL) {
    +
    ucp_worker_progress(ucp_worker);
    +
    }
    +
    +
    /* Server creates an ep to the client on the data worker.
    +
    * This is not the worker the listener was created on.
    +
    * The client side should have initiated the connection, leading
    +
    * to this ep's creation */
    +
    status = server_create_ep(ucp_data_worker, context.conn_request,
    +
    &server_ep);
    +
    if (status != UCS_OK) {
    +
    ret = -1;
    +
    goto err_listener;
    +
    }
    +
    +
    /* The server waits for all the iterations to complete before moving on
    +
    * to the next client */
    +
    ret = client_server_do_work(ucp_data_worker, server_ep, send_recv_type,
    +
    1);
    +
    if (ret != 0) {
    +
    goto err_ep;
    +
    }
    +
    +
    /* Close the endpoint to the client */
    +
    ep_close(ucp_data_worker, server_ep, UCP_EP_CLOSE_FLAG_FORCE);
    +
    +
    /* Reinitialize the server's context to be used for the next client */
    +
    context.conn_request = NULL;
    +
    +
    printf("Waiting for connection...\n");
    +
    }
    +
    +
    err_ep:
    +
    ep_close(ucp_data_worker, server_ep, UCP_EP_CLOSE_FLAG_FORCE);
    +
    err_listener:
    +
    ucp_listener_destroy(context.listener);
    +
    err_worker:
    +
    ucp_worker_destroy(ucp_data_worker);
    +
    err:
    +
    return ret;
    +
    }
    +
    +
    static int run_client(ucp_worker_h ucp_worker, char *server_addr,
    +
    send_recv_type_t send_recv_type)
    +
    {
    +
    ucp_ep_h client_ep;
    +
    ucs_status_t status;
    +
    int ret;
    +
    +
    status = start_client(ucp_worker, server_addr, &client_ep);
    +
    if (status != UCS_OK) {
    +
    fprintf(stderr, "failed to start client (%s)\n", ucs_status_string(status));
    +
    ret = -1;
    +
    goto out;
    +
    }
    +
    +
    ret = client_server_do_work(ucp_worker, client_ep, send_recv_type, 0);
    +
    +
    /* Close the endpoint to the server */
    +
    ep_close(ucp_worker, client_ep, UCP_EP_CLOSE_FLAG_FORCE);
    +
    +
    out:
    +
    return ret;
    +
    }
    +
    +
    static int init_context(ucp_context_h *ucp_context, ucp_worker_h *ucp_worker,
    +
    send_recv_type_t send_recv_type)
    +
    {
    +
    /* UCP objects */
    + +
    ucs_status_t status;
    +
    int ret = 0;
    +
    +
    memset(&ucp_params, 0, sizeof(ucp_params));
    +
    +
    /* UCP initialization */
    + +
    ucp_params.name = "client_server";
    +
    +
    if (send_recv_type == CLIENT_SERVER_SEND_RECV_STREAM) {
    + +
    } else if (send_recv_type == CLIENT_SERVER_SEND_RECV_TAG) {
    + +
    } else {
    + +
    }
    +
    +
    status = ucp_init(&ucp_params, NULL, ucp_context);
    +
    if (status != UCS_OK) {
    +
    fprintf(stderr, "failed to ucp_init (%s)\n", ucs_status_string(status));
    +
    ret = -1;
    +
    goto err;
    +
    }
    +
    +
    ret = init_worker(*ucp_context, ucp_worker);
    +
    if (ret != 0) {
    +
    goto err_cleanup;
    +
    }
    +
    +
    return ret;
    +
    +
    err_cleanup:
    +
    ucp_cleanup(*ucp_context);
    +
    err:
    +
    return ret;
    +
    }
    +
    +
    +
    int main(int argc, char **argv)
    +
    {
    +
    send_recv_type_t send_recv_type = CLIENT_SERVER_SEND_RECV_DEFAULT;
    +
    char *server_addr = NULL;
    +
    char *listen_addr = NULL;
    +
    int ret;
    +
    +
    /* UCP objects */
    +
    ucp_context_h ucp_context;
    +
    ucp_worker_h ucp_worker;
    +
    +
    ret = parse_cmd(argc, argv, &server_addr, &listen_addr, &send_recv_type);
    +
    if (ret != 0) {
    +
    goto err;
    +
    }
    +
    +
    /* Initialize the UCX required objects */
    +
    ret = init_context(&ucp_context, &ucp_worker, send_recv_type);
    +
    if (ret != 0) {
    +
    goto err;
    +
    }
    +
    +
    /* Client-Server initialization */
    +
    if (server_addr == NULL) {
    +
    /* Server side */
    +
    ret = run_server(ucp_context, ucp_worker, listen_addr, send_recv_type);
    +
    } else {
    +
    /* Client side */
    +
    ret = run_client(ucp_worker, server_addr, send_recv_type);
    +
    }
    +
    +
    ucp_worker_destroy(ucp_worker);
    +
    ucp_cleanup(ucp_context);
    +
    err:
    +
    return ret;
    +
    }
    +
    ucp_err_handler_cb_t cb
    Definition ucp_def.h:367
    +
    void * arg
    Definition ucp_def.h:369
    +
    void ucp_request_free(void *request)
    Release a communications request.
    +
    ucs_status_ptr_t ucp_stream_recv_nbx(ucp_ep_h ep, void *buffer, size_t count, size_t *length, const ucp_request_param_t *param)
    Non-blocking stream receive operation of structured data into a user-supplied buffer.
    +
    ucs_status_ptr_t ucp_am_send_nbx(ucp_ep_h ep, unsigned id, const void *header, size_t header_length, const void *buffer, size_t count, const ucp_request_param_t *param)
    Send Active Message.
    +
    ucs_status_ptr_t ucp_tag_send_nbx(ucp_ep_h ep, const void *buffer, size_t count, ucp_tag_t tag, const ucp_request_param_t *param)
    Non-blocking tagged-send operation.
    +
    ucs_status_ptr_t ucp_tag_recv_nbx(ucp_worker_h worker, void *buffer, size_t count, ucp_tag_t tag, ucp_tag_t tag_mask, const ucp_request_param_t *param)
    Non-blocking tagged-receive operation.
    +
    ucs_status_t ucp_request_check_status(void *request)
    Check the status of non-blocking request.
    +
    ucs_status_ptr_t ucp_stream_send_nbx(ucp_ep_h ep, const void *buffer, size_t count, const ucp_request_param_t *param)
    Non-blocking stream send operation.
    +
    void(* ucp_send_nbx_callback_t)(void *request, ucs_status_t status, void *user_data)
    Completion callback for non-blocking sends.
    Definition ucp_def.h:340
    +
    ucs_status_ptr_t ucp_am_recv_data_nbx(ucp_worker_h worker, void *data_desc, void *buffer, size_t count, const ucp_request_param_t *param)
    Receive Active Message as defined by provided data descriptor.
    +
    @ UCP_AM_RECV_ATTR_FLAG_RNDV
    Definition ucp.h:788
    +
    @ UCP_OP_ATTR_FIELD_FLAGS
    Definition ucp.h:711
    +
    @ UCP_OP_ATTR_FIELD_DATATYPE
    Definition ucp.h:710
    +
    @ UCP_OP_ATTR_FIELD_CALLBACK
    Definition ucp.h:708
    +
    @ UCP_OP_ATTR_FLAG_NO_IMM_CMPL
    Definition ucp.h:717
    +
    @ UCP_OP_ATTR_FIELD_USER_DATA
    Definition ucp.h:709
    +
    @ UCP_STREAM_RECV_FLAG_WAITALL
    Definition ucp.h:689
    +
    @ UCP_AM_HANDLER_PARAM_FIELD_ARG
    Definition ucp.h:815
    +
    @ UCP_AM_HANDLER_PARAM_FIELD_ID
    Definition ucp.h:803
    +
    @ UCP_AM_HANDLER_PARAM_FIELD_CB
    Definition ucp.h:811
    +
    uint64_t field_mask
    Definition ucp.h:1041
    +
    const char * name
    Definition ucp.h:1136
    +
    uint64_t features
    Definition ucp.h:1049
    +
    Tuning parameters for UCP library.
    Definition ucp.h:1035
    +
    union ucp_request_param_t::@2 cb
    +
    ucp_datatype_t datatype
    Definition ucp.h:1776
    +
    uint32_t flags
    Definition ucp.h:1750
    +
    uint32_t op_attr_mask
    Definition ucp.h:1747
    +
    void * user_data
    Definition ucp.h:1781
    +
    struct ucp_context * ucp_context_h
    UCP Application Context.
    Definition ucp_def.h:60
    +
    static ucs_status_t ucp_init(const ucp_params_t *params, const ucp_config_t *config, ucp_context_h *context_p)
    UCP context initialization.
    Definition ucp.h:2084
    +
    void ucp_cleanup(ucp_context_h context_p)
    Release UCP application context.
    +
    @ UCP_PARAM_FIELD_FEATURES
    Definition ucp.h:120
    +
    @ UCP_PARAM_FIELD_NAME
    Definition ucp.h:128
    +
    @ UCP_FEATURE_STREAM
    Definition ucp.h:157
    +
    @ UCP_FEATURE_TAG
    Definition ucp.h:142
    +
    @ UCP_FEATURE_AM
    Definition ucp.h:160
    +
    Operation parameters passed to ucp_tag_send_nbx, ucp_tag_send_sync_nbx, ucp_tag_recv_nbx,...
    Definition ucp.h:1741
    +
    UCP receive information descriptor.
    Definition ucp.h:1693
    +
    void * buffer
    Definition ucp.h:865
    +
    size_t length
    Definition ucp.h:866
    +
    #define ucp_dt_make_contig(_elem_size)
    Generate an identifier for contiguous data type.
    Definition ucp.h:833
    +
    @ UCP_DATATYPE_IOV
    Definition ucp.h:506
    +
    Structure for scatter-gather I/O.
    Definition ucp.h:864
    +
    ucp_err_handling_mode_t err_mode
    Definition ucp_def.h:704
    +
    unsigned flags
    Definition ucp_def.h:724
    +
    ucp_conn_request_h conn_request
    Definition ucp_def.h:743
    +
    ucs_sock_addr_t sockaddr
    Definition ucp_def.h:733
    +
    ucp_err_handler_t err_handler
    Definition ucp_def.h:709
    +
    uint64_t field_mask
    Definition ucp_def.h:690
    +
    struct ucp_conn_request * ucp_conn_request_h
    UCP connection request.
    Definition ucp_def.h:102
    +
    ucs_status_t ucp_ep_create(ucp_worker_h worker, const ucp_ep_params_t *params, ucp_ep_h *ep_p)
    Create and connect an endpoint.
    +
    struct ucp_ep * ucp_ep_h
    UCP Endpoint.
    Definition ucp_def.h:92
    +
    @ UCP_EP_PARAMS_FLAGS_CLIENT_SERVER
    Definition ucp.h:279
    +
    @ UCP_ERR_HANDLING_MODE_PEER
    Definition ucp_def.h:130
    +
    @ UCP_EP_PARAM_FIELD_ERR_HANDLING_MODE
    Definition ucp.h:257
    +
    @ UCP_EP_PARAM_FIELD_FLAGS
    Definition ucp.h:263
    +
    @ UCP_EP_PARAM_FIELD_SOCK_ADDR
    Definition ucp.h:262
    +
    @ UCP_EP_PARAM_FIELD_CONN_REQUEST
    Definition ucp.h:265
    +
    @ UCP_EP_PARAM_FIELD_ERR_HANDLER
    Definition ucp.h:259
    +
    @ UCP_EP_CLOSE_FLAG_FORCE
    Definition ucp.h:314
    +
    Tuning parameters for the UCP endpoint.
    Definition ucp_def.h:683
    +
    uint64_t field_mask
    Definition ucp.h:1299
    +
    uint64_t recv_attr
    Definition ucp.h:1910
    +
    ucs_thread_mode_t thread_mode
    Definition ucp.h:1313
    +
    struct sockaddr_storage client_address
    Definition ucp.h:1507
    +
    uint64_t field_mask
    Definition ucp.h:1874
    +
    uint64_t field_mask
    Definition ucp.h:1477
    +
    ucp_am_recv_callback_t cb
    Definition ucp.h:1890
    +
    unsigned id
    Definition ucp.h:1879
    +
    uint64_t field_mask
    Definition ucp.h:1501
    +
    void * arg
    Definition ucp.h:1896
    +
    struct sockaddr_storage sockaddr
    Definition ucp.h:1483
    +
    ucs_status_t ucp_worker_create(ucp_context_h context, const ucp_worker_params_t *params, ucp_worker_h *worker_p)
    Create a worker object.
    +
    ucs_status_t ucp_listener_reject(ucp_listener_h listener, ucp_conn_request_h conn_request)
    Reject an incoming connection request.
    +
    unsigned ucp_worker_progress(ucp_worker_h worker)
    Progress all communications on a specific worker.
    +
    ucs_status_t ucp_worker_set_am_recv_handler(ucp_worker_h worker, const ucp_am_handler_param_t *param)
    Add user defined callback for Active Message.
    +
    ucs_status_t ucp_conn_request_query(ucp_conn_request_h conn_request, ucp_conn_request_attr_t *attr)
    Get attributes specific to a particular connection request received on the server side.
    +
    struct ucp_worker * ucp_worker_h
    UCP Worker.
    Definition ucp_def.h:246
    +
    void ucp_worker_destroy(ucp_worker_h worker)
    Destroy a worker object.
    +
    ucs_status_t ucp_listener_query(ucp_listener_h listener, ucp_listener_attr_t *attr)
    Get attributes specific to a particular listener.
    +
    ucs_status_t ucp_listener_create(ucp_worker_h worker, const ucp_listener_params_t *params, ucp_listener_h *listener_p)
    Create a listener to accept connections on. Connection requests on the listener will arrive at a loca...
    +
    struct ucp_listener * ucp_listener_h
    UCP listen handle.
    Definition ucp_def.h:177
    +
    void ucp_listener_destroy(ucp_listener_h listener)
    Stop accepting connections on a local address of the worker object.
    +
    @ UCP_CONN_REQUEST_ATTR_FIELD_CLIENT_ADDR
    Definition ucp.h:492
    +
    @ UCP_LISTENER_PARAM_FIELD_SOCK_ADDR
    Definition ucp.h:217
    +
    @ UCP_LISTENER_PARAM_FIELD_CONN_HANDLER
    Definition ucp.h:226
    +
    @ UCP_LISTENER_ATTR_FIELD_SOCKADDR
    Definition ucp.h:480
    +
    @ UCP_WORKER_PARAM_FIELD_THREAD_MODE
    Definition ucp.h:179
    +
    Active Message handler parameters passed to ucp_worker_set_am_recv_handler routine.
    Definition ucp.h:1868
    +
    Operation parameters provided in ucp_am_recv_callback_t callback.
    Definition ucp.h:1904
    +
    UCP listener's connection request attributes.
    Definition ucp.h:1494
    +
    UCP listener attributes.
    Definition ucp.h:1470
    +
    Parameters for a UCP listener object.
    Definition ucp.h:1524
    +
    Tuning parameters for the UCP worker.
    Definition ucp.h:1293
    +
    const struct sockaddr * addr
    Definition types.h:138
    +
    socklen_t addrlen
    Definition types.h:139
    +
    ucs_status_t
    Status codes.
    Definition status.h:45
    +
    @ UCS_THREAD_MODE_SINGLE
    Definition thread_mode.h:20
    +
    @ UCS_MEMORY_TYPE_LAST
    Definition memory_type.h:48
    +
    @ UCS_OK
    Definition status.h:47
    +
    @ UCS_ERR_UNSUPPORTED
    Definition status.h:74
    +
    @ UCS_INPROGRESS
    Definition status.h:50
    +
    +
    + + + + diff --git a/api/v1.17/html/ucp_hello_world_8c-example.html b/api/v1.17/html/ucp_hello_world_8c-example.html new file mode 100644 index 00000000000..e802c4e1426 --- /dev/null +++ b/api/v1.17/html/ucp_hello_world_8c-example.html @@ -0,0 +1,947 @@ + + + + + + + +UCX: ucp_hello_world.c + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    UCX 1.17 +
    +
    Unified Communication X
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    ucp_hello_world.c
    +
    +
    +

    UCP hello world client / server example utility.

    +
    +
    #ifndef HAVE_CONFIG_H
    +
    # define HAVE_CONFIG_H /* Force using config.h, so test would fail if header
    +
    actually tries to use it */
    +
    #endif
    +
    +
    /*
    +
    * UCP hello world client / server example utility
    +
    * -----------------------------------------------
    +
    *
    +
    * Server side:
    +
    *
    +
    * ./ucp_hello_world
    +
    *
    +
    * Client side:
    +
    *
    +
    * ./ucp_hello_world -n <server host name>
    +
    *
    +
    * Notes:
    +
    *
    +
    * - Client acquires Server UCX address via TCP socket
    +
    *
    +
    *
    +
    * Author:
    +
    *
    +
    * Ilya Nelkenbaum <ilya@nelkenbaum.com>
    +
    * Sergey Shalnov <sergeysh@mellanox.com> 7-June-2016
    +
    */
    +
    +
    #include "hello_world_util.h"
    +
    #include "ucp_util.h"
    +
    +
    #include <ucp/api/ucp.h>
    +
    +
    #include <sys/socket.h>
    +
    #include <sys/types.h>
    +
    #include <sys/epoll.h>
    +
    #include <netinet/in.h>
    +
    #include <assert.h>
    +
    #include <netdb.h>
    +
    #include <stdio.h>
    +
    #include <stdlib.h>
    +
    #include <string.h>
    +
    #include <unistd.h> /* getopt */
    +
    #include <pthread.h> /* pthread_self */
    +
    #include <errno.h> /* errno */
    +
    #include <time.h>
    +
    #include <signal.h> /* raise */
    +
    +
    struct msg {
    +
    uint64_t data_len;
    +
    };
    +
    +
    struct ucx_context {
    +
    int completed;
    +
    };
    +
    +
    enum ucp_test_mode_t {
    +
    TEST_MODE_PROBE,
    +
    TEST_MODE_WAIT,
    +
    TEST_MODE_EVENTFD
    +
    } ucp_test_mode = TEST_MODE_PROBE;
    +
    +
    typedef enum {
    +
    FAILURE_MODE_NONE,
    +
    FAILURE_MODE_SEND, /* fail send operation on server */
    +
    FAILURE_MODE_RECV, /* fail receive operation on client */
    +
    FAILURE_MODE_KEEPALIVE /* fail without communication on client */
    +
    } failure_mode_t;
    +
    +
    static struct err_handling {
    + +
    failure_mode_t failure_mode;
    +
    } err_handling_opt;
    +
    +
    static ucs_status_t ep_status = UCS_OK;
    +
    static uint16_t server_port = 13337;
    +
    static sa_family_t ai_family = AF_INET;
    +
    static long test_string_length = 16;
    +
    static const ucp_tag_t tag = 0x1337a880u;
    +
    static const ucp_tag_t tag_mask = UINT64_MAX;
    +
    static const char *addr_msg_str = "UCX address message";
    +
    static const char *data_msg_str = "UCX data message";
    +
    static int print_config = 0;
    +
    +
    static ucs_status_t parse_cmd(int argc, char * const argv[], char **server_name);
    +
    +
    static void set_msg_data_len(struct msg *msg, uint64_t data_len)
    +
    {
    +
    mem_type_memcpy(&msg->data_len, &data_len, sizeof(data_len));
    +
    }
    +
    +
    static void request_init(void *request)
    +
    {
    +
    struct ucx_context *contex = (struct ucx_context *)request;
    +
    +
    contex->completed = 0;
    +
    }
    +
    +
    static void send_handler(void *request, ucs_status_t status, void *ctx)
    +
    {
    +
    struct ucx_context *context = (struct ucx_context *)request;
    +
    const char *str = (const char *)ctx;
    +
    +
    context->completed = 1;
    +
    +
    printf("[0x%x] send handler called for \"%s\" with status %d (%s)\n",
    +
    (unsigned int)pthread_self(), str, status,
    +
    ucs_status_string(status));
    +
    }
    +
    +
    static void failure_handler(void *arg, ucp_ep_h ep, ucs_status_t status)
    +
    {
    +
    ucs_status_t *arg_status = (ucs_status_t *)arg;
    +
    +
    printf("[0x%x] failure handler called with status %d (%s)\n",
    +
    (unsigned int)pthread_self(), status, ucs_status_string(status));
    +
    +
    *arg_status = status;
    +
    }
    +
    +
    static void recv_handler(void *request, ucs_status_t status,
    +
    const ucp_tag_recv_info_t *info, void *user_data)
    +
    {
    +
    struct ucx_context *context = (struct ucx_context *)request;
    +
    +
    context->completed = 1;
    +
    +
    printf("[0x%x] receive handler called with status %d (%s), length %lu\n",
    +
    (unsigned int)pthread_self(), status, ucs_status_string(status),
    +
    info->length);
    +
    }
    +
    +
    static ucs_status_t ucx_wait(ucp_worker_h ucp_worker, struct ucx_context *request,
    +
    const char *op_str, const char *data_str)
    +
    {
    +
    ucs_status_t status;
    +
    +
    if (UCS_PTR_IS_ERR(request)) {
    +
    status = UCS_PTR_STATUS(request);
    +
    } else if (UCS_PTR_IS_PTR(request)) {
    +
    while (!request->completed) {
    +
    ucp_worker_progress(ucp_worker);
    +
    }
    +
    +
    request->completed = 0;
    +
    status = ucp_request_check_status(request);
    +
    ucp_request_free(request);
    +
    } else {
    +
    status = UCS_OK;
    +
    }
    +
    +
    if (status != UCS_OK) {
    +
    fprintf(stderr, "unable to %s %s (%s)\n", op_str, data_str,
    +
    ucs_status_string(status));
    +
    } else {
    +
    printf("finish to %s %s\n", op_str, data_str);
    +
    }
    +
    +
    return status;
    +
    }
    +
    +
    static ucs_status_t test_poll_wait(ucp_worker_h ucp_worker)
    +
    {
    +
    int err = 0;
    + +
    int epoll_fd_local = 0;
    +
    int epoll_fd = 0;
    +
    ucs_status_t status;
    +
    struct epoll_event ev;
    +
    ev.data.u64 = 0;
    +
    +
    status = ucp_worker_get_efd(ucp_worker, &epoll_fd);
    +
    CHKERR_JUMP(UCS_OK != status, "ucp_worker_get_efd", err);
    +
    +
    /* It is recommended to copy original fd */
    +
    epoll_fd_local = epoll_create(1);
    +
    +
    ev.data.fd = epoll_fd;
    +
    ev.events = EPOLLIN;
    +
    err = epoll_ctl(epoll_fd_local, EPOLL_CTL_ADD, epoll_fd, &ev);
    +
    CHKERR_JUMP(err < 0, "add original socket to the new epoll\n", err_fd);
    +
    +
    /* Need to prepare ucp_worker before epoll_wait */
    +
    status = ucp_worker_arm(ucp_worker);
    +
    if (status == UCS_ERR_BUSY) { /* some events are arrived already */
    +
    ret = UCS_OK;
    +
    goto err_fd;
    +
    }
    +
    CHKERR_JUMP(status != UCS_OK, "ucp_worker_arm\n", err_fd);
    +
    +
    do {
    +
    err = epoll_wait(epoll_fd_local, &ev, 1, -1);
    +
    } while ((err == -1) && (errno == EINTR));
    +
    +
    ret = UCS_OK;
    +
    +
    err_fd:
    +
    close(epoll_fd_local);
    +
    +
    err:
    +
    return ret;
    +
    }
    +
    +
    static void ep_close_err_mode(ucp_worker_h ucp_worker, ucp_ep_h ucp_ep)
    +
    {
    +
    uint64_t ep_close_flags;
    +
    +
    if (err_handling_opt.ucp_err_mode == UCP_ERR_HANDLING_MODE_PEER) {
    +
    ep_close_flags = UCP_EP_CLOSE_FLAG_FORCE;
    +
    } else {
    +
    ep_close_flags = 0;
    +
    }
    +
    +
    ep_close(ucp_worker, ucp_ep, ep_close_flags);
    +
    }
    +
    +
    static int run_ucx_client(ucp_worker_h ucp_worker,
    +
    ucp_address_t *local_addr, size_t local_addr_len,
    +
    ucp_address_t *peer_addr, size_t peer_addr_len)
    +
    {
    +
    struct msg *msg = NULL;
    +
    size_t msg_len = 0;
    +
    int ret = -1;
    +
    ucp_request_param_t send_param, recv_param;
    + + +
    ucs_status_t status;
    +
    ucp_ep_h server_ep;
    +
    ucp_ep_params_t ep_params;
    +
    struct ucx_context *request;
    +
    char *str;
    +
    +
    /* Send client UCX address to server */
    + + + + +
    ep_params.address = peer_addr;
    +
    ep_params.err_mode = err_handling_opt.ucp_err_mode;
    +
    ep_params.err_handler.cb = failure_handler;
    +
    ep_params.err_handler.arg = NULL;
    +
    ep_params.user_data = &ep_status;
    +
    +
    status = ucp_ep_create(ucp_worker, &ep_params, &server_ep);
    +
    CHKERR_JUMP(status != UCS_OK, "ucp_ep_create\n", err);
    +
    +
    msg_len = sizeof(*msg) + local_addr_len;
    +
    msg = malloc(msg_len);
    +
    CHKERR_JUMP(msg == NULL, "allocate memory\n", err_ep);
    +
    memset(msg, 0, msg_len);
    +
    +
    msg->data_len = local_addr_len;
    +
    memcpy(msg + 1, local_addr, local_addr_len);
    +
    + + +
    send_param.cb.send = send_handler;
    +
    send_param.user_data = (void*)addr_msg_str;
    +
    request = ucp_tag_send_nbx(server_ep, msg, msg_len, tag,
    +
    &send_param);
    +
    status = ucx_wait(ucp_worker, request, "send",
    +
    addr_msg_str);
    +
    if (status != UCS_OK) {
    +
    free(msg);
    +
    goto err_ep;
    +
    }
    +
    +
    free(msg);
    +
    +
    if (err_handling_opt.failure_mode == FAILURE_MODE_RECV) {
    +
    fprintf(stderr, "Emulating failure before receive operation on client side\n");
    +
    raise(SIGKILL);
    +
    }
    +
    +
    /* Receive test string from server */
    +
    for (;;) {
    +
    CHKERR_JUMP(ep_status != UCS_OK, "receive data: EP disconnected\n", err_ep);
    +
    /* Probing incoming events in non-block mode */
    +
    msg_tag = ucp_tag_probe_nb(ucp_worker, tag, tag_mask, 1, &info_tag);
    +
    if (msg_tag != NULL) {
    +
    /* Message arrived */
    +
    break;
    +
    } else if (ucp_worker_progress(ucp_worker)) {
    +
    /* Some events were polled; try again without going to sleep */
    +
    continue;
    +
    }
    +
    +
    /* If we got here, ucp_worker_progress() returned 0, so we can sleep.
    +
    * Following blocked methods used to polling internal file descriptor
    +
    * to make CPU idle and don't spin loop
    +
    */
    +
    if (ucp_test_mode == TEST_MODE_WAIT) {
    +
    /* Polling incoming events*/
    +
    status = ucp_worker_wait(ucp_worker);
    +
    CHKERR_JUMP(status != UCS_OK, "ucp_worker_wait\n", err_ep);
    +
    } else if (ucp_test_mode == TEST_MODE_EVENTFD) {
    +
    status = test_poll_wait(ucp_worker);
    +
    CHKERR_JUMP(status != UCS_OK, "test_poll_wait\n", err_ep);
    +
    }
    +
    }
    +
    +
    if (err_handling_opt.failure_mode == FAILURE_MODE_KEEPALIVE) {
    +
    fprintf(stderr, "Emulating unexpected failure after receive completion "
    +
    "on client side, server should detect error by "
    +
    "keepalive mechanism\n");
    +
    raise(SIGKILL);
    +
    }
    +
    +
    msg = mem_type_malloc(info_tag.length);
    +
    CHKERR_JUMP(msg == NULL, "allocate memory\n", err_ep);
    +
    + + + +
    recv_param.datatype = ucp_dt_make_contig(1);
    +
    recv_param.cb.recv = recv_handler;
    +
    +
    request = ucp_tag_msg_recv_nbx(ucp_worker, msg, info_tag.length, msg_tag,
    +
    &recv_param);
    +
    +
    status = ucx_wait(ucp_worker, request, "receive", data_msg_str);
    +
    if (status != UCS_OK) {
    +
    mem_type_free(msg);
    +
    goto err_ep;
    +
    }
    +
    +
    str = calloc(1, test_string_length);
    +
    if (str == NULL) {
    +
    fprintf(stderr, "Memory allocation failed\n");
    +
    ret = -1;
    +
    goto err_msg;
    +
    }
    +
    +
    mem_type_memcpy(str, msg + 1, test_string_length);
    +
    printf("\n\n----- UCP TEST SUCCESS ----\n\n");
    +
    printf("%s", str);
    +
    printf("\n\n---------------------------\n\n");
    +
    free(str);
    +
    ret = 0;
    +
    +
    err_msg:
    +
    mem_type_free(msg);
    +
    err_ep:
    +
    ep_close_err_mode(ucp_worker, server_ep);
    +
    err:
    +
    return ret;
    +
    }
    +
    +
    static ucs_status_t flush_ep(ucp_worker_h worker, ucp_ep_h ep)
    +
    {
    + +
    void *request;
    +
    +
    param.op_attr_mask = 0;
    +
    request = ucp_ep_flush_nbx(ep, &param);
    +
    if (request == NULL) {
    +
    return UCS_OK;
    +
    } else if (UCS_PTR_IS_ERR(request)) {
    +
    return UCS_PTR_STATUS(request);
    +
    } else {
    +
    ucs_status_t status;
    +
    do {
    + +
    status = ucp_request_check_status(request);
    +
    } while (status == UCS_INPROGRESS);
    +
    ucp_request_free(request);
    +
    return status;
    +
    }
    +
    }
    +
    +
    static int run_ucx_server(ucp_worker_h ucp_worker)
    +
    {
    +
    struct msg *msg = NULL;
    +
    struct ucx_context *request = NULL;
    +
    size_t msg_len = 0;
    +
    ucp_request_param_t send_param, recv_param;
    + + +
    ucs_status_t status;
    +
    ucp_ep_h client_ep;
    +
    ucp_ep_params_t ep_params;
    +
    ucp_address_t *peer_addr;
    +
    size_t peer_addr_len;
    +
    +
    int ret;
    +
    +
    /* Receive client UCX address */
    +
    do {
    +
    /* Progressing before probe to update the state */
    +
    ucp_worker_progress(ucp_worker);
    +
    +
    /* Probing incoming events in non-block mode */
    +
    msg_tag = ucp_tag_probe_nb(ucp_worker, tag, tag_mask, 1, &info_tag);
    +
    } while (msg_tag == NULL);
    +
    +
    msg = malloc(info_tag.length);
    +
    CHKERR_ACTION(msg == NULL, "allocate memory\n", ret = -1; goto err);
    +
    + + + +
    recv_param.datatype = ucp_dt_make_contig(1);
    +
    recv_param.cb.recv = recv_handler;
    +
    +
    request = ucp_tag_msg_recv_nbx(ucp_worker, msg, info_tag.length,
    +
    msg_tag, &recv_param);
    +
    +
    status = ucx_wait(ucp_worker, request, "receive", addr_msg_str);
    +
    if (status != UCS_OK) {
    +
    free(msg);
    +
    ret = -1;
    +
    goto err;
    +
    }
    +
    +
    if (err_handling_opt.failure_mode == FAILURE_MODE_SEND) {
    +
    fprintf(stderr, "Emulating unexpected failure on server side, client "
    +
    "should detect error by keepalive mechanism\n");
    +
    free(msg);
    +
    raise(SIGKILL);
    +
    exit(1);
    +
    }
    +
    +
    peer_addr_len = msg->data_len;
    +
    peer_addr = malloc(peer_addr_len);
    +
    if (peer_addr == NULL) {
    +
    fprintf(stderr, "unable to allocate memory for peer address\n");
    +
    free(msg);
    +
    ret = -1;
    +
    goto err;
    +
    }
    +
    +
    memcpy(peer_addr, msg + 1, peer_addr_len);
    +
    +
    free(msg);
    +
    +
    /* Send test string to client */
    + + + + +
    ep_params.address = peer_addr;
    +
    ep_params.err_mode = err_handling_opt.ucp_err_mode;
    +
    ep_params.err_handler.cb = failure_handler;
    +
    ep_params.err_handler.arg = NULL;
    +
    ep_params.user_data = &ep_status;
    +
    +
    status = ucp_ep_create(ucp_worker, &ep_params, &client_ep);
    +
    /* If peer failure testing was requested, it could be possible that UCP EP
    +
    * couldn't be created; in this case set `ret = 0` to report success */
    +
    ret = (err_handling_opt.failure_mode != FAILURE_MODE_NONE) ? 0 : -1;
    +
    CHKERR_ACTION(status != UCS_OK, "ucp_ep_create\n", goto err);
    +
    +
    msg_len = sizeof(*msg) + test_string_length;
    +
    msg = mem_type_malloc(msg_len);
    +
    CHKERR_ACTION(msg == NULL, "allocate memory\n", ret = -1; goto err_ep);
    +
    mem_type_memset(msg, 0, msg_len);
    +
    +
    set_msg_data_len(msg, msg_len - sizeof(*msg));
    +
    ret = generate_test_string((char *)(msg + 1), test_string_length);
    +
    CHKERR_JUMP(ret < 0, "generate test string", err_free_mem_type_msg);
    +
    +
    if (err_handling_opt.failure_mode == FAILURE_MODE_RECV) {
    +
    /* Sleep for small amount of time to ensure that client was killed
    +
    * and peer failure handling is covered */
    +
    sleep(5);
    +
    }
    +
    +
    ucp_worker_progress(ucp_worker);
    +
    + + + +
    send_param.cb.send = send_handler;
    +
    send_param.user_data = (void*)data_msg_str;
    +
    send_param.memory_type = test_mem_type;
    +
    request = ucp_tag_send_nbx(client_ep, msg, msg_len, tag,
    +
    &send_param);
    +
    status = ucx_wait(ucp_worker, request, "send",
    +
    data_msg_str);
    +
    if (status != UCS_OK) {
    +
    if (err_handling_opt.failure_mode != FAILURE_MODE_NONE) {
    +
    ret = -1;
    +
    } else {
    +
    /* If peer failure testing was requested, set `ret = 0` to report
    +
    * success from the application */
    +
    ret = 0;
    +
    +
    /* Make sure that failure_handler was called */
    +
    while (ep_status == UCS_OK) {
    +
    ucp_worker_progress(ucp_worker);
    +
    }
    +
    }
    +
    goto err_free_mem_type_msg;
    +
    }
    +
    +
    if (err_handling_opt.failure_mode == FAILURE_MODE_KEEPALIVE) {
    +
    fprintf(stderr, "Waiting for client is terminated\n");
    +
    while (ep_status == UCS_OK) {
    +
    ucp_worker_progress(ucp_worker);
    +
    }
    +
    }
    +
    +
    status = flush_ep(ucp_worker, client_ep);
    +
    printf("flush_ep completed with status %d (%s)\n",
    +
    status, ucs_status_string(status));
    +
    +
    ret = 0;
    +
    +
    err_free_mem_type_msg:
    +
    mem_type_free(msg);
    +
    err_ep:
    +
    ep_close_err_mode(ucp_worker, client_ep);
    +
    err:
    +
    return ret;
    +
    }
    +
    +
    static void progress_worker(void *arg)
    +
    {
    + +
    }
    +
    +
    int main(int argc, char **argv)
    +
    {
    +
    /* UCP temporary vars */
    + +
    ucp_worker_attr_t worker_attr;
    +
    ucp_worker_params_t worker_params;
    +
    ucp_config_t *config;
    +
    ucs_status_t status;
    +
    +
    /* UCP handler objects */
    +
    ucp_context_h ucp_context;
    +
    ucp_worker_h ucp_worker;
    +
    +
    /* OOB connection vars */
    +
    uint64_t local_addr_len = 0;
    +
    ucp_address_t *local_addr = NULL;
    +
    uint64_t peer_addr_len = 0;
    +
    ucp_address_t *peer_addr = NULL;
    +
    char *client_target_name = NULL;
    +
    int oob_sock = -1;
    +
    int ret = -1;
    +
    +
    memset(&ucp_params, 0, sizeof(ucp_params));
    +
    memset(&worker_attr, 0, sizeof(worker_attr));
    +
    memset(&worker_params, 0, sizeof(worker_params));
    +
    +
    /* Parse the command line */
    +
    status = parse_cmd(argc, argv, &client_target_name);
    +
    CHKERR_JUMP(status != UCS_OK, "parse_cmd\n", err);
    +
    +
    /* UCP initialization */
    +
    status = ucp_config_read(NULL, NULL, &config);
    +
    CHKERR_JUMP(status != UCS_OK, "ucp_config_read\n", err);
    +
    + + + + + +
    if (ucp_test_mode == TEST_MODE_WAIT || ucp_test_mode == TEST_MODE_EVENTFD) {
    + +
    }
    +
    ucp_params.request_size = sizeof(struct ucx_context);
    +
    ucp_params.request_init = request_init;
    +
    ucp_params.name = "hello_world";
    +
    +
    status = ucp_init(&ucp_params, config, &ucp_context);
    +
    +
    if (print_config) {
    +
    ucp_config_print(config, stdout, NULL, UCS_CONFIG_PRINT_CONFIG);
    +
    }
    +
    + +
    CHKERR_JUMP(status != UCS_OK, "ucp_init\n", err);
    +
    + + +
    +
    status = ucp_worker_create(ucp_context, &worker_params, &ucp_worker);
    +
    CHKERR_JUMP(status != UCS_OK, "ucp_worker_create\n", err_cleanup);
    +
    + +
    +
    status = ucp_worker_query(ucp_worker, &worker_attr);
    +
    CHKERR_JUMP(status != UCS_OK, "ucp_worker_query\n", err_worker);
    +
    local_addr_len = worker_attr.address_length;
    +
    local_addr = worker_attr.address;
    +
    +
    printf("[0x%x] local address length: %lu\n",
    +
    (unsigned int)pthread_self(), local_addr_len);
    +
    +
    /* OOB connection establishment */
    +
    if (client_target_name != NULL) {
    +
    oob_sock = connect_common(client_target_name, server_port, ai_family);
    +
    CHKERR_JUMP(oob_sock < 0, "client_connect\n", err_addr);
    +
    +
    ret = recv(oob_sock, &peer_addr_len, sizeof(peer_addr_len), MSG_WAITALL);
    +
    CHKERR_JUMP_RETVAL(ret != (int)sizeof(peer_addr_len),
    +
    "receive address length\n", err_addr, ret);
    +
    +
    peer_addr = malloc(peer_addr_len);
    +
    CHKERR_JUMP(!peer_addr, "allocate memory\n", err_addr);
    +
    +
    ret = recv(oob_sock, peer_addr, peer_addr_len, MSG_WAITALL);
    +
    CHKERR_JUMP_RETVAL(ret != (int)peer_addr_len,
    +
    "receive address\n", err_peer_addr, ret);
    +
    } else {
    +
    oob_sock = connect_common(NULL, server_port, ai_family);
    +
    CHKERR_JUMP(oob_sock < 0, "server_connect\n", err_peer_addr);
    +
    +
    ret = send(oob_sock, &local_addr_len, sizeof(local_addr_len), 0);
    +
    CHKERR_JUMP_RETVAL(ret != (int)sizeof(local_addr_len),
    +
    "send address length\n", err_peer_addr, ret);
    +
    +
    ret = send(oob_sock, local_addr, local_addr_len, 0);
    +
    CHKERR_JUMP_RETVAL(ret != (int)local_addr_len, "send address\n",
    +
    err_peer_addr, ret);
    +
    }
    +
    +
    if (client_target_name != NULL) {
    +
    ret = run_ucx_client(ucp_worker,
    +
    local_addr, local_addr_len,
    +
    peer_addr, peer_addr_len);
    +
    } else {
    +
    ret = run_ucx_server(ucp_worker);
    +
    }
    +
    +
    if (!ret && (err_handling_opt.failure_mode == FAILURE_MODE_NONE)) {
    +
    /* Make sure remote is disconnected before destroying local worker */
    +
    ret = barrier(oob_sock, progress_worker, ucp_worker);
    +
    }
    +
    close(oob_sock);
    +
    +
    err_peer_addr:
    +
    free(peer_addr);
    +
    +
    err_addr:
    +
    ucp_worker_release_address(ucp_worker, local_addr);
    +
    +
    err_worker:
    +
    ucp_worker_destroy(ucp_worker);
    +
    +
    err_cleanup:
    +
    ucp_cleanup(ucp_context);
    +
    +
    err:
    +
    return ret;
    +
    }
    +
    +
    static void print_usage()
    +
    {
    +
    fprintf(stderr, "Usage: ucp_hello_world [parameters]\n");
    +
    fprintf(stderr, "UCP hello world client/server example utility\n");
    +
    fprintf(stderr, "\nParameters are:\n");
    +
    fprintf(stderr, " -w Select test mode \"wait\" to test "
    +
    "ucp_worker_wait function\n");
    +
    fprintf(stderr, " -f Select test mode \"event fd\" to test "
    +
    "ucp_worker_get_efd function with later poll\n");
    +
    fprintf(stderr, " -b Select test mode \"busy polling\" to test "
    +
    "ucp_tag_probe_nb and ucp_worker_progress (default)\n");
    +
    fprintf(stderr, " -n <name> Set node name or IP address "
    +
    "of the server (required for client and should be ignored "
    +
    "for server)\n");
    +
    fprintf(stderr, " -e <type> Emulate unexpected failure and handle an "
    +
    "error with enabled UCP_ERR_HANDLING_MODE_PEER\n");
    +
    fprintf(stderr, " send - send failure on server side "
    +
    "before send initiated\n");
    +
    fprintf(stderr, " recv - receive failure on client side "
    +
    "before receive completed\n");
    +
    fprintf(stderr, " keepalive - keepalive failure on client side "
    +
    "after communication completed\n");
    +
    fprintf(stderr, " -c Print UCP configuration\n");
    +
    print_common_help();
    +
    fprintf(stderr, "\n");
    +
    }
    +
    +
    ucs_status_t parse_cmd(int argc, char * const argv[], char **server_name)
    +
    {
    +
    int c = 0, idx = 0;
    +
    +
    err_handling_opt.ucp_err_mode = UCP_ERR_HANDLING_MODE_NONE;
    +
    err_handling_opt.failure_mode = FAILURE_MODE_NONE;
    +
    +
    while ((c = getopt(argc, argv, "wfb6e:n:p:s:m:ch")) != -1) {
    +
    switch (c) {
    +
    case 'w':
    +
    ucp_test_mode = TEST_MODE_WAIT;
    +
    break;
    +
    case 'f':
    +
    ucp_test_mode = TEST_MODE_EVENTFD;
    +
    break;
    +
    case 'b':
    +
    ucp_test_mode = TEST_MODE_PROBE;
    +
    break;
    +
    case 'e':
    +
    err_handling_opt.ucp_err_mode = UCP_ERR_HANDLING_MODE_PEER;
    +
    if (!strcmp(optarg, "recv")) {
    +
    err_handling_opt.failure_mode = FAILURE_MODE_RECV;
    +
    } else if (!strcmp(optarg, "send")) {
    +
    err_handling_opt.failure_mode = FAILURE_MODE_SEND;
    +
    } else if (!strcmp(optarg, "keepalive")) {
    +
    err_handling_opt.failure_mode = FAILURE_MODE_KEEPALIVE;
    +
    } else {
    +
    print_usage();
    + +
    }
    +
    break;
    +
    case 'n':
    +
    *server_name = optarg;
    +
    break;
    +
    case '6':
    +
    ai_family = AF_INET6;
    +
    break;
    +
    case 'p':
    +
    server_port = atoi(optarg);
    +
    if (server_port <= 0) {
    +
    fprintf(stderr, "Wrong server port number %d\n", server_port);
    + +
    }
    +
    break;
    +
    case 's':
    +
    test_string_length = atol(optarg);
    +
    if (test_string_length < 0) {
    +
    fprintf(stderr, "Wrong string size %ld\n", test_string_length);
    + +
    }
    +
    break;
    +
    case 'm':
    +
    test_mem_type = parse_mem_type(optarg);
    +
    if (test_mem_type == UCS_MEMORY_TYPE_LAST) {
    + +
    }
    +
    break;
    +
    case 'c':
    +
    print_config = 1;
    +
    break;
    +
    case 'h':
    +
    default:
    +
    print_usage();
    + +
    }
    +
    }
    +
    fprintf(stderr, "INFO: UCP_HELLO_WORLD mode = %d server = %s port = %d, pid = %d\n",
    +
    ucp_test_mode, *server_name, server_port, getpid());
    +
    +
    for (idx = optind; idx < argc; idx++) {
    +
    fprintf(stderr, "WARNING: Non-option argument %s\n", argv[idx]);
    +
    }
    +
    return UCS_OK;
    +
    }
    +
    ucp_err_handler_cb_t cb
    Definition ucp_def.h:367
    +
    void * arg
    Definition ucp_def.h:369
    +
    void ucp_request_free(void *request)
    Release a communications request.
    +
    ucp_tag_message_h ucp_tag_probe_nb(ucp_worker_h worker, ucp_tag_t tag, ucp_tag_t tag_mask, int remove, ucp_tag_recv_info_t *info)
    Non-blocking probe and return a message.
    +
    ucs_status_ptr_t ucp_tag_msg_recv_nbx(ucp_worker_h worker, void *buffer, size_t count, ucp_tag_message_h message, const ucp_request_param_t *param)
    Non-blocking receive operation for a probed message.
    +
    uint64_t ucp_tag_t
    UCP Tag Identifier.
    Definition ucp_def.h:257
    +
    struct ucp_recv_desc * ucp_tag_message_h
    UCP Message descriptor.
    Definition ucp_def.h:268
    +
    ucs_status_ptr_t ucp_tag_send_nbx(ucp_ep_h ep, const void *buffer, size_t count, ucp_tag_t tag, const ucp_request_param_t *param)
    Non-blocking tagged-send operation.
    +
    ucs_status_t ucp_request_check_status(void *request)
    Check the status of non-blocking request.
    +
    @ UCP_OP_ATTR_FIELD_DATATYPE
    Definition ucp.h:710
    +
    @ UCP_OP_ATTR_FIELD_CALLBACK
    Definition ucp.h:708
    +
    @ UCP_OP_ATTR_FIELD_MEMORY_TYPE
    Definition ucp.h:713
    +
    @ UCP_OP_ATTR_FLAG_NO_IMM_CMPL
    Definition ucp.h:717
    +
    @ UCP_OP_ATTR_FIELD_USER_DATA
    Definition ucp.h:709
    +
    size_t request_size
    Definition ucp.h:1059
    +
    uint64_t field_mask
    Definition ucp.h:1041
    +
    const char * name
    Definition ucp.h:1136
    +
    ucp_request_init_callback_t request_init
    Definition ucp.h:1071
    +
    uint64_t features
    Definition ucp.h:1049
    +
    void ucp_config_release(ucp_config_t *config)
    Release configuration descriptor.
    +
    void ucp_config_print(const ucp_config_t *config, FILE *stream, const char *title, ucs_config_print_flags_t print_flags)
    Print configuration information.
    +
    ucs_status_t ucp_config_read(const char *env_prefix, const char *filename, ucp_config_t **config_p)
    Read UCP configuration descriptor.
    +
    struct ucp_config ucp_config_t
    UCP configuration descriptor.
    Definition ucp_def.h:77
    +
    Tuning parameters for UCP library.
    Definition ucp.h:1035
    +
    union ucp_request_param_t::@2 cb
    +
    ucp_datatype_t datatype
    Definition ucp.h:1776
    +
    ucs_memory_type_t memory_type
    Definition ucp.h:1796
    +
    size_t length
    Definition ucp.h:1697
    +
    uint32_t op_attr_mask
    Definition ucp.h:1747
    +
    void * user_data
    Definition ucp.h:1781
    +
    struct ucp_context * ucp_context_h
    UCP Application Context.
    Definition ucp_def.h:60
    +
    static ucs_status_t ucp_init(const ucp_params_t *params, const ucp_config_t *config, ucp_context_h *context_p)
    UCP context initialization.
    Definition ucp.h:2084
    +
    void ucp_cleanup(ucp_context_h context_p)
    Release UCP application context.
    +
    @ UCP_PARAM_FIELD_FEATURES
    Definition ucp.h:120
    +
    @ UCP_PARAM_FIELD_REQUEST_SIZE
    Definition ucp.h:121
    +
    @ UCP_PARAM_FIELD_NAME
    Definition ucp.h:128
    +
    @ UCP_PARAM_FIELD_REQUEST_INIT
    Definition ucp.h:122
    +
    @ UCP_FEATURE_TAG
    Definition ucp.h:142
    +
    @ UCP_FEATURE_WAKEUP
    Definition ucp.h:154
    +
    Operation parameters passed to ucp_tag_send_nbx, ucp_tag_send_sync_nbx, ucp_tag_recv_nbx,...
    Definition ucp.h:1741
    +
    UCP receive information descriptor.
    Definition ucp.h:1693
    +
    #define ucp_dt_make_contig(_elem_size)
    Generate an identifier for contiguous data type.
    Definition ucp.h:833
    +
    ucp_err_handling_mode_t err_mode
    Definition ucp_def.h:704
    +
    const ucp_address_t * address
    Definition ucp_def.h:698
    +
    ucp_err_handler_t err_handler
    Definition ucp_def.h:709
    +
    uint64_t field_mask
    Definition ucp_def.h:690
    +
    void * user_data
    Definition ucp_def.h:715
    +
    ucs_status_ptr_t ucp_ep_flush_nbx(ucp_ep_h ep, const ucp_request_param_t *param)
    Non-blocking flush of outstanding AMO and RMA operations on the endpoint.
    +
    ucs_status_t ucp_ep_create(ucp_worker_h worker, const ucp_ep_params_t *params, ucp_ep_h *ep_p)
    Create and connect an endpoint.
    +
    ucp_err_handling_mode_t
    Error handling mode for the UCP endpoint.
    Definition ucp_def.h:121
    +
    struct ucp_ep * ucp_ep_h
    UCP Endpoint.
    Definition ucp_def.h:92
    +
    @ UCP_ERR_HANDLING_MODE_NONE
    Definition ucp_def.h:122
    +
    @ UCP_ERR_HANDLING_MODE_PEER
    Definition ucp_def.h:130
    +
    @ UCP_EP_PARAM_FIELD_ERR_HANDLING_MODE
    Definition ucp.h:257
    +
    @ UCP_EP_PARAM_FIELD_ERR_HANDLER
    Definition ucp.h:259
    +
    @ UCP_EP_PARAM_FIELD_REMOTE_ADDRESS
    Definition ucp.h:255
    +
    @ UCP_EP_PARAM_FIELD_USER_DATA
    Definition ucp.h:261
    +
    @ UCP_EP_CLOSE_FLAG_FORCE
    Definition ucp.h:314
    +
    Tuning parameters for the UCP endpoint.
    Definition ucp_def.h:683
    +
    ucs_status_t ucp_worker_wait(ucp_worker_h worker)
    Wait for an event of the worker.
    +
    ucs_status_t ucp_worker_arm(ucp_worker_h worker)
    Turn on event notification for the next event.
    +
    ucs_status_t ucp_worker_get_efd(ucp_worker_h worker, int *fd)
    Obtain an event file descriptor for event notification.
    +
    ucp_address_t * address
    Definition ucp.h:1244
    +
    uint64_t field_mask
    Definition ucp.h:1299
    +
    ucs_thread_mode_t thread_mode
    Definition ucp.h:1313
    +
    size_t address_length
    Definition ucp.h:1249
    +
    uint64_t field_mask
    Definition ucp.h:1222
    +
    ucs_status_t ucp_worker_create(ucp_context_h context, const ucp_worker_params_t *params, ucp_worker_h *worker_p)
    Create a worker object.
    +
    unsigned ucp_worker_progress(ucp_worker_h worker)
    Progress all communications on a specific worker.
    +
    struct ucp_worker * ucp_worker_h
    UCP Worker.
    Definition ucp_def.h:246
    +
    void ucp_worker_destroy(ucp_worker_h worker)
    Destroy a worker object.
    +
    struct ucp_address ucp_address_t
    UCP worker address.
    Definition ucp_def.h:112
    +
    void ucp_worker_release_address(ucp_worker_h worker, ucp_address_t *address)
    Release an address of the worker object.
    +
    ucs_status_t ucp_worker_query(ucp_worker_h worker, ucp_worker_attr_t *attr)
    Get attributes specific to a particular worker.
    +
    @ UCP_WORKER_ATTR_FIELD_ADDRESS
    Definition ucp.h:449
    +
    @ UCP_WORKER_PARAM_FIELD_THREAD_MODE
    Definition ucp.h:179
    +
    UCP worker attributes.
    Definition ucp.h:1215
    +
    Tuning parameters for the UCP worker.
    Definition ucp.h:1293
    +
    ucs_status_t
    Status codes.
    Definition status.h:45
    +
    @ UCS_THREAD_MODE_SINGLE
    Definition thread_mode.h:20
    +
    @ UCS_MEMORY_TYPE_LAST
    Definition memory_type.h:48
    +
    @ UCS_OK
    Definition status.h:47
    +
    @ UCS_ERR_NO_MESSAGE
    Definition status.h:53
    +
    @ UCS_ERR_UNSUPPORTED
    Definition status.h:74
    +
    @ UCS_ERR_BUSY
    Definition status.h:67
    +
    @ UCS_INPROGRESS
    Definition status.h:50
    +
    +
    + + + + diff --git a/api/v1.17/html/uct_8h_source.html b/api/v1.17/html/uct_8h_source.html new file mode 100644 index 00000000000..ccc93f5c12b --- /dev/null +++ b/api/v1.17/html/uct_8h_source.html @@ -0,0 +1,1951 @@ + + + + + + + +UCX: uct.h Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    UCX 1.17 +
    +
    Unified Communication X
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    uct.h
    +
    +
    +
    1
    +
    10#ifndef UCT_H_
    +
    11#define UCT_H_
    +
    12
    +
    13#include <uct/api/uct_def.h>
    +
    14#include <uct/api/tl.h>
    +
    15#include <uct/api/version.h>
    +
    16#include <ucs/async/async_fwd.h>
    +
    17#include <ucs/datastruct/callbackq.h>
    +
    18#include <ucs/datastruct/callbackq_compat.h>
    +
    19#include <ucs/datastruct/linear_func.h>
    +
    20#include <ucs/memory/memory_type.h>
    +
    21#include <ucs/type/status.h>
    +
    22#include <ucs/type/thread_mode.h>
    +
    23#include <ucs/type/cpu_set.h>
    +
    24#include <ucs/stats/stats_fwd.h>
    +
    25#include <ucs/sys/compiler_def.h>
    +
    26#include <ucs/sys/topo/base/topo.h>
    +
    27
    +
    28#include <sys/socket.h>
    +
    29#include <stdio.h>
    +
    30#include <sched.h>
    +
    31
    +
    32BEGIN_C_DECLS
    +
    33
    +
    +
    218typedef struct uct_md_resource_desc {
    +
    219 char md_name[UCT_MD_NAME_MAX];
    + +
    +
    221
    +
    222
    + +
    236
    +
    237
    +
    +
    245typedef struct uct_component_attr {
    +
    252 uint64_t field_mask;
    +
    253
    +
    255 char name[UCT_COMPONENT_NAME_MAX];
    +
    256
    + +
    259
    + +
    274
    +
    278 uint64_t flags;
    + +
    +
    280
    +
    281
    +
    289enum {
    + +
    295
    +
    300 UCT_COMPONENT_FLAG_RKEY_PTR = UCS_BIT(1)
    + +
    302
    +
    303
    + +
    315
    +
    316
    +
    +
    328typedef struct uct_tl_resource_desc {
    +
    329 char tl_name[UCT_TL_NAME_MAX];
    +
    330 char dev_name[UCT_DEVICE_NAME_MAX];
    + +
    333 ucs_sys_device_t sys_device;
    + +
    +
    336
    +
    337#define UCT_TL_RESOURCE_DESC_FMT "%s/%s"
    +
    338#define UCT_TL_RESOURCE_DESC_ARG(_resource) (_resource)->tl_name, (_resource)->dev_name
    +
    339
    +
    340
    +
    348typedef enum uct_atomic_op {
    +
    349 UCT_ATOMIC_OP_ADD,
    +
    350 UCT_ATOMIC_OP_AND,
    +
    351 UCT_ATOMIC_OP_OR,
    +
    352 UCT_ATOMIC_OP_XOR,
    +
    353 UCT_ATOMIC_OP_SWAP,
    +
    354 UCT_ATOMIC_OP_CSWAP,
    +
    355 UCT_ATOMIC_OP_LAST
    +
    356} uct_atomic_op_t;
    +
    357
    +
    358
    +
    369 /* Active message capabilities */
    +
    370#define UCT_IFACE_FLAG_AM_SHORT UCS_BIT(0)
    +
    371#define UCT_IFACE_FLAG_AM_BCOPY UCS_BIT(1)
    +
    372#define UCT_IFACE_FLAG_AM_ZCOPY UCS_BIT(2)
    +
    374#define UCT_IFACE_FLAG_PENDING UCS_BIT(3)
    +
    376 /* PUT capabilities */
    +
    377#define UCT_IFACE_FLAG_PUT_SHORT UCS_BIT(4)
    +
    378#define UCT_IFACE_FLAG_PUT_BCOPY UCS_BIT(5)
    +
    379#define UCT_IFACE_FLAG_PUT_ZCOPY UCS_BIT(6)
    +
    381 /* GET capabilities */
    +
    382#define UCT_IFACE_FLAG_GET_SHORT UCS_BIT(8)
    +
    383#define UCT_IFACE_FLAG_GET_BCOPY UCS_BIT(9)
    +
    384#define UCT_IFACE_FLAG_GET_ZCOPY UCS_BIT(10)
    +
    386 /* Atomic operations domain */
    +
    387#define UCT_IFACE_FLAG_ATOMIC_CPU UCS_BIT(30)
    +
    389#define UCT_IFACE_FLAG_ATOMIC_DEVICE UCS_BIT(31)
    +
    393 /* Error handling capabilities */
    +
    394#define UCT_IFACE_FLAG_ERRHANDLE_SHORT_BUF UCS_BIT(32)
    +
    395#define UCT_IFACE_FLAG_ERRHANDLE_BCOPY_BUF UCS_BIT(33)
    +
    396#define UCT_IFACE_FLAG_ERRHANDLE_ZCOPY_BUF UCS_BIT(34)
    +
    397#define UCT_IFACE_FLAG_ERRHANDLE_AM_ID UCS_BIT(35)
    +
    398#define UCT_IFACE_FLAG_ERRHANDLE_REMOTE_MEM UCS_BIT(36)
    +
    399#define UCT_IFACE_FLAG_ERRHANDLE_BCOPY_LEN UCS_BIT(37)
    +
    400#define UCT_IFACE_FLAG_ERRHANDLE_PEER_FAILURE UCS_BIT(38)
    +
    402#define UCT_IFACE_FLAG_EP_CHECK UCS_BIT(39)
    +
    404 /* Connection establishment */
    +
    405#define UCT_IFACE_FLAG_CONNECT_TO_IFACE UCS_BIT(40)
    +
    406#define UCT_IFACE_FLAG_CONNECT_TO_EP UCS_BIT(41)
    +
    407#define UCT_IFACE_FLAG_CONNECT_TO_SOCKADDR UCS_BIT(42)
    +
    409 /* Special transport flags */
    +
    410#define UCT_IFACE_FLAG_AM_DUP UCS_BIT(43)
    +
    414 /* Callback invocation */
    +
    415#define UCT_IFACE_FLAG_CB_SYNC UCS_BIT(44)
    +
    418#define UCT_IFACE_FLAG_CB_ASYNC UCS_BIT(45)
    +
    425 /* Keepalive */
    +
    426#define UCT_IFACE_FLAG_EP_KEEPALIVE UCS_BIT(46)
    +
    432 /* Tag matching operations */
    +
    433#define UCT_IFACE_FLAG_TAG_EAGER_SHORT UCS_BIT(50)
    +
    434#define UCT_IFACE_FLAG_TAG_EAGER_BCOPY UCS_BIT(51)
    +
    435#define UCT_IFACE_FLAG_TAG_EAGER_ZCOPY UCS_BIT(52)
    +
    436#define UCT_IFACE_FLAG_TAG_RNDV_ZCOPY UCS_BIT(53)
    +
    452 /* Event types */
    +
    453#define UCT_IFACE_FLAG_EVENT_SEND_COMP UCS_BIT(0)
    +
    455#define UCT_IFACE_FLAG_EVENT_RECV UCS_BIT(1)
    +
    457#define UCT_IFACE_FLAG_EVENT_RECV_SIG UCS_BIT(2)
    +
    459 /* Event notification mechanisms */
    +
    460#define UCT_IFACE_FLAG_EVENT_FD UCS_BIT(3)
    +
    462#define UCT_IFACE_FLAG_EVENT_ASYNC_CB UCS_BIT(4)
    + +
    483
    +
    484
    +
    + +
    497 UCT_EVENT_SEND_COMP = UCS_BIT(0),
    +
    498 UCT_EVENT_RECV = UCS_BIT(1),
    +
    499 UCT_EVENT_RECV_SIG = UCS_BIT(2)
    + +
    +
    502
    +
    503
    +
    + + +
    513 UCT_FLUSH_FLAG_CANCEL = UCS_BIT(0),
    +
    528 UCT_FLUSH_FLAG_REMOTE = UCS_BIT(1)
    + +
    +
    538
    +
    539
    +
    + +
    545 UCT_PROGRESS_SEND = UCS_BIT(0),
    +
    546 UCT_PROGRESS_RECV = UCS_BIT(1),
    +
    547 UCT_PROGRESS_THREAD_SAFE = UCS_BIT(7)
    + +
    +
    551
    +
    552
    +
    + +
    558 UCT_SEND_FLAG_SIGNALED = UCS_BIT(0),
    +
    564 UCT_SEND_FLAG_PEER_CHECK = UCS_BIT(1)
    + +
    +
    572
    +
    573
    +
    + +
    581 UCT_CB_FLAG_RESERVED = UCS_BIT(1),
    +
    582 UCT_CB_FLAG_ASYNC = UCS_BIT(2)
    + +
    +
    598
    +
    599
    + +
    616
    +
    617
    + +
    685
    + +
    698
    +
    699
    +
    704enum {
    +
    708 UCT_MD_FLAG_ALLOC = UCS_BIT(0),
    +
    709
    +
    713 UCT_MD_FLAG_REG = UCS_BIT(1),
    +
    714
    + +
    719
    + +
    725
    +
    729 UCT_MD_FLAG_ADVISE = UCS_BIT(4),
    +
    730
    +
    734 UCT_MD_FLAG_FIXED = UCS_BIT(5),
    +
    735
    + +
    743
    + +
    748
    + +
    756
    + +
    762
    + +
    767
    +
    772 UCT_MD_FLAG_LAST = UCS_BIT(11)
    + +
    774
    + +
    855
    +
    856
    + +
    868
    +
    869
    + +
    881
    +
    882
    + +
    894
    +
    895
    + +
    913
    +
    914
    + +
    974
    +
    975
    + +
    990
    +
    991
    +
    + + +
    1003
    + +
    1006
    + +
    1009
    + +
    1012
    + +
    1015
    + +
    1018
    + +
    1021
    +
    1023 UCT_IFACE_FEATURE_LAST = UCS_BIT(7)
    + +
    +
    1025
    +
    1026/*
    +
    1027 * @ingroup UCT_RESOURCE
    +
    1028 * @brief Process Per Node (PPN) bandwidth specification: f(ppn) = dedicated + shared / ppn
    +
    1029 *
    +
    1030 * This structure specifies a function which is used as basis for bandwidth
    +
    1031 * estimation of various UCT operations. This information can be used to select
    +
    1032 * the best performing combination of UCT operations.
    +
    1033 */
    +
    +
    1034typedef struct uct_ppn_bandwidth {
    +
    1035 double dedicated;
    +
    1036 double shared;
    + +
    +
    1038
    +
    1039
    +
    + +
    +
    1045 struct {
    +
    +
    1046 struct {
    +
    1047 size_t max_short;
    +
    1048 size_t max_bcopy;
    +
    1049 size_t min_zcopy;
    +
    1052 size_t max_zcopy;
    +
    1055 size_t opt_zcopy_align;
    +
    1057 size_t align_mtu;
    +
    1058 size_t max_iov;
    +
    1061 } put;
    +
    +
    1063 struct {
    +
    1064 size_t max_short;
    +
    1065 size_t max_bcopy;
    +
    1066 size_t min_zcopy;
    +
    1069 size_t max_zcopy;
    +
    1072 size_t opt_zcopy_align;
    +
    1074 size_t align_mtu;
    +
    1075 size_t max_iov;
    +
    1078 } get;
    +
    +
    1080 struct {
    +
    1081 size_t max_short;
    +
    1083 size_t max_bcopy;
    +
    1084 size_t min_zcopy;
    +
    1087 size_t max_zcopy;
    +
    1090 size_t opt_zcopy_align;
    +
    1092 size_t align_mtu;
    +
    1093 size_t max_hdr;
    +
    1094 size_t max_iov;
    +
    1097 } am;
    +
    +
    1099 struct {
    +
    +
    1100 struct {
    +
    1101 size_t min_recv;
    +
    1102 size_t max_zcopy;
    +
    1104 size_t max_iov;
    +
    1107 size_t max_outstanding;
    +
    1109 } recv;
    +
    +
    1110
    +
    +
    1111 struct {
    +
    1112 size_t max_short;
    +
    1114 size_t max_bcopy;
    +
    1116 size_t max_zcopy;
    +
    1118 size_t max_iov;
    +
    1120 } eager;
    +
    +
    1122 struct {
    +
    1123 size_t max_zcopy;
    +
    1125 size_t max_hdr;
    +
    1128 size_t max_iov;
    +
    1130 } rndv;
    +
    +
    1131 } tag;
    +
    +
    1133 struct {
    +
    1134 uint64_t op_flags;
    +
    1135 uint64_t fop_flags;
    +
    1136 } atomic32, atomic64;
    +
    1138 uint64_t flags;
    +
    1139 uint64_t event_flags;
    + + + + + +
    1148 struct sockaddr_storage listen_sockaddr;
    +
    1150 /*
    +
    1151 * The following fields define expected performance of the communication
    +
    1152 * interface, this would usually be a combination of device and system
    +
    1153 * characteristics and determined at run time.
    +
    1154 */
    +
    1155 double overhead;
    + +
    1157 ucs_linear_func_t latency;
    +
    1159 uint8_t priority;
    + + +
    1170};
    +
    1171
    +
    1172
    +
    + +
    1184 uint64_t field_mask;
    +
    1186 ucs_cpu_set_t cpu_mask;
    +
    1188 uint64_t open_mode;
    +
    +
    1190 union {
    +
    +
    1197 struct {
    +
    1198 const char *tl_name;
    +
    1199 const char *dev_name;
    +
    1200 } device;
    +
    +
    +
    1208 struct {
    +
    1209 ucs_sock_addr_t listen_sockaddr;
    +
    1211 void *conn_request_arg;
    + +
    1216 uint32_t cb_flags;
    +
    1217 } sockaddr;
    +
    + +
    +
    1219
    +
    1222 ucs_stats_node_t *stats_root;
    + +
    1225
    + + + +
    1233
    + + + + +
    1241
    + + +
    1248
    +
    1249 /* Time period between keepalive rounds */
    + +
    1251
    + +
    1260
    + +
    1278
    +
    1283 uint64_t features;
    +
    1284};
    +
    +
    1285
    +
    1286
    + +
    1424
    +
    1425
    +
    + +
    1436 uint64_t field_mask;
    +
    1437
    +
    1441 const void *private_data;
    +
    1442
    + +
    1448};
    +
    +
    1449
    +
    + +
    1460 uint64_t field_mask;
    +
    1461
    + +
    1467};
    +
    +
    1468
    +
    1469
    +
    + +
    1480 uint64_t field_mask;
    +
    1481
    +
    1485 struct sockaddr_storage sockaddr;
    +
    1486};
    +
    +
    1487
    +
    1488
    + +
    1519
    +
    1520
    +
    + +
    +
    1531 struct {
    +
    1532 uint64_t max_alloc;
    +
    1533 size_t max_reg;
    +
    1534 uint64_t flags;
    +
    1535 uint64_t reg_mem_types;
    +
    1536 uint64_t detect_mem_types;
    +
    1537 uint64_t alloc_mem_types;
    +
    1538 uint64_t access_mem_types;
    + +
    +
    1540
    +
    1541 ucs_linear_func_t reg_cost;
    +
    1545 char component_name[UCT_COMPONENT_NAME_MAX];
    + +
    1547 ucs_cpu_set_t local_cpus;
    +
    1548};
    +
    +
    1549
    +
    1550
    + +
    1587
    +
    1588
    +
    +
    1597typedef struct uct_md_mem_attr {
    +
    1602 uint64_t field_mask;
    +
    1603
    + +
    1610
    +
    1616 ucs_sys_device_t sys_dev;
    +
    1617
    + +
    1624
    + +
    1631
    + +
    1641
    + + +
    +
    1648
    +
    1649
    +
    1670ucs_status_t uct_md_mem_query(uct_md_h md, const void *address, size_t length,
    +
    1671 uct_md_mem_attr_t *mem_attr);
    +
    1672
    +
    1673
    + +
    1690
    +
    1691
    + +
    1704
    +
    1705
    + +
    1731
    +
    1732
    +
    + + +
    1742 char priv[UCT_PENDING_REQ_PRIV_LEN];
    +
    1743};
    +
    +
    1744
    +
    1745
    +
    + + +
    1761
    +
    1781 void (*completed_cb)(uct_tag_context_t *self, uct_tag_t stag, uint64_t imm,
    +
    1782 size_t length, void *inline_data, ucs_status_t status);
    +
    1783
    +
    1796 void (*rndv_cb)(uct_tag_context_t *self, uct_tag_t stag, const void *header,
    +
    1797 unsigned header_length, ucs_status_t status, unsigned flags);
    +
    1798
    +
    1800 char priv[UCT_TAG_PRIV_LEN];
    +
    1801};
    +
    +
    1802
    +
    1803
    +
    1808enum {
    +
    1809 /* If set, header points to inline data, otherwise it is user buffer. */
    +
    1810 UCT_TAG_RECV_CB_INLINE_DATA = UCS_BIT(0)
    + +
    1812
    +
    1813
    +
    1814extern const char *uct_alloc_method_names[];
    +
    1815extern const char *uct_device_type_names[];
    +
    1816
    +
    1817
    + +
    1832 unsigned *num_components_p);
    +
    1833
    + +
    1844
    +
    1845
    + +
    1859 uct_component_attr_t *component_attr);
    +
    1860
    +
    1861
    +
    1881ucs_status_t uct_md_open(uct_component_h component, const char *md_name,
    +
    1882 const uct_md_config_t *config, uct_md_h *md_p);
    +
    1883
    + +
    1891
    +
    1892
    + +
    1908 uct_tl_resource_desc_t **resources_p,
    +
    1909 unsigned *num_resources_p);
    +
    1910
    +
    1911
    + +
    1922
    +
    1923
    +
    1938ucs_status_t uct_worker_create(ucs_async_context_t *async,
    +
    1939 ucs_thread_mode_t thread_mode,
    +
    1940 uct_worker_h *worker_p);
    +
    1941
    +
    1942
    + +
    1950
    +
    1951
    +
    1975void uct_worker_progress_register_safe(uct_worker_h worker, ucs_callback_t func,
    +
    1976 void *arg, unsigned flags,
    +
    1977 uct_worker_cb_id_t *id_p);
    +
    1978
    +
    1979
    + +
    2001 uct_worker_cb_id_t *id_p);
    +
    2002
    +
    2003
    + +
    2032 const char *env_prefix, const char *filename,
    +
    2033 uct_iface_config_t **config_p);
    +
    2034
    +
    2035
    +
    2043void uct_config_release(void *config);
    +
    2044
    +
    2045
    +
    2061ucs_status_t uct_config_get(void *config, const char *name, char *value,
    +
    2062 size_t max);
    +
    2063
    +
    2064
    +
    2077ucs_status_t uct_config_modify(void *config, const char *name, const char *value);
    +
    2078
    +
    2079
    + +
    2096 const uct_iface_params_t *params,
    +
    2097 const uct_iface_config_t *config,
    +
    2098 uct_iface_h *iface_p);
    +
    2099
    +
    2100
    + +
    2108
    +
    2109
    + +
    2118
    +
    2119
    + +
    2132
    +
    2133
    + +
    2145
    +
    2146
    + +
    2166 const uct_iface_addr_t *iface_addr);
    +
    2167
    +
    2168
    +
    2186ucs_status_t uct_ep_check(const uct_ep_h ep, unsigned flags,
    +
    2187 uct_completion_t *comp);
    +
    2188
    +
    2189
    + +
    2203
    +
    2204
    + +
    2225
    +
    2226
    +
    2242ucs_status_t uct_iface_mem_alloc(uct_iface_h iface, size_t length, unsigned flags,
    +
    2243 const char *name, uct_allocated_memory_t *mem);
    +
    2244
    +
    2245
    + +
    2253
    +
    2254
    + +
    2273 uct_am_callback_t cb, void *arg, uint32_t flags);
    +
    2274
    +
    2275
    + +
    2290 void *arg);
    +
    2291
    +
    2292
    + +
    2305 uct_conn_request_h conn_request);
    +
    2306
    +
    2307
    + +
    2321 uct_conn_request_h conn_request);
    +
    2322
    +
    2323
    + +
    2359
    +
    2360
    + +
    2376
    +
    2377
    + +
    2411
    +
    2412
    + +
    2420
    +
    2421
    + +
    2431
    +
    2432
    + +
    2444 const uct_ep_addr_t *ep_addr);
    +
    2445
    +
    2446
    + +
    2455
    +
    2456
    + +
    2480
    +
    2481
    +
    +
    2486typedef struct {
    +
    2492 uint64_t field_mask;
    +
    2493
    +
    2500 unsigned flags;
    +
    2501
    +
    2512 void *address;
    +
    2513
    + +
    2518
    +
    +
    2519 struct {
    +
    2524 const uct_md_h *mds;
    +
    2525
    +
    2531 unsigned count;
    +
    2532 } mds;
    +
    +
    2533
    +
    2540 const char *name;
    + +
    +
    2542
    +
    2543
    + +
    2562 size_t length, uct_mem_advice_t advice);
    +
    2563
    +
    2564
    +
    2578ucs_status_t uct_md_mem_reg(uct_md_h md, void *address, size_t length,
    +
    2579 unsigned flags, uct_mem_h *memh_p);
    +
    2580
    +
    2581
    + +
    2590
    +
    2591
    + +
    2605 size_t length,
    +
    2606 ucs_memory_type_t *mem_type_p);
    +
    2607
    +
    2608
    +
    2633ucs_status_t uct_mem_alloc(size_t length, const uct_alloc_method_t *methods,
    +
    2634 unsigned num_methods,
    +
    2635 const uct_mem_alloc_params_t *params,
    + +
    2637
    +
    2638
    + +
    2649
    + +
    2665 const char *env_prefix, const char *filename,
    +
    2666 uct_md_config_t **config_p);
    +
    2667
    +
    2668
    + + +
    2691
    +
    2692
    + +
    2705
    +
    2706
    +
    2726ucs_status_t uct_rkey_unpack(uct_component_h component, const void *rkey_buffer,
    +
    2727 uct_rkey_bundle_t *rkey_ob);
    +
    2728
    +
    2729
    + +
    2756 uint64_t remote_addr, void **addr_p);
    +
    2757
    +
    2758
    + +
    2768 const uct_rkey_bundle_t *rkey_ob);
    +
    2769
    +
    2770
    +
    +
    2785UCT_INLINE_API unsigned uct_worker_progress(uct_worker_h worker)
    +
    2786{
    +
    2787 return ucs_callbackq_dispatch(&worker->progress_q);
    +
    2788}
    +
    +
    2789
    +
    2790
    +
    +
    2819UCT_INLINE_API ucs_status_t uct_iface_flush(uct_iface_h iface, unsigned flags,
    +
    2820 uct_completion_t *comp)
    +
    2821{
    +
    2822 return iface->ops.iface_flush(iface, flags, comp);
    +
    2823}
    +
    +
    2824
    +
    +
    2837UCT_INLINE_API ucs_status_t uct_iface_fence(uct_iface_h iface, unsigned flags)
    +
    2838{
    +
    2839 return iface->ops.iface_fence(iface, flags);
    +
    2840}
    +
    +
    2841
    +
    +
    2851UCT_INLINE_API void uct_iface_release_desc(void *desc)
    +
    2852{
    +
    2853 uct_recv_desc_t *release_desc = uct_recv_desc(desc);
    +
    2854 release_desc->cb(release_desc, desc);
    +
    2855}
    +
    +
    2856
    +
    2857
    +
    +
    2862UCT_INLINE_API ucs_status_t uct_ep_put_short(uct_ep_h ep, const void *buffer, unsigned length,
    +
    2863 uint64_t remote_addr, uct_rkey_t rkey)
    +
    2864{
    +
    2865 return ep->iface->ops.ep_put_short(ep, buffer, length, remote_addr, rkey);
    +
    2866}
    +
    +
    2867
    +
    2868
    +
    +
    2873UCT_INLINE_API ssize_t uct_ep_put_bcopy(uct_ep_h ep, uct_pack_callback_t pack_cb,
    +
    2874 void *arg, uint64_t remote_addr,
    +
    2875 uct_rkey_t rkey)
    +
    2876{
    +
    2877 return ep->iface->ops.ep_put_bcopy(ep, pack_cb, arg, remote_addr, rkey);
    +
    2878}
    +
    +
    2879
    +
    2880
    +
    + +
    2911 const uct_iov_t *iov, size_t iovcnt,
    +
    2912 uint64_t remote_addr, uct_rkey_t rkey,
    +
    2913 uct_completion_t *comp)
    +
    2914{
    +
    2915 return ep->iface->ops.ep_put_zcopy(ep, iov, iovcnt, remote_addr, rkey, comp);
    +
    2916}
    +
    +
    2917
    +
    2918
    +
    +
    2923UCT_INLINE_API ucs_status_t uct_ep_get_short(uct_ep_h ep, void *buffer, unsigned length,
    +
    2924 uint64_t remote_addr, uct_rkey_t rkey)
    +
    2925{
    +
    2926 return ep->iface->ops.ep_get_short(ep, buffer, length, remote_addr, rkey);
    +
    2927}
    +
    +
    2928
    +
    2929
    +
    + +
    2935 void *arg, size_t length,
    +
    2936 uint64_t remote_addr, uct_rkey_t rkey,
    +
    2937 uct_completion_t *comp)
    +
    2938{
    +
    2939 return ep->iface->ops.ep_get_bcopy(ep, unpack_cb, arg, length, remote_addr,
    +
    2940 rkey, comp);
    +
    2941}
    +
    +
    2942
    +
    2943
    +
    + +
    2974 const uct_iov_t *iov, size_t iovcnt,
    +
    2975 uint64_t remote_addr, uct_rkey_t rkey,
    +
    2976 uct_completion_t *comp)
    +
    2977{
    +
    2978 return ep->iface->ops.ep_get_zcopy(ep, iov, iovcnt, remote_addr, rkey, comp);
    +
    2979}
    +
    +
    2980
    +
    2981
    +
    +
    2986UCT_INLINE_API ucs_status_t uct_ep_am_short(uct_ep_h ep, uint8_t id, uint64_t header,
    +
    2987 const void *payload, unsigned length)
    +
    2988{
    +
    2989 return ep->iface->ops.ep_am_short(ep, id, header, payload, length);
    +
    2990}
    +
    +
    2991
    +
    2992
    +
    +
    3023UCT_INLINE_API ucs_status_t uct_ep_am_short_iov(uct_ep_h ep, uint8_t id,
    +
    3024 const uct_iov_t *iov, size_t iovcnt)
    +
    3025{
    +
    3026 return ep->iface->ops.ep_am_short_iov(ep, id, iov, iovcnt);
    +
    3027}
    +
    +
    3028
    +
    3029
    +
    +
    3034UCT_INLINE_API ssize_t uct_ep_am_bcopy(uct_ep_h ep, uint8_t id,
    +
    3035 uct_pack_callback_t pack_cb, void *arg,
    +
    3036 unsigned flags)
    +
    3037{
    +
    3038 return ep->iface->ops.ep_am_bcopy(ep, id, pack_cb, arg, flags);
    +
    3039}
    +
    +
    3040
    +
    3041
    +
    +
    3079UCT_INLINE_API ucs_status_t uct_ep_am_zcopy(uct_ep_h ep, uint8_t id,
    +
    3080 const void *header,
    +
    3081 unsigned header_length,
    +
    3082 const uct_iov_t *iov, size_t iovcnt,
    +
    3083 unsigned flags,
    +
    3084 uct_completion_t *comp)
    +
    3085{
    +
    3086 return ep->iface->ops.ep_am_zcopy(ep, id, header, header_length, iov, iovcnt,
    +
    3087 flags, comp);
    +
    3088}
    +
    +
    3089
    +
    +
    3094UCT_INLINE_API ucs_status_t uct_ep_atomic_cswap64(uct_ep_h ep, uint64_t compare, uint64_t swap,
    +
    3095 uint64_t remote_addr, uct_rkey_t rkey,
    +
    3096 uint64_t *result, uct_completion_t *comp)
    +
    3097{
    +
    3098 return ep->iface->ops.ep_atomic_cswap64(ep, compare, swap, remote_addr, rkey, result, comp);
    +
    3099}
    +
    +
    3100
    +
    3101
    +
    +
    3106UCT_INLINE_API ucs_status_t uct_ep_atomic_cswap32(uct_ep_h ep, uint32_t compare, uint32_t swap,
    +
    3107 uint64_t remote_addr, uct_rkey_t rkey,
    +
    3108 uint32_t *result, uct_completion_t *comp)
    +
    3109{
    +
    3110 return ep->iface->ops.ep_atomic_cswap32(ep, compare, swap, remote_addr, rkey, result, comp);
    +
    3111}
    +
    +
    3112
    +
    3113
    +
    +
    3118UCT_INLINE_API ucs_status_t uct_ep_atomic32_post(uct_ep_h ep, uct_atomic_op_t opcode,
    +
    3119 uint32_t value, uint64_t remote_addr,
    +
    3120 uct_rkey_t rkey)
    +
    3121{
    +
    3122 return ep->iface->ops.ep_atomic32_post(ep, opcode, value, remote_addr, rkey);
    +
    3123}
    +
    +
    3124
    +
    3125
    +
    +
    3130UCT_INLINE_API ucs_status_t uct_ep_atomic64_post(uct_ep_h ep, uct_atomic_op_t opcode,
    +
    3131 uint64_t value, uint64_t remote_addr,
    +
    3132 uct_rkey_t rkey)
    +
    3133{
    +
    3134 return ep->iface->ops.ep_atomic64_post(ep, opcode, value, remote_addr, rkey);
    +
    3135}
    +
    +
    3136
    +
    3137
    +
    +
    3142UCT_INLINE_API ucs_status_t uct_ep_atomic32_fetch(uct_ep_h ep, uct_atomic_op_t opcode,
    +
    3143 uint32_t value, uint32_t *result,
    +
    3144 uint64_t remote_addr, uct_rkey_t rkey,
    +
    3145 uct_completion_t *comp)
    +
    3146{
    +
    3147 return ep->iface->ops.ep_atomic32_fetch(ep, opcode, value, result,
    +
    3148 remote_addr, rkey, comp);
    +
    3149}
    +
    +
    3150
    +
    3151
    +
    +
    3156UCT_INLINE_API ucs_status_t uct_ep_atomic64_fetch(uct_ep_h ep, uct_atomic_op_t opcode,
    +
    3157 uint64_t value, uint64_t *result,
    +
    3158 uint64_t remote_addr, uct_rkey_t rkey,
    +
    3159 uct_completion_t *comp)
    +
    3160{
    +
    3161 return ep->iface->ops.ep_atomic64_fetch(ep, opcode, value, result,
    +
    3162 remote_addr, rkey, comp);
    +
    3163}
    +
    +
    3164
    +
    3165
    +
    + +
    3187 uct_pending_req_t *req,
    +
    3188 unsigned flags)
    +
    3189{
    +
    3190 return ep->iface->ops.ep_pending_add(ep, req, flags);
    +
    3191}
    +
    +
    3192
    +
    3193
    +
    +
    3205UCT_INLINE_API void uct_ep_pending_purge(uct_ep_h ep,
    + +
    3207 void *arg)
    +
    3208{
    +
    3209 ep->iface->ops.ep_pending_purge(ep, cb, arg);
    +
    3210}
    +
    +
    3211
    +
    3212
    +
    +
    3241UCT_INLINE_API ucs_status_t uct_ep_flush(uct_ep_h ep, unsigned flags,
    +
    3242 uct_completion_t *comp)
    +
    3243{
    +
    3244 return ep->iface->ops.ep_flush(ep, flags, comp);
    +
    3245}
    +
    +
    3246
    +
    3247
    +
    +
    3260UCT_INLINE_API ucs_status_t uct_ep_fence(uct_ep_h ep, unsigned flags)
    +
    3261{
    +
    3262 return ep->iface->ops.ep_fence(ep, flags);
    +
    3263}
    +
    +
    3264
    +
    3265
    +
    + +
    3289 const void *data, size_t length)
    +
    3290{
    +
    3291 return ep->iface->ops.ep_tag_eager_short(ep, tag, data, length);
    +
    3292}
    +
    +
    3293
    +
    3294
    +
    +
    3318UCT_INLINE_API ssize_t uct_ep_tag_eager_bcopy(uct_ep_h ep, uct_tag_t tag,
    +
    3319 uint64_t imm,
    +
    3320 uct_pack_callback_t pack_cb,
    +
    3321 void *arg, unsigned flags)
    +
    3322{
    +
    3323 return ep->iface->ops.ep_tag_eager_bcopy(ep, tag, imm, pack_cb, arg, flags);
    +
    3324}
    +
    +
    3325
    +
    3326
    +
    + +
    3365 uint64_t imm,
    +
    3366 const uct_iov_t *iov,
    +
    3367 size_t iovcnt,
    +
    3368 unsigned flags,
    +
    3369 uct_completion_t *comp)
    +
    3370{
    +
    3371 return ep->iface->ops.ep_tag_eager_zcopy(ep, tag, imm, iov, iovcnt, flags,
    +
    3372 comp);
    +
    3373}
    +
    +
    3374
    +
    3375
    +
    + +
    3413 const void *header,
    +
    3414 unsigned header_length,
    +
    3415 const uct_iov_t *iov,
    +
    3416 size_t iovcnt,
    +
    3417 unsigned flags,
    +
    3418 uct_completion_t *comp)
    +
    3419{
    +
    3420 return ep->iface->ops.ep_tag_rndv_zcopy(ep, tag, header, header_length,
    +
    3421 iov, iovcnt, flags, comp);
    +
    3422}
    +
    +
    3423
    +
    3424
    +
    + +
    3444{
    +
    3445 return ep->iface->ops.ep_tag_rndv_cancel(ep, op);
    +
    3446}
    +
    +
    3447
    +
    3448
    +
    + +
    3469 const void* header,
    +
    3470 unsigned header_length,
    +
    3471 unsigned flags)
    +
    3472{
    +
    3473 return ep->iface->ops.ep_tag_rndv_request(ep, tag, header, header_length,
    +
    3474 flags);
    +
    3475}
    +
    +
    3476
    +
    3477
    +
    + +
    3509 uct_tag_t tag,
    +
    3510 uct_tag_t tag_mask,
    +
    3511 const uct_iov_t *iov,
    +
    3512 size_t iovcnt,
    +
    3513 uct_tag_context_t *ctx)
    +
    3514{
    +
    3515 return iface->ops.iface_tag_recv_zcopy(iface, tag, tag_mask, iov, iovcnt, ctx);
    +
    3516}
    +
    +
    3517
    +
    3518
    +
    + +
    3542 uct_tag_context_t *ctx,
    +
    3543 int force)
    +
    3544{
    +
    3545 return iface->ops.iface_tag_recv_cancel(iface, ctx, force);
    +
    3546}
    +
    +
    3547
    +
    3548
    +
    +
    3567UCT_INLINE_API void uct_iface_progress_enable(uct_iface_h iface, unsigned flags)
    +
    3568{
    +
    3569 iface->ops.iface_progress_enable(iface, flags);
    +
    3570}
    +
    +
    3571
    +
    3572
    +
    +
    3592UCT_INLINE_API void uct_iface_progress_disable(uct_iface_h iface, unsigned flags)
    +
    3593{
    +
    3594 iface->ops.iface_progress_disable(iface, flags);
    +
    3595}
    +
    +
    3596
    +
    3597
    +
    +
    3602UCT_INLINE_API unsigned uct_iface_progress(uct_iface_h iface)
    +
    3603{
    +
    3604 return iface->ops.iface_progress(iface);
    +
    3605}
    +
    +
    3606
    +
    3607
    + +
    3631 const uct_cm_config_t *config, uct_cm_h *cm_p);
    +
    3632
    +
    3633
    + +
    3641
    +
    3642
    + +
    3654
    +
    3655
    + +
    3673 const char *env_prefix, const char *filename,
    +
    3674 uct_cm_config_t **config_p);
    +
    3675
    +
    3676
    + +
    3690
    +
    3691
    +
    3710ucs_status_t uct_listener_create(uct_cm_h cm, const struct sockaddr *saddr,
    +
    3711 socklen_t socklen,
    +
    3712 const uct_listener_params_t *params,
    +
    3713 uct_listener_h *listener_p);
    +
    3714
    +
    3715
    + +
    3723
    +
    3724
    + +
    3741 uct_conn_request_h conn_request);
    +
    3742
    +
    3743
    + +
    3757 uct_listener_attr_t *listener_attr);
    +
    3758
    +
    3759
    +
    3767static UCS_F_ALWAYS_INLINE
    +
    + +
    3769{
    +
    3770 if (ucs_unlikely(status != UCS_OK) && (comp->status == UCS_OK)) {
    +
    3771 /* store first failure status */
    +
    3772 comp->status = status;
    +
    3773 }
    +
    3774}
    +
    +
    3775
    +
    3776
    +
    3782END_C_DECLS
    +
    3783
    +
    3784#endif
    +
    +
    +
    +
    +
    +
    +
    +
    +
    enum ucs_memory_type ucs_memory_type_t
    Memory types.
    +
    ucs_thread_mode_t
    Thread sharing mode.
    Definition thread_mode.h:19
    +
    unsigned long ucs_time_t
    Definition time_def.h:23
    +
    ucs_status_t
    Status codes.
    Definition status.h:45
    +
    void * ucs_status_ptr_t
    Status pointer.
    Definition status.h:106
    +
    @ UCS_OK
    Definition status.h:47
    +
    Definition types.h:137
    +
    ucs_status_t uct_ep_am_short(uct_ep_h ep, uint8_t id, uint64_t header, const void *payload, unsigned length)
    Definition uct.h:2986
    +
    uct_msg_flags
    Flags for active message send operation.
    Definition uct.h:557
    +
    ucs_status_t uct_ep_am_short_iov(uct_ep_h ep, uint8_t id, const uct_iov_t *iov, size_t iovcnt)
    Short io-vector send operation.
    Definition uct.h:3023
    +
    ucs_status_t uct_iface_set_am_handler(uct_iface_h iface, uint8_t id, uct_am_callback_t cb, void *arg, uint32_t flags)
    Set active message handler for the interface.
    +
    void uct_iface_release_desc(void *desc)
    Release AM descriptor.
    Definition uct.h:2851
    +
    void(* uct_am_tracer_t)(void *arg, uct_am_trace_type_t type, uint8_t id, const void *data, size_t length, char *buffer, size_t max)
    Callback to trace active messages.
    Definition uct_def.h:524
    +
    ssize_t uct_ep_am_bcopy(uct_ep_h ep, uint8_t id, uct_pack_callback_t pack_cb, void *arg, unsigned flags)
    Definition uct.h:3034
    +
    ucs_status_t uct_ep_am_zcopy(uct_ep_h ep, uint8_t id, const void *header, unsigned header_length, const uct_iov_t *iov, size_t iovcnt, unsigned flags, uct_completion_t *comp)
    Send active message while avoiding local memory copy.
    Definition uct.h:3079
    +
    ucs_status_t uct_iface_set_am_tracer(uct_iface_h iface, uct_am_tracer_t tracer, void *arg)
    Set active message tracer for the interface.
    +
    ucs_status_t(* uct_am_callback_t)(void *arg, void *data, size_t length, unsigned flags)
    Callback to process incoming active message.
    Definition uct_def.h:506
    +
    @ UCT_SEND_FLAG_PEER_CHECK
    Definition uct.h:564
    +
    @ UCT_SEND_FLAG_SIGNALED
    Definition uct.h:558
    +
    ucs_status_t uct_ep_atomic64_post(uct_ep_h ep, uct_atomic_op_t opcode, uint64_t value, uint64_t remote_addr, uct_rkey_t rkey)
    Definition uct.h:3130
    +
    ucs_status_t uct_ep_atomic32_fetch(uct_ep_h ep, uct_atomic_op_t opcode, uint32_t value, uint32_t *result, uint64_t remote_addr, uct_rkey_t rkey, uct_completion_t *comp)
    Definition uct.h:3142
    +
    ucs_status_t uct_ep_atomic32_post(uct_ep_h ep, uct_atomic_op_t opcode, uint32_t value, uint64_t remote_addr, uct_rkey_t rkey)
    Definition uct.h:3118
    +
    ucs_status_t uct_ep_atomic_cswap64(uct_ep_h ep, uint64_t compare, uint64_t swap, uint64_t remote_addr, uct_rkey_t rkey, uint64_t *result, uct_completion_t *comp)
    Definition uct.h:3094
    +
    ucs_status_t uct_ep_atomic_cswap32(uct_ep_h ep, uint32_t compare, uint32_t swap, uint64_t remote_addr, uct_rkey_t rkey, uint32_t *result, uct_completion_t *comp)
    Definition uct.h:3106
    +
    ucs_status_t uct_ep_atomic64_fetch(uct_ep_h ep, uct_atomic_op_t opcode, uint64_t value, uint64_t *result, uint64_t remote_addr, uct_rkey_t rkey, uct_completion_t *comp)
    Definition uct.h:3156
    +
    uint64_t field_mask
    Definition uct.h:1500
    +
    int backlog
    Definition uct.h:1507
    +
    uint64_t field_mask
    Definition uct.h:1436
    +
    uint64_t field_mask
    Definition uct.h:1460
    +
    size_t private_data_length
    Definition uct.h:1447
    +
    uct_cm_listener_conn_request_callback_t conn_request_cb
    Definition uct.h:1512
    +
    void * user_data
    Definition uct.h:1517
    +
    struct sockaddr_storage sockaddr
    Definition uct.h:1485
    +
    uint64_t field_mask
    Definition uct.h:1480
    +
    size_t max_conn_priv
    Definition uct.h:1466
    +
    const void * private_data
    Definition uct.h:1441
    +
    void(* uct_sockaddr_conn_request_callback_t)(uct_iface_h iface, void *arg, uct_conn_request_h conn_request, const void *conn_priv_data, size_t length)
    Callback to process an incoming connection request on the server side.
    Definition uct_def.h:642
    +
    uct_cm_attr_field
    UCT connection manager attributes field mask.
    Definition uct.h:877
    +
    void uct_cm_close(uct_cm_h cm)
    Close a connection manager.
    +
    ucs_status_t uct_iface_reject(uct_iface_h iface, uct_conn_request_h conn_request)
    Reject connection request. Will invoke an error handler uct_error_handler_t on the remote transport i...
    +
    ucs_status_t uct_cm_client_ep_conn_notify(uct_ep_h ep)
    Notify the server about client-side connection establishment.
    +
    ucs_status_t uct_cm_query(uct_cm_h cm, uct_cm_attr_t *cm_attr)
    Get connection manager attributes.
    +
    ssize_t(* uct_cm_ep_priv_data_pack_callback_t)(void *arg, const uct_cm_ep_priv_data_pack_args_t *pack_args, void *priv_data)
    Callback to fill the user's private data in a client-server flow.
    Definition uct_def.h:771
    +
    void(* uct_cm_listener_conn_request_callback_t)(uct_listener_h listener, void *arg, const uct_cm_listener_conn_request_args_t *conn_req_args)
    Callback to process an incoming connection request on the server side listener in a connection manage...
    Definition uct_def.h:667
    +
    void uct_listener_destroy(uct_listener_h listener)
    Destroy a transport listener.
    +
    ucs_status_t uct_ep_disconnect(uct_ep_h ep, unsigned flags)
    Initiate a disconnection of an endpoint connected to a sockaddr by a connection manager uct_cm_h.
    +
    ucs_status_t uct_cm_open(uct_component_h component, uct_worker_h worker, const uct_cm_config_t *config, uct_cm_h *cm_p)
    Open a connection manager.
    +
    uct_ep_connect_params_field
    UCT endpoint connected by uct_ep_connect parameters field mask.
    Definition uct.h:983
    +
    ucs_status_t uct_listener_reject(uct_listener_h listener, uct_conn_request_h conn_request)
    Reject a connection request.
    +
    ucs_status_t uct_iface_accept(uct_iface_h iface, uct_conn_request_h conn_request)
    Accept connection request.
    +
    void(* uct_cm_ep_server_conn_notify_callback_t)(uct_ep_h ep, void *arg, const uct_cm_ep_server_conn_notify_args_t *connect_args)
    Callback to process an incoming connection establishment acknowledgment on the server side listener,...
    Definition uct_def.h:697
    +
    void(* uct_cm_ep_client_connect_callback_t)(uct_ep_h ep, void *arg, const uct_cm_ep_client_connect_args_t *connect_args)
    Callback to process an incoming connection response on the client side from the server or handle a lo...
    Definition uct_def.h:721
    +
    uct_listener_attr_field
    UCT listener attributes field mask.
    Definition uct.h:890
    +
    ucs_status_t(* uct_cm_ep_resolve_callback_t)(void *user_data, const uct_cm_ep_resolve_args_t *resolve_args)
    Callback to notify that the client side endpoint is bound to a local device.
    Definition uct_def.h:795
    +
    ucs_status_t uct_listener_create(uct_cm_h cm, const struct sockaddr *saddr, socklen_t socklen, const uct_listener_params_t *params, uct_listener_h *listener_p)
    Create a new transport listener object.
    +
    ucs_status_t uct_listener_query(uct_listener_h listener, uct_listener_attr_t *listener_attr)
    Get attributes specific to a particular listener.
    +
    ucs_status_t uct_cm_config_read(uct_component_h component, const char *env_prefix, const char *filename, uct_cm_config_t **config_p)
    Read the configuration for a connection manager.
    +
    ucs_status_t uct_ep_connect(uct_ep_h ep, const uct_ep_connect_params_t *params)
    Connect a client side endpoint after it is bound to a local network device, i.e. uct_ep_params_t::cm_...
    +
    void(* uct_ep_disconnect_cb_t)(uct_ep_h ep, void *arg)
    Callback to handle the disconnection of the remote peer.
    Definition uct_def.h:743
    +
    uct_listener_params_field
    UCT listener created by uct_listener_create parameters field mask.
    Definition uct.h:903
    +
    @ UCT_CM_ATTR_FIELD_MAX_CONN_PRIV
    Definition uct.h:879
    +
    @ UCT_EP_CONNECT_PARAM_FIELD_PRIVATE_DATA
    Definition uct.h:985
    +
    @ UCT_EP_CONNECT_PARAM_FIELD_PRIVATE_DATA_LENGTH
    Definition uct.h:988
    +
    @ UCT_LISTENER_ATTR_FIELD_SOCKADDR
    Definition uct.h:892
    +
    @ UCT_LISTENER_PARAM_FIELD_CONN_REQUEST_CB
    Definition uct.h:908
    +
    @ UCT_LISTENER_PARAM_FIELD_BACKLOG
    Definition uct.h:905
    +
    @ UCT_LISTENER_PARAM_FIELD_USER_DATA
    Definition uct.h:911
    +
    Connection manager attributes, capabilities and limitations.
    Definition uct.h:1454
    +
    Parameters for connecting a UCT endpoint by uct_ep_connect.
    Definition uct.h:1430
    +
    UCT listener attributes, capabilities and limitations.
    Definition uct.h:1474
    +
    Parameters for creating a listener object uct_listener_h by uct_listener_create.
    Definition uct.h:1494
    +
    ucs_status_t uct_config_modify(void *config, const char *name, const char *value)
    Modify interface configuration (uct_iface_config_t), memory domain configuration (uct_md_config_t) or...
    +
    uct_alloc_method_t
    Memory allocation methods.
    Definition uct.h:473
    +
    void uct_worker_destroy(uct_worker_h worker)
    Destroy a worker object.
    +
    void uct_worker_progress_unregister_safe(uct_worker_h worker, uct_worker_cb_id_t *id_p)
    Remove a slow path callback function from worker's progress.
    +
    void uct_worker_progress_register_safe(uct_worker_h worker, ucs_callback_t func, void *arg, unsigned flags, uct_worker_cb_id_t *id_p)
    Add a slow path callback function to a worker progress.
    +
    unsigned uct_worker_progress(uct_worker_h worker)
    Explicit progress for UCT worker.
    Definition uct.h:2785
    +
    ucs_status_t uct_worker_create(ucs_async_context_t *async, ucs_thread_mode_t thread_mode, uct_worker_h *worker_p)
    Create a worker object.
    +
    ucs_status_t uct_config_get(void *config, const char *name, char *value, size_t max)
    Get value by name from interface configuration (uct_iface_config_t), memory domain configuration (uct...
    +
    @ UCT_ALLOC_METHOD_MD
    Definition uct.h:476
    +
    @ UCT_ALLOC_METHOD_LAST
    Definition uct.h:480
    +
    @ UCT_ALLOC_METHOD_MMAP
    Definition uct.h:478
    +
    @ UCT_ALLOC_METHOD_HEAP
    Definition uct.h:477
    +
    @ UCT_ALLOC_METHOD_HUGE
    Definition uct.h:479
    +
    @ UCT_ALLOC_METHOD_THP
    Definition uct.h:474
    +
    @ UCT_ALLOC_METHOD_DEFAULT
    Definition uct.h:481
    +
    void * base_address
    Definition uct.h:1623
    +
    char component_name[UCT_COMPONENT_NAME_MAX]
    Definition uct.h:1545
    +
    uct_mem_h memh
    Definition uct.h:1688
    +
    void * address
    Definition uct.h:2512
    +
    uct_rkey_t rkey
    Definition uct.h:1700
    +
    unsigned flags
    Definition uct.h:2500
    +
    int dmabuf_fd
    Definition uct.h:1640
    +
    uint64_t field_mask
    Definition uct.h:1602
    +
    size_t rkey_packed_size
    Definition uct.h:1546
    +
    ucs_memory_type_t mem_type
    Definition uct.h:1609
    +
    ucs_linear_func_t reg_cost
    Definition uct.h:1541
    +
    size_t dmabuf_offset
    Definition uct.h:1646
    +
    ucs_sys_device_t sys_dev
    Definition uct.h:1616
    +
    ucs_cpu_set_t local_cpus
    Definition uct.h:1547
    +
    uint64_t field_mask
    Definition uct.h:2492
    +
    void * handle
    Definition uct.h:1701
    +
    void * address
    Definition uct.h:1683
    +
    uct_alloc_method_t method
    Definition uct.h:1685
    +
    ucs_memory_type_t mem_type
    Definition uct.h:2517
    +
    const char * name
    Definition uct.h:2540
    +
    ucs_memory_type_t mem_type
    Definition uct.h:1686
    +
    size_t length
    Definition uct.h:1684
    +
    void * type
    Definition uct.h:1702
    +
    size_t alloc_length
    Definition uct.h:1630
    +
    struct uct_md_attr::@19 cap
    +
    uct_md_h md
    Definition uct.h:1687
    +
    ucs_status_t uct_rkey_ptr(uct_component_h component, uct_rkey_bundle_t *rkey_ob, uint64_t remote_addr, void **addr_p)
    Get a local pointer to remote memory.
    +
    ucs_status_t uct_rkey_unpack(uct_component_h component, const void *rkey_buffer, uct_rkey_bundle_t *rkey_ob)
    Unpack a remote key.
    +
    uct_mem_alloc_params_field_t
    UCT allocation parameters specification field mask.
    Definition uct.h:2464
    +
    struct uct_allocated_memory uct_allocated_memory_t
    Describes a memory allocated by UCT.
    +
    uct_md_mem_flags
    Memory allocation/registration flags.
    Definition uct.h:779
    +
    ucs_status_t uct_mem_alloc(size_t length, const uct_alloc_method_t *methods, unsigned num_methods, const uct_mem_alloc_params_t *params, uct_allocated_memory_t *mem)
    Allocate memory for zero-copy communications and remote access.
    +
    ucs_status_t uct_mem_free(const uct_allocated_memory_t *mem)
    Release allocated memory.
    +
    uct_mem_advice_t
    list of UCT memory use advice
    Definition uct.h:861
    +
    ucs_status_t uct_md_mem_query(uct_md_h md, const void *address, size_t length, uct_md_mem_attr_t *mem_attr)
    Query attributes of a given pointer.
    +
    ucs_status_t uct_md_config_read(uct_component_h component, const char *env_prefix, const char *filename, uct_md_config_t **config_p)
    Read the configuration for a memory domain.
    +
    enum uct_md_mem_attr_field uct_md_mem_attr_field_t
    UCT MD memory attributes field mask.
    +
    ucs_status_t uct_md_mkey_pack(uct_md_h md, uct_mem_h memh, void *rkey_buffer)
    Pack a remote key.
    +
    struct uct_md_mem_attr uct_md_mem_attr_t
    Memory domain attributes.
    +
    int uct_md_is_sockaddr_accessible(uct_md_h md, const ucs_sock_addr_t *sockaddr, uct_sockaddr_accessibility_t mode)
    Check if remote sock address is accessible from the memory domain.
    +
    uct_md_mem_attr_field
    UCT MD memory attributes field mask.
    Definition uct.h:1558
    +
    ucs_status_t uct_md_detect_memory_type(uct_md_h md, const void *addr, size_t length, ucs_memory_type_t *mem_type_p)
    Detect memory type.
    +
    uct_sockaddr_accessibility_t
    Socket address accessibility type.
    Definition uct.h:690
    +
    ucs_status_t uct_md_mem_reg(uct_md_h md, void *address, size_t length, unsigned flags, uct_mem_h *memh_p)
    Register memory for zero-copy sends and remote access.
    +
    struct uct_rkey_bundle uct_rkey_bundle_t
    Remote key with its type.
    +
    ucs_status_t uct_md_query(uct_md_h md, uct_md_attr_t *md_attr)
    Query for memory domain attributes.
    +
    ucs_status_t uct_rkey_release(uct_component_h component, const uct_rkey_bundle_t *rkey_ob)
    Release a remote key.
    +
    ucs_status_t uct_md_mem_dereg(uct_md_h md, uct_mem_h memh)
    Undo the operation of uct_md_mem_reg().
    +
    ucs_status_t uct_md_mem_advise(uct_md_h md, uct_mem_h memh, void *addr, size_t length, uct_mem_advice_t advice)
    Give advice about the use of memory.
    +
    @ UCT_MEM_ALLOC_PARAM_FIELD_MEM_TYPE
    Definition uct.h:2472
    +
    @ UCT_MEM_ALLOC_PARAM_FIELD_MDS
    Definition uct.h:2475
    +
    @ UCT_MEM_ALLOC_PARAM_FIELD_NAME
    Definition uct.h:2478
    +
    @ UCT_MEM_ALLOC_PARAM_FIELD_ADDRESS
    Definition uct.h:2469
    +
    @ UCT_MEM_ALLOC_PARAM_FIELD_FLAGS
    Definition uct.h:2466
    +
    @ UCT_MD_MEM_ACCESS_REMOTE_PUT
    Definition uct.h:807
    +
    @ UCT_MD_MEM_FLAG_NONBLOCK
    Definition uct.h:784
    +
    @ UCT_MD_MEM_FLAG_LOCK
    Definition uct.h:795
    +
    @ UCT_MD_MEM_SYMMETRIC_RKEY
    Definition uct.h:836
    +
    @ UCT_MD_MEM_ACCESS_LOCAL_WRITE
    Definition uct.h:827
    +
    @ UCT_MD_MEM_ACCESS_REMOTE_ATOMIC
    Definition uct.h:817
    +
    @ UCT_MD_MEM_ACCESS_REMOTE_GET
    Definition uct.h:812
    +
    @ UCT_MD_MEM_ACCESS_RMA
    Definition uct.h:850
    +
    @ UCT_MD_MEM_ACCESS_ALL
    Definition uct.h:841
    +
    @ UCT_MD_MEM_FLAG_FIXED
    Definition uct.h:789
    +
    @ UCT_MD_MEM_FLAG_HIDE_ERRORS
    Definition uct.h:801
    +
    @ UCT_MD_MEM_ACCESS_LOCAL_READ
    Definition uct.h:822
    +
    @ UCT_MD_FLAG_SOCKADDR
    Definition uct.h:747
    +
    @ UCT_MD_FLAG_INVALIDATE
    Definition uct.h:755
    +
    @ UCT_MD_FLAG_ADVISE
    Definition uct.h:729
    +
    @ UCT_MD_FLAG_REG_DMABUF
    Definition uct.h:766
    +
    @ UCT_MD_FLAG_EXPORTED_MKEY
    Definition uct.h:761
    +
    @ UCT_MD_FLAG_NEED_MEMH
    Definition uct.h:718
    +
    @ UCT_MD_FLAG_RKEY_PTR
    Definition uct.h:742
    +
    @ UCT_MD_FLAG_REG
    Definition uct.h:713
    +
    @ UCT_MD_FLAG_LAST
    Definition uct.h:772
    +
    @ UCT_MD_FLAG_ALLOC
    Definition uct.h:708
    +
    @ UCT_MD_FLAG_FIXED
    Definition uct.h:734
    +
    @ UCT_MD_FLAG_NEED_RKEY
    Definition uct.h:724
    +
    @ UCT_MADV_NORMAL
    Definition uct.h:862
    +
    @ UCT_MADV_WILLNEED
    Definition uct.h:863
    +
    @ UCT_MD_MEM_ATTR_FIELD_DMABUF_FD
    Definition uct.h:1579
    +
    @ UCT_MD_MEM_ATTR_FIELD_BASE_ADDRESS
    Definition uct.h:1569
    +
    @ UCT_MD_MEM_ATTR_FIELD_SYS_DEV
    Definition uct.h:1566
    +
    @ UCT_MD_MEM_ATTR_FIELD_DMABUF_OFFSET
    Definition uct.h:1585
    +
    @ UCT_MD_MEM_ATTR_FIELD_ALLOC_LENGTH
    Definition uct.h:1572
    +
    @ UCT_MD_MEM_ATTR_FIELD_MEM_TYPE
    Definition uct.h:1560
    +
    @ UCT_SOCKADDR_ACC_LOCAL
    Definition uct.h:691
    +
    @ UCT_SOCKADDR_ACC_REMOTE
    Definition uct.h:694
    +
    Describes a memory allocated by UCT.
    Definition uct.h:1682
    +
    Memory domain attributes.
    Definition uct.h:1530
    +
    Memory domain attributes.
    Definition uct.h:1597
    +
    Parameters for allocating memory using uct_mem_alloc.
    Definition uct.h:2486
    +
    Remote key with its type.
    Definition uct.h:1699
    +
    uint32_t err_handler_flags
    Definition uct.h:1232
    +
    void * user_data
    Definition uct.h:1308
    +
    size_t am_align_offset
    Definition uct.h:1277
    +
    uint32_t sockaddr_cb_flags
    Definition uct.h:1341
    +
    size_t device_addr_len
    Definition uct.h:1142
    +
    char dev_name[UCT_DEVICE_NAME_MAX]
    Definition uct.h:330
    +
    ucs_sys_device_t sys_device
    Definition uct.h:333
    +
    uct_iface_h iface
    Definition uct.h:1303
    +
    const uct_device_addr_t * dev_addr
    Definition uct.h:1315
    +
    size_t private_data_length
    Definition uct.h:1414
    +
    uct_completion_callback_t func
    Definition uct.h:1725
    +
    char priv[UCT_PENDING_REQ_PRIV_LEN]
    Definition uct.h:1742
    +
    uct_cm_ep_client_connect_callback_t sockaddr_cb_client
    Definition uct.h:1374
    +
    struct sockaddr_storage listen_sockaddr
    Definition uct.h:1148
    +
    uct_tag_unexp_eager_cb_t eager_cb
    Definition uct.h:1237
    +
    const ucs_sock_addr_t * sockaddr
    Definition uct.h:1331
    +
    char md_name[UCT_MD_NAME_MAX]
    Definition uct.h:219
    +
    const void * private_data
    Definition uct.h:1408
    +
    unsigned md_resource_count
    Definition uct.h:258
    +
    char name[UCT_COMPONENT_NAME_MAX]
    Definition uct.h:255
    +
    size_t max_conn_priv
    Definition uct.h:1145
    +
    size_t am_alignment
    Definition uct.h:1259
    +
    uct_pending_callback_t func
    Definition uct.h:1741
    +
    void * async_event_arg
    Definition uct.h:1242
    +
    uct_ppn_bandwidth_t bandwidth
    Definition uct.h:1156
    +
    struct uct_iface_attr::@7 cap
    +
    ucs_stats_node_t * stats_root
    Definition uct.h:1222
    +
    ucs_cpu_set_t cpu_mask
    Definition uct.h:1186
    +
    size_t ep_addr_len
    Definition uct.h:1144
    +
    uct_md_resource_desc_t * md_resources
    Definition uct.h:273
    +
    void * eager_arg
    Definition uct.h:1235
    +
    uct_cm_ep_priv_data_pack_callback_t sockaddr_pack_cb
    Definition uct.h:1353
    +
    uint64_t open_mode
    Definition uct.h:1188
    +
    uct_device_type_t dev_type
    Definition uct.h:331
    +
    uct_cm_ep_resolve_callback_t cm_resolve_cb
    Definition uct.h:1400
    +
    uint64_t features
    Definition uct.h:1283
    +
    uint8_t priority
    Definition uct.h:1159
    +
    char tl_name[UCT_TL_NAME_MAX]
    Definition uct.h:329
    +
    uint64_t field_mask
    Definition uct.h:1297
    +
    uint64_t field_mask
    Definition uct.h:1184
    +
    uct_cm_ep_server_conn_notify_callback_t sockaddr_cb_server
    Definition uct.h:1380
    +
    ucs_status_t status
    Definition uct.h:1727
    +
    uct_cm_h cm
    Definition uct.h:1359
    +
    union uct_iface_params::@16 mode
    +
    uct_async_event_cb_t async_event_cb
    Definition uct.h:1247
    +
    double overhead
    Definition uct.h:1155
    +
    void * err_handler_arg
    Definition uct.h:1227
    +
    uct_ep_disconnect_cb_t disconnect_cb
    Definition uct.h:1385
    +
    int count
    Definition uct.h:1726
    +
    unsigned dev_num_paths
    Definition uct.h:1161
    +
    const ucs_sock_addr_t * local_sockaddr
    Definition uct.h:1422
    +
    ucs_linear_func_t latency
    Definition uct.h:1157
    +
    uint64_t flags
    Definition uct.h:278
    +
    uct_conn_request_h conn_request
    Definition uct.h:1368
    +
    uint64_t field_mask
    Definition uct.h:252
    +
    size_t iface_addr_len
    Definition uct.h:1143
    +
    const uct_iface_addr_t * iface_addr
    Definition uct.h:1322
    +
    size_t rx_headroom
    Definition uct.h:1224
    +
    uct_tag_unexp_rndv_cb_t rndv_cb
    Definition uct.h:1240
    +
    unsigned path_index
    Definition uct.h:1391
    +
    size_t max_num_eps
    Definition uct.h:1160
    +
    ucs_time_t keepalive_interval
    Definition uct.h:1250
    +
    void * rndv_arg
    Definition uct.h:1238
    +
    uct_error_handler_t err_handler
    Definition uct.h:1229
    +
    ucs_status_t uct_iface_open(uct_md_h md, uct_worker_h worker, const uct_iface_params_t *params, const uct_iface_config_t *config, uct_iface_h *iface_p)
    Open a communication interface.
    +
    uct_iface_feature
    UCT interface configuration features.
    Definition uct.h:1000
    +
    struct uct_component_attr uct_component_attr_t
    UCT component attributes.
    +
    ucs_status_t uct_ep_create(const uct_ep_params_t *params, uct_ep_h *ep_p)
    Create new endpoint.
    +
    void uct_ep_pending_purge(uct_ep_h ep, uct_pending_purge_callback_t cb, void *arg)
    Remove all pending requests from an endpoint.
    Definition uct.h:3205
    +
    ucs_status_t(* uct_error_handler_t)(void *arg, uct_ep_h ep, ucs_status_t status)
    Callback to process peer failure.
    Definition uct_def.h:574
    +
    uint64_t uct_tag_t
    Definition uct_def.h:110
    +
    void uct_iface_mem_free(const uct_allocated_memory_t *mem)
    Release memory allocated with uct_iface_mem_alloc().
    +
    void uct_release_tl_resource_list(uct_tl_resource_desc_t *resources)
    Release the list of resources returned from uct_md_query_tl_resources.
    +
    ucs_status_t uct_ep_get_address(uct_ep_h ep, uct_ep_addr_t *addr)
    Get endpoint address.
    +
    uct_component_attr_field
    UCT component attributes field mask.
    Definition uct.h:230
    +
    ucs_status_t uct_ep_flush(uct_ep_h ep, unsigned flags, uct_completion_t *comp)
    Flush outstanding communication operations on an endpoint.
    Definition uct.h:3241
    +
    void * uct_mem_h
    Definition uct_def.h:84
    +
    struct uct_worker * uct_worker_h
    Definition uct_def.h:95
    +
    uintptr_t uct_rkey_t
    Definition uct_def.h:85
    +
    ucs_status_t uct_ep_fence(uct_ep_h ep, unsigned flags)
    Ensures ordering of outstanding communications on the endpoint. Operations issued on the endpoint pri...
    Definition uct.h:3260
    +
    void(* uct_pending_purge_callback_t)(uct_pending_req_t *self, void *arg)
    Callback to purge pending requests.
    Definition uct_def.h:586
    +
    ucs_status_t uct_ep_connect_to_ep(uct_ep_h ep, const uct_device_addr_t *dev_addr, const uct_ep_addr_t *ep_addr)
    Connect endpoint to a remote endpoint.
    +
    ucs_status_t uct_ep_pending_add(uct_ep_h ep, uct_pending_req_t *req, unsigned flags)
    Add a pending request to an endpoint.
    Definition uct.h:3186
    +
    ucs_status_t uct_component_query(uct_component_h component, uct_component_attr_t *component_attr)
    Get component attributes.
    +
    ucs_status_t uct_ep_check(const uct_ep_h ep, unsigned flags, uct_completion_t *comp)
    check if the destination endpoint is alive in respect to UCT library
    +
    unsigned uct_iface_progress(uct_iface_h iface)
    Perform a progress on an interface.
    Definition uct.h:3602
    +
    void(* uct_unpack_callback_t)(void *arg, const void *data, size_t length)
    Callback for consuming data.
    Definition uct_def.h:611
    +
    ucs_status_t uct_md_open(uct_component_h component, const char *md_name, const uct_md_config_t *config, uct_md_h *md_p)
    Open a memory domain.
    +
    ucs_status_t uct_iface_get_device_address(uct_iface_h iface, uct_device_addr_t *addr)
    Get address of the device the interface is using.
    +
    ucs_status_t uct_iface_flush(uct_iface_h iface, unsigned flags, uct_completion_t *comp)
    Flush outstanding communication operations on an interface.
    Definition uct.h:2819
    +
    static UCS_F_ALWAYS_INLINE void uct_completion_update_status(uct_completion_t *comp, ucs_status_t status)
    Update status of UCT completion handle.
    Definition uct.h:3768
    +
    uct_progress_types
    UCT progress types.
    Definition uct.h:544
    +
    void * uct_conn_request_h
    Definition uct_def.h:112
    +
    void uct_iface_close(uct_iface_h iface)
    Close and destroy an interface.
    +
    size_t(* uct_pack_callback_t)(void *dest, void *arg)
    Callback for producing data.
    Definition uct_def.h:598
    +
    void uct_iface_progress_disable(uct_iface_h iface, unsigned flags)
    Disable synchronous progress for the interface.
    Definition uct.h:3592
    +
    ucs_status_t uct_iface_get_address(uct_iface_h iface, uct_iface_addr_t *addr)
    Get interface address.
    +
    struct uct_ep_addr uct_ep_addr_t
    Definition uct_def.h:100
    +
    struct uct_md * uct_md_h
    Memory domain handler.
    Definition uct_def.h:86
    +
    uct_flush_flags
    Flush modifiers.
    Definition uct.h:508
    +
    uct_iface_params_field
    UCT interface created by uct_iface_open parameters field mask.
    Definition uct.h:625
    +
    uct_iface_open_mode
    Mode in which to open the interface.
    Definition uct.h:604
    +
    uct_ep_params_field
    UCT endpoint created by uct_ep_create parameters field mask.
    Definition uct.h:922
    +
    void uct_config_release(void *config)
    Release configuration memory returned from uct_md_iface_config_read(), uct_md_config_read(),...
    +
    struct uct_iface_addr uct_iface_addr_t
    Definition uct_def.h:99
    +
    struct uct_component * uct_component_h
    Definition uct_def.h:78
    +
    struct uct_iface_config uct_iface_config_t
    Definition uct_def.h:80
    +
    struct uct_cm_config uct_cm_config_t
    Definition uct_def.h:82
    +
    int uct_worker_cb_id_t
    Definition uct_def.h:111
    +
    void uct_iface_progress_enable(uct_iface_h iface, unsigned flags)
    Enable synchronous progress for the interface.
    Definition uct.h:3567
    +
    ucs_status_t uct_iface_mem_alloc(uct_iface_h iface, size_t length, unsigned flags, const char *name, uct_allocated_memory_t *mem)
    Allocate memory which can be used for zero-copy communications.
    +
    ucs_status_t uct_iface_fence(uct_iface_h iface, unsigned flags)
    Ensures ordering of outstanding communications on the interface. Operations issued on the interface p...
    Definition uct.h:2837
    +
    struct uct_tl_resource_desc uct_tl_resource_desc_t
    Communication resource descriptor.
    +
    struct uct_iface * uct_iface_h
    Definition uct_def.h:79
    +
    uct_cm_t * uct_cm_h
    Definition uct_def.h:105
    +
    struct uct_md_config uct_md_config_t
    Definition uct_def.h:81
    +
    ucs_status_t uct_query_components(uct_component_h **components_p, unsigned *num_components_p)
    Query for list of components.
    +
    ucs_status_t uct_iface_query(uct_iface_h iface, uct_iface_attr_t *iface_attr)
    Get interface attributes.
    +
    void uct_ep_destroy(uct_ep_h ep)
    Destroy an endpoint.
    +
    struct uct_device_addr uct_device_addr_t
    Definition uct_def.h:98
    +
    void uct_md_close(uct_md_h md)
    Close a memory domain.
    +
    uct_cb_flags
    Callback flags.
    Definition uct.h:580
    +
    ucs_status_t uct_md_iface_config_read(uct_md_h md, const char *tl_name, const char *env_prefix, const char *filename, uct_iface_config_t **config_p)
    Read transport-specific interface configuration.
    +
    ucs_status_t(* uct_pending_callback_t)(uct_pending_req_t *self)
    Callback to process pending requests.
    Definition uct_def.h:553
    +
    void uct_release_component_list(uct_component_h *components)
    Release the list of components returned from uct_query_components.
    +
    int uct_iface_is_reachable(const uct_iface_h iface, const uct_device_addr_t *dev_addr, const uct_iface_addr_t *iface_addr)
    Check if remote iface address is reachable.
    +
    uct_device_type_t
    List of UCX device types.
    Definition uct.h:308
    +
    ucs_status_t uct_iface_event_fd_get(uct_iface_h iface, int *fd_p)
    Obtain a notification file descriptor for polling.
    +
    ucs_status_t uct_md_query_tl_resources(uct_md_h md, uct_tl_resource_desc_t **resources_p, unsigned *num_resources_p)
    Query for transport resources.
    +
    struct uct_ep * uct_ep_h
    Definition uct_def.h:83
    +
    uct_iface_event_types
    Asynchronous event types.
    Definition uct.h:496
    +
    struct uct_md_resource_desc uct_md_resource_desc_t
    Memory domain resource descriptor.
    +
    ucs_status_t uct_iface_event_arm(uct_iface_h iface, unsigned events)
    Turn on event notification for the next event.
    +
    struct uct_listener * uct_listener_h
    Definition uct_def.h:107
    +
    void(* uct_async_event_cb_t)(void *arg, unsigned flags)
    Callback to process asynchronous events.
    Definition uct_def.h:897
    +
    void(* uct_completion_callback_t)(uct_completion_t *self)
    Callback to process send completion.
    Definition uct_def.h:536
    +
    @ UCT_IFACE_FEATURE_AMO32
    Definition uct.h:1011
    +
    @ UCT_IFACE_FEATURE_TAG
    Definition uct.h:1017
    +
    @ UCT_IFACE_FEATURE_AM
    Definition uct.h:1002
    +
    @ UCT_IFACE_FEATURE_PUT
    Definition uct.h:1005
    +
    @ UCT_IFACE_FEATURE_LAST
    Definition uct.h:1023
    +
    @ UCT_IFACE_FEATURE_FLUSH_REMOTE
    Definition uct.h:1020
    +
    @ UCT_IFACE_FEATURE_GET
    Definition uct.h:1008
    +
    @ UCT_IFACE_FEATURE_AMO64
    Definition uct.h:1014
    +
    @ UCT_COMPONENT_ATTR_FIELD_MD_RESOURCE_COUNT
    Definition uct.h:232
    +
    @ UCT_COMPONENT_ATTR_FIELD_NAME
    Definition uct.h:231
    +
    @ UCT_COMPONENT_ATTR_FIELD_MD_RESOURCES
    Definition uct.h:233
    +
    @ UCT_COMPONENT_ATTR_FIELD_FLAGS
    Definition uct.h:234
    +
    @ UCT_PROGRESS_RECV
    Definition uct.h:546
    +
    @ UCT_PROGRESS_SEND
    Definition uct.h:545
    +
    @ UCT_PROGRESS_THREAD_SAFE
    Definition uct.h:547
    +
    @ UCT_TAG_RECV_CB_INLINE_DATA
    Definition uct.h:1810
    +
    @ UCT_FLUSH_FLAG_REMOTE
    Definition uct.h:528
    +
    @ UCT_FLUSH_FLAG_CANCEL
    Definition uct.h:513
    +
    @ UCT_FLUSH_FLAG_LOCAL
    Definition uct.h:509
    +
    @ UCT_IFACE_PARAM_FIELD_DEVICE
    Definition uct.h:634
    +
    @ UCT_IFACE_PARAM_FIELD_AM_ALIGN_OFFSET
    Definition uct.h:680
    +
    @ UCT_IFACE_PARAM_FIELD_HW_TM_RNDV_CB
    Definition uct.h:665
    +
    @ UCT_IFACE_PARAM_FIELD_ERR_HANDLER_FLAGS
    Definition uct.h:653
    +
    @ UCT_IFACE_PARAM_FIELD_KEEPALIVE_INTERVAL
    Definition uct.h:674
    +
    @ UCT_IFACE_PARAM_FIELD_OPEN_MODE
    Definition uct.h:630
    +
    @ UCT_IFACE_PARAM_FIELD_ERR_HANDLER
    Definition uct.h:650
    +
    @ UCT_IFACE_PARAM_FIELD_HW_TM_RNDV_ARG
    Definition uct.h:662
    +
    @ UCT_IFACE_PARAM_FIELD_STATS_ROOT
    Definition uct.h:641
    +
    @ UCT_IFACE_PARAM_FIELD_CPU_MASK
    Definition uct.h:627
    +
    @ UCT_IFACE_PARAM_FIELD_ASYNC_EVENT_CB
    Definition uct.h:671
    +
    @ UCT_IFACE_PARAM_FIELD_ASYNC_EVENT_ARG
    Definition uct.h:668
    +
    @ UCT_IFACE_PARAM_FIELD_AM_ALIGNMENT
    Definition uct.h:677
    +
    @ UCT_IFACE_PARAM_FIELD_HW_TM_EAGER_CB
    Definition uct.h:659
    +
    @ UCT_IFACE_PARAM_FIELD_RX_HEADROOM
    Definition uct.h:644
    +
    @ UCT_IFACE_PARAM_FIELD_ERR_HANDLER_ARG
    Definition uct.h:647
    +
    @ UCT_IFACE_PARAM_FIELD_HW_TM_EAGER_ARG
    Definition uct.h:656
    +
    @ UCT_IFACE_PARAM_FIELD_FEATURES
    Definition uct.h:683
    +
    @ UCT_IFACE_PARAM_FIELD_SOCKADDR
    Definition uct.h:638
    +
    @ UCT_IFACE_OPEN_MODE_DEVICE
    Definition uct.h:606
    +
    @ UCT_IFACE_OPEN_MODE_SOCKADDR_SERVER
    Definition uct.h:610
    +
    @ UCT_IFACE_OPEN_MODE_SOCKADDR_CLIENT
    Definition uct.h:614
    +
    @ UCT_EP_PARAM_FIELD_IFACE
    Definition uct.h:924
    +
    @ UCT_EP_PARAM_FIELD_SOCKADDR_DISCONNECT_CB
    Definition uct.h:957
    +
    @ UCT_EP_PARAM_FIELD_DEV_ADDR
    Definition uct.h:930
    +
    @ UCT_EP_PARAM_FIELD_CONN_REQUEST
    Definition uct.h:948
    +
    @ UCT_EP_PARAM_FIELD_PRIV_DATA
    Definition uct.h:966
    +
    @ UCT_EP_PARAM_FIELD_SOCKADDR_PACK_CB
    Definition uct.h:942
    +
    @ UCT_EP_PARAM_FIELD_SOCKADDR_CB_FLAGS
    Definition uct.h:939
    +
    @ UCT_EP_PARAM_FIELD_CM
    Definition uct.h:945
    +
    @ UCT_EP_PARAM_FIELD_CM_RESOLVE_CB
    Definition uct.h:963
    +
    @ UCT_EP_PARAM_FIELD_USER_DATA
    Definition uct.h:927
    +
    @ UCT_EP_PARAM_FIELD_PRIV_DATA_LENGTH
    Definition uct.h:969
    +
    @ UCT_EP_PARAM_FIELD_SOCKADDR_CONNECT_CB_CLIENT
    Definition uct.h:951
    +
    @ UCT_EP_PARAM_FIELD_SOCKADDR_NOTIFY_CB_SERVER
    Definition uct.h:954
    +
    @ UCT_EP_PARAM_FIELD_SOCKADDR
    Definition uct.h:936
    +
    @ UCT_EP_PARAM_FIELD_IFACE_ADDR
    Definition uct.h:933
    +
    @ UCT_EP_PARAM_FIELD_PATH_INDEX
    Definition uct.h:960
    +
    @ UCT_EP_PARAM_FIELD_LOCAL_SOCKADDR
    Definition uct.h:972
    +
    @ UCT_CB_FLAG_ASYNC
    Definition uct.h:582
    +
    @ UCT_CB_FLAG_RESERVED
    Definition uct.h:581
    +
    @ UCT_COMPONENT_FLAG_RKEY_PTR
    Definition uct.h:300
    +
    @ UCT_COMPONENT_FLAG_CM
    Definition uct.h:294
    +
    @ UCT_DEVICE_TYPE_SHM
    Definition uct.h:310
    +
    @ UCT_DEVICE_TYPE_ACC
    Definition uct.h:311
    +
    @ UCT_DEVICE_TYPE_NET
    Definition uct.h:309
    +
    @ UCT_DEVICE_TYPE_SELF
    Definition uct.h:312
    +
    @ UCT_DEVICE_TYPE_LAST
    Definition uct.h:313
    +
    @ UCT_EVENT_RECV
    Definition uct.h:498
    +
    @ UCT_EVENT_RECV_SIG
    Definition uct.h:499
    +
    @ UCT_EVENT_SEND_COMP
    Definition uct.h:497
    +
    Completion handle.
    Definition uct.h:1724
    +
    UCT component attributes.
    Definition uct.h:245
    +
    Parameters for creating a UCT endpoint by uct_ep_create.
    Definition uct.h:1291
    +
    Interface attributes: capabilities and limitations.
    Definition uct.h:1044
    +
    Parameters used for interface creation.
    Definition uct.h:1180
    +
    Structure for scatter-gather I/O.
    Definition uct_def.h:147
    +
    Memory domain resource descriptor.
    Definition uct.h:218
    +
    Pending request.
    Definition uct.h:1740
    +
    Communication resource descriptor.
    Definition uct.h:328
    +
    ucs_status_t uct_ep_put_short(uct_ep_h ep, const void *buffer, unsigned length, uint64_t remote_addr, uct_rkey_t rkey)
    Definition uct.h:2862
    +
    ucs_status_t uct_ep_get_zcopy(uct_ep_h ep, const uct_iov_t *iov, size_t iovcnt, uint64_t remote_addr, uct_rkey_t rkey, uct_completion_t *comp)
    Read data from remote memory while avoiding local memory copy.
    Definition uct.h:2973
    +
    ucs_status_t uct_ep_get_bcopy(uct_ep_h ep, uct_unpack_callback_t unpack_cb, void *arg, size_t length, uint64_t remote_addr, uct_rkey_t rkey, uct_completion_t *comp)
    Definition uct.h:2934
    +
    ssize_t uct_ep_put_bcopy(uct_ep_h ep, uct_pack_callback_t pack_cb, void *arg, uint64_t remote_addr, uct_rkey_t rkey)
    Definition uct.h:2873
    +
    ucs_status_t uct_ep_get_short(uct_ep_h ep, void *buffer, unsigned length, uint64_t remote_addr, uct_rkey_t rkey)
    Definition uct.h:2923
    +
    ucs_status_t uct_ep_put_zcopy(uct_ep_h ep, const uct_iov_t *iov, size_t iovcnt, uint64_t remote_addr, uct_rkey_t rkey, uct_completion_t *comp)
    Write data to remote memory while avoiding local memory copy.
    Definition uct.h:2910
    +
    ssize_t uct_ep_tag_eager_bcopy(uct_ep_h ep, uct_tag_t tag, uint64_t imm, uct_pack_callback_t pack_cb, void *arg, unsigned flags)
    Bcopy eager tagged-send operation.
    Definition uct.h:3318
    +
    ucs_status_t uct_ep_tag_rndv_request(uct_ep_h ep, uct_tag_t tag, const void *header, unsigned header_length, unsigned flags)
    Send software rendezvous request.
    Definition uct.h:3468
    +
    ucs_status_t(* uct_tag_unexp_eager_cb_t)(void *arg, void *data, size_t length, unsigned flags, uct_tag_t stag, uint64_t imm, void **context)
    Callback to process unexpected eager tagged message.
    Definition uct_def.h:845
    +
    ucs_status_t uct_ep_tag_eager_short(uct_ep_h ep, uct_tag_t tag, const void *data, size_t length)
    Short eager tagged-send operation.
    Definition uct.h:3288
    +
    ucs_status_t(* uct_tag_unexp_rndv_cb_t)(void *arg, unsigned flags, uint64_t stag, const void *header, unsigned header_length, uint64_t remote_addr, size_t length, const void *rkey_buf)
    Callback to process unexpected rendezvous tagged message.
    Definition uct_def.h:882
    +
    ucs_status_ptr_t uct_ep_tag_rndv_zcopy(uct_ep_h ep, uct_tag_t tag, const void *header, unsigned header_length, const uct_iov_t *iov, size_t iovcnt, unsigned flags, uct_completion_t *comp)
    Rendezvous tagged-send operation.
    Definition uct.h:3412
    +
    ucs_status_t uct_ep_tag_eager_zcopy(uct_ep_h ep, uct_tag_t tag, uint64_t imm, const uct_iov_t *iov, size_t iovcnt, unsigned flags, uct_completion_t *comp)
    Zcopy eager tagged-send operation.
    Definition uct.h:3364
    +
    ucs_status_t uct_iface_tag_recv_zcopy(uct_iface_h iface, uct_tag_t tag, uct_tag_t tag_mask, const uct_iov_t *iov, size_t iovcnt, uct_tag_context_t *ctx)
    Post a tag to a transport interface.
    Definition uct.h:3508
    +
    ucs_status_t uct_iface_tag_recv_cancel(uct_iface_h iface, uct_tag_context_t *ctx, int force)
    Cancel a posted tag.
    Definition uct.h:3541
    +
    ucs_status_t uct_ep_tag_rndv_cancel(uct_ep_h ep, void *op)
    Cancel outstanding rendezvous operation.
    Definition uct.h:3443
    +
    double dedicated
    Definition uct.h:1035
    +
    double shared
    Definition uct.h:1036
    +
    Definition uct.h:1034
    +
    Posted tag context.
    Definition uct.h:1753
    +
    char priv[UCT_TAG_PRIV_LEN]
    Definition uct.h:1800
    +
    void(* rndv_cb)(uct_tag_context_t *self, uct_tag_t stag, const void *header, unsigned header_length, ucs_status_t status, unsigned flags)
    Definition uct.h:1796
    +
    void(* tag_consumed_cb)(uct_tag_context_t *self)
    Definition uct.h:1760
    +
    void(* completed_cb)(uct_tag_context_t *self, uct_tag_t stag, uint64_t imm, size_t length, void *inline_data, ucs_status_t status)
    Definition uct.h:1781
    +
    +
    + + + + diff --git a/api/v1.17/html/uct__def_8h_source.html b/api/v1.17/html/uct__def_8h_source.html new file mode 100644 index 00000000000..2bc28b092ee --- /dev/null +++ b/api/v1.17/html/uct__def_8h_source.html @@ -0,0 +1,541 @@ + + + + + + + +UCX: uct_def.h Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    UCX 1.17 +
    +
    Unified Communication X
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    uct_def.h
    +
    +
    +
    1
    +
    7#ifndef UCT_DEF_H_
    +
    8#define UCT_DEF_H_
    +
    9
    +
    10#include <ucs/config/types.h>
    +
    11#include <ucs/type/status.h>
    +
    12
    +
    13#include <stddef.h>
    +
    14#include <stdint.h>
    +
    15#include <sys/types.h>
    +
    16
    +
    17
    +
    18#define UCT_COMPONENT_NAME_MAX 16
    +
    19#define UCT_MD_GLOBAL_ID_MAX 256
    +
    20#define UCT_TL_NAME_MAX 10
    +
    21#define UCT_MD_NAME_MAX 16
    +
    22#define UCT_DEVICE_NAME_MAX 32
    +
    23#define UCT_PENDING_REQ_PRIV_LEN 40
    +
    24#define UCT_TAG_PRIV_LEN 32
    +
    25#define UCT_AM_ID_BITS 5
    +
    26#define UCT_AM_ID_MAX UCS_BIT(UCT_AM_ID_BITS)
    +
    27#define UCT_MEM_HANDLE_NULL NULL
    +
    28#define UCT_INVALID_RKEY ((uintptr_t)(-1))
    +
    29#define UCT_INLINE_API static UCS_F_ALWAYS_INLINE
    +
    30#define UCT_DMABUF_FD_INVALID -1
    +
    31
    +
    32
    + +
    44
    +
    45
    +
    + + + +
    71 UCT_CB_PARAM_FLAG_MORE = UCS_BIT(2)
    +
    72};
    +
    +
    73
    +
    78typedef struct uct_component *uct_component_h;
    +
    79typedef struct uct_iface *uct_iface_h;
    +
    80typedef struct uct_iface_config uct_iface_config_t;
    +
    81typedef struct uct_md_config uct_md_config_t;
    +
    82typedef struct uct_cm_config uct_cm_config_t;
    +
    83typedef struct uct_ep *uct_ep_h;
    +
    84typedef void * uct_mem_h;
    +
    85typedef uintptr_t uct_rkey_t;
    +
    86typedef struct uct_md *uct_md_h;
    +
    87typedef struct uct_md_ops uct_md_ops_t;
    +
    88typedef void *uct_rkey_ctx_h;
    + + +
    91typedef struct uct_ep_attr uct_ep_attr_t;
    + + + +
    95typedef struct uct_worker *uct_worker_h;
    +
    96typedef struct uct_md uct_md_t;
    + +
    98typedef struct uct_device_addr uct_device_addr_t;
    +
    99typedef struct uct_iface_addr uct_iface_addr_t;
    +
    100typedef struct uct_ep_addr uct_ep_addr_t;
    + + + +
    104typedef struct uct_cm uct_cm_t;
    + + +
    107typedef struct uct_listener *uct_listener_h;
    + + +
    110typedef uint64_t uct_tag_t; /* tag type - 64 bit */
    + +
    112typedef void* uct_conn_request_h;
    +
    113
    +
    +
    147typedef struct uct_iov {
    +
    148 void *buffer;
    +
    149 size_t length;
    + +
    151 size_t stride;
    +
    153 unsigned count;
    + +
    +
    155
    +
    156
    + +
    172
    +
    173
    + +
    192
    +
    193
    +
    + +
    206 uint64_t field_mask;
    +
    207
    +
    214 char dev_name[UCT_DEVICE_NAME_MAX];
    + +
    +
    216
    +
    217
    +
    + +
    230 uint64_t field_mask;
    +
    231
    +
    238 char dev_name[UCT_DEVICE_NAME_MAX];
    +
    239
    + + +
    +
    250
    +
    251
    + +
    272
    +
    273
    +
    +
    281typedef struct uct_cm_remote_data {
    +
    287 uint64_t field_mask;
    +
    288
    + +
    293
    + +
    298
    +
    303 const void *conn_priv_data;
    +
    304
    + + +
    +
    310
    +
    311
    + +
    345
    +
    346
    + +
    384
    +
    385
    + +
    401
    +
    402
    + +
    433
    +
    434
    + +
    450
    +
    451
    + +
    478
    +
    479
    +
    506typedef ucs_status_t (*uct_am_callback_t)(void *arg, void *data, size_t length,
    +
    507 unsigned flags);
    +
    508
    +
    509
    +
    524typedef void (*uct_am_tracer_t)(void *arg, uct_am_trace_type_t type, uint8_t id,
    +
    525 const void *data, size_t length, char *buffer,
    +
    526 size_t max);
    +
    527
    +
    528
    + +
    537
    +
    538
    + +
    554
    +
    555
    + +
    575 ucs_status_t status);
    +
    576
    +
    577
    + +
    587 void *arg);
    +
    588
    +
    598typedef size_t (*uct_pack_callback_t)(void *dest, void *arg);
    +
    599
    +
    600
    +
    611typedef void (*uct_unpack_callback_t)(void *arg, const void *data, size_t length);
    +
    612
    +
    613
    +
    641typedef void
    + +
    643 uct_conn_request_h conn_request,
    +
    644 const void *conn_priv_data,
    +
    645 size_t length);
    +
    646
    +
    647
    +
    666typedef void
    + + +
    669 *conn_req_args);
    +
    670
    +
    671
    + +
    697 (uct_ep_h ep, void *arg,
    +
    698 const uct_cm_ep_server_conn_notify_args_t *connect_args);
    +
    699
    +
    700
    +
    721typedef void (*uct_cm_ep_client_connect_callback_t)(uct_ep_h ep, void *arg,
    + +
    723 *connect_args);
    +
    724
    +
    725
    +
    743typedef void (*uct_ep_disconnect_cb_t)(uct_ep_h ep, void *arg);
    +
    744
    +
    745
    +
    770typedef ssize_t
    + + +
    773 *pack_args, void *priv_data);
    +
    774
    +
    775
    + +
    795(*uct_cm_ep_resolve_callback_t)(void *user_data,
    +
    796 const uct_cm_ep_resolve_args_t *resolve_args);
    +
    797
    +
    798
    +
    845typedef ucs_status_t (*uct_tag_unexp_eager_cb_t)(void *arg, void *data,
    +
    846 size_t length, unsigned flags,
    +
    847 uct_tag_t stag, uint64_t imm,
    +
    848 void **context);
    +
    849
    +
    850
    +
    882typedef ucs_status_t (*uct_tag_unexp_rndv_cb_t)(void *arg, unsigned flags,
    +
    883 uint64_t stag, const void *header,
    +
    884 unsigned header_length,
    +
    885 uint64_t remote_addr, size_t length,
    +
    886 const void *rkey_buf);
    +
    887
    +
    888
    +
    897typedef void (*uct_async_event_cb_t)(void *arg, unsigned flags);
    +
    898
    +
    899
    +
    900#endif
    +
    ucs_status_t
    Status codes.
    Definition status.h:45
    +
    Definition types.h:137
    +
    uct_am_trace_type
    Trace types for active message tracer.
    Definition uct_def.h:37
    +
    void(* uct_am_tracer_t)(void *arg, uct_am_trace_type_t type, uint8_t id, const void *data, size_t length, char *buffer, size_t max)
    Callback to trace active messages.
    Definition uct_def.h:524
    +
    ucs_status_t(* uct_am_callback_t)(void *arg, void *data, size_t length, unsigned flags)
    Callback to process incoming active message.
    Definition uct_def.h:506
    +
    @ UCT_AM_TRACE_TYPE_RECV
    Definition uct_def.h:39
    +
    @ UCT_AM_TRACE_TYPE_SEND_DROP
    Definition uct_def.h:40
    +
    @ UCT_AM_TRACE_TYPE_LAST
    Definition uct_def.h:42
    +
    @ UCT_AM_TRACE_TYPE_RECV_DROP
    Definition uct_def.h:41
    +
    @ UCT_AM_TRACE_TYPE_SEND
    Definition uct_def.h:38
    +
    size_t dev_addr_length
    Definition uct_def.h:297
    +
    uint64_t field_mask
    Definition uct_def.h:415
    +
    ucs_status_t status
    Definition uct_def.h:476
    +
    char dev_name[UCT_DEVICE_NAME_MAX]
    Definition uct_def.h:214
    +
    uint64_t field_mask
    Definition uct_def.h:206
    +
    const uct_cm_remote_data_t * remote_data
    Definition uct_def.h:377
    +
    const void * conn_priv_data
    Definition uct_def.h:303
    +
    char dev_name[UCT_DEVICE_NAME_MAX]
    Definition uct_def.h:365
    +
    uint64_t field_mask
    Definition uct_def.h:464
    +
    ucs_status_t status
    Definition uct_def.h:431
    +
    ucs_sock_addr_t client_address
    Definition uct_def.h:382
    +
    uint64_t field_mask
    Definition uct_def.h:230
    +
    size_t conn_priv_data_length
    Definition uct_def.h:308
    +
    uint64_t field_mask
    Definition uct_def.h:360
    +
    const uct_device_addr_t * dev_addr
    Definition uct_def.h:292
    +
    const uct_cm_remote_data_t * remote_data
    Definition uct_def.h:420
    +
    uct_conn_request_h conn_request
    Definition uct_def.h:372
    +
    uint64_t field_mask
    Definition uct_def.h:287
    +
    char dev_name[UCT_DEVICE_NAME_MAX]
    Definition uct_def.h:238
    +
    ucs_status_t status
    Definition uct_def.h:248
    +
    void(* uct_sockaddr_conn_request_callback_t)(uct_iface_h iface, void *arg, uct_conn_request_h conn_request, const void *conn_priv_data, size_t length)
    Callback to process an incoming connection request on the server side.
    Definition uct_def.h:642
    +
    struct uct_cm_remote_data uct_cm_remote_data_t
    Data received from the remote peer.
    +
    uct_cm_remote_data_field
    Remote data attributes field mask.
    Definition uct_def.h:259
    +
    uct_cm_ep_priv_data_pack_args_field
    Client-Server private data pack callback arguments field mask.
    Definition uct_def.h:165
    +
    ssize_t(* uct_cm_ep_priv_data_pack_callback_t)(void *arg, const uct_cm_ep_priv_data_pack_args_t *pack_args, void *priv_data)
    Callback to fill the user's private data in a client-server flow.
    Definition uct_def.h:771
    +
    uct_cm_ep_client_connect_args_field
    Field mask flags for client-side connection established callback.
    Definition uct_def.h:394
    +
    uct_cm_ep_resolve_args_field
    Client-Server resolve callback arguments field mask.
    Definition uct_def.h:181
    +
    struct uct_cm_listener_conn_request_args uct_cm_listener_conn_request_args_t
    Arguments to the listener's connection request callback.
    +
    struct uct_cm_ep_priv_data_pack_args uct_cm_ep_priv_data_pack_args_t
    Arguments to the client-server private data pack callback.
    +
    void(* uct_cm_listener_conn_request_callback_t)(uct_listener_h listener, void *arg, const uct_cm_listener_conn_request_args_t *conn_req_args)
    Callback to process an incoming connection request on the server side listener in a connection manage...
    Definition uct_def.h:667
    +
    struct uct_cm_ep_client_connect_args uct_cm_ep_client_connect_args_t
    Arguments to the client's connect callback.
    +
    uct_cm_listener_conn_request_args_field
    Listener's connection request callback arguments field mask.
    Definition uct_def.h:320
    +
    struct uct_cm_ep_resolve_args uct_cm_ep_resolve_args_t
    Arguments to the client-server resolved callback.
    +
    void(* uct_cm_ep_server_conn_notify_callback_t)(uct_ep_h ep, void *arg, const uct_cm_ep_server_conn_notify_args_t *connect_args)
    Callback to process an incoming connection establishment acknowledgment on the server side listener,...
    Definition uct_def.h:697
    +
    void(* uct_cm_ep_client_connect_callback_t)(uct_ep_h ep, void *arg, const uct_cm_ep_client_connect_args_t *connect_args)
    Callback to process an incoming connection response on the client side from the server or handle a lo...
    Definition uct_def.h:721
    +
    ucs_status_t(* uct_cm_ep_resolve_callback_t)(void *user_data, const uct_cm_ep_resolve_args_t *resolve_args)
    Callback to notify that the client side endpoint is bound to a local device.
    Definition uct_def.h:795
    +
    struct uct_cm_ep_server_conn_notify_args uct_cm_ep_server_conn_notify_args_t
    Arguments to the server's notify callback.
    +
    void(* uct_ep_disconnect_cb_t)(uct_ep_h ep, void *arg)
    Callback to handle the disconnection of the remote peer.
    Definition uct_def.h:743
    +
    uct_cm_ep_server_conn_notify_args_field
    Field mask flags for server-side connection established notification callback.
    Definition uct_def.h:444
    +
    @ UCT_CM_REMOTE_DATA_FIELD_DEV_ADDR_LENGTH
    Definition uct_def.h:264
    +
    @ UCT_CM_REMOTE_DATA_FIELD_CONN_PRIV_DATA_LENGTH
    Definition uct_def.h:270
    +
    @ UCT_CM_REMOTE_DATA_FIELD_CONN_PRIV_DATA
    Definition uct_def.h:267
    +
    @ UCT_CM_REMOTE_DATA_FIELD_DEV_ADDR
    Definition uct_def.h:261
    +
    @ UCT_CM_EP_PRIV_DATA_PACK_ARGS_FIELD_DEVICE_NAME
    Definition uct_def.h:170
    +
    @ UCT_CM_EP_CLIENT_CONNECT_ARGS_FIELD_STATUS
    Definition uct_def.h:399
    +
    @ UCT_CM_EP_CLIENT_CONNECT_ARGS_FIELD_REMOTE_DATA
    Definition uct_def.h:396
    +
    @ UCT_CM_EP_RESOLVE_ARGS_FIELD_DEV_NAME
    Definition uct_def.h:185
    +
    @ UCT_CM_EP_RESOLVE_ARGS_FIELD_STATUS
    Definition uct_def.h:190
    +
    @ UCT_CM_LISTENER_CONN_REQUEST_ARGS_FIELD_DEV_NAME
    Definition uct_def.h:325
    +
    @ UCT_CM_LISTENER_CONN_REQUEST_ARGS_FIELD_REMOTE_DATA
    Definition uct_def.h:337
    +
    @ UCT_CM_LISTENER_CONN_REQUEST_ARGS_FIELD_CONN_REQUEST
    Definition uct_def.h:331
    +
    @ UCT_CM_LISTENER_CONN_REQUEST_ARGS_FIELD_CLIENT_ADDR
    Definition uct_def.h:343
    +
    @ UCT_CM_EP_SERVER_CONN_NOTIFY_ARGS_FIELD_STATUS
    Definition uct_def.h:448
    +
    Connection manager attributes, capabilities and limitations.
    Definition uct.h:1454
    +
    Arguments to the client's connect callback.
    Definition uct_def.h:409
    +
    Arguments to the client-server private data pack callback.
    Definition uct_def.h:200
    +
    Arguments to the client-server resolved callback.
    Definition uct_def.h:224
    +
    Arguments to the server's notify callback.
    Definition uct_def.h:458
    +
    Arguments to the listener's connection request callback.
    Definition uct_def.h:354
    +
    Data received from the remote peer.
    Definition uct_def.h:281
    +
    Parameters for connecting a UCT endpoint by uct_ep_connect.
    Definition uct.h:1430
    +
    UCT listener attributes, capabilities and limitations.
    Definition uct.h:1474
    +
    Parameters for creating a listener object uct_listener_h by uct_listener_create.
    Definition uct.h:1494
    +
    Memory domain attributes.
    Definition uct.h:1530
    +
    size_t stride
    Definition uct_def.h:151
    +
    void * buffer
    Definition uct_def.h:148
    +
    uct_mem_h memh
    Definition uct_def.h:150
    +
    size_t length
    Definition uct_def.h:149
    +
    unsigned count
    Definition uct_def.h:153
    +
    struct uct_iov uct_iov_t
    Structure for scatter-gather I/O.
    +
    ucs_status_t(* uct_error_handler_t)(void *arg, uct_ep_h ep, ucs_status_t status)
    Callback to process peer failure.
    Definition uct_def.h:574
    +
    uint64_t uct_tag_t
    Definition uct_def.h:110
    +
    void * uct_mem_h
    Definition uct_def.h:84
    +
    struct uct_worker * uct_worker_h
    Definition uct_def.h:95
    +
    uintptr_t uct_rkey_t
    Definition uct_def.h:85
    +
    void(* uct_pending_purge_callback_t)(uct_pending_req_t *self, void *arg)
    Callback to purge pending requests.
    Definition uct_def.h:586
    +
    uct_cb_param_flags
    Flags for active message and tag-matching offload callbacks (callback's parameters).
    Definition uct_def.h:68
    +
    void(* uct_unpack_callback_t)(void *arg, const void *data, size_t length)
    Callback for consuming data.
    Definition uct_def.h:611
    +
    void * uct_conn_request_h
    Definition uct_def.h:112
    +
    size_t(* uct_pack_callback_t)(void *dest, void *arg)
    Callback for producing data.
    Definition uct_def.h:598
    +
    struct uct_ep_addr uct_ep_addr_t
    Definition uct_def.h:100
    +
    struct uct_md * uct_md_h
    Memory domain handler.
    Definition uct_def.h:86
    +
    enum uct_am_trace_type uct_am_trace_type_t
    Definition uct_def.h:97
    +
    struct uct_iface_addr uct_iface_addr_t
    Definition uct_def.h:99
    +
    struct uct_component * uct_component_h
    Definition uct_def.h:78
    +
    struct uct_iface_config uct_iface_config_t
    Definition uct_def.h:80
    +
    struct uct_cm_config uct_cm_config_t
    Definition uct_def.h:82
    +
    int uct_worker_cb_id_t
    Definition uct_def.h:111
    +
    struct uct_ep_attr uct_ep_attr_t
    Definition uct_def.h:91
    +
    struct uct_iface * uct_iface_h
    Definition uct_def.h:79
    +
    uct_cm_t * uct_cm_h
    Definition uct_def.h:105
    +
    void * uct_rkey_ctx_h
    Definition uct_def.h:88
    +
    struct uct_md_config uct_md_config_t
    Definition uct_def.h:81
    +
    struct uct_device_addr uct_device_addr_t
    Definition uct_def.h:98
    +
    struct uct_md_ops uct_md_ops_t
    Definition uct_def.h:87
    +
    ucs_status_t(* uct_pending_callback_t)(uct_pending_req_t *self)
    Callback to process pending requests.
    Definition uct_def.h:553
    +
    struct uct_md uct_md_t
    Definition uct_def.h:96
    +
    struct uct_ep * uct_ep_h
    Definition uct_def.h:83
    +
    struct uct_cm uct_cm_t
    Definition uct_def.h:104
    +
    struct uct_listener * uct_listener_h
    Definition uct_def.h:107
    +
    void(* uct_async_event_cb_t)(void *arg, unsigned flags)
    Callback to process asynchronous events.
    Definition uct_def.h:897
    +
    void(* uct_completion_callback_t)(uct_completion_t *self)
    Callback to process send completion.
    Definition uct_def.h:536
    +
    @ UCT_CB_PARAM_FLAG_MORE
    Definition uct_def.h:71
    +
    @ UCT_CB_PARAM_FLAG_DESC
    Definition uct_def.h:69
    +
    @ UCT_CB_PARAM_FLAG_FIRST
    Definition uct_def.h:70
    +
    Completion handle.
    Definition uct.h:1724
    +
    Parameters for creating a UCT endpoint by uct_ep_create.
    Definition uct.h:1291
    +
    Interface attributes: capabilities and limitations.
    Definition uct.h:1044
    +
    Parameters used for interface creation.
    Definition uct.h:1180
    +
    Structure for scatter-gather I/O.
    Definition uct_def.h:147
    +
    Pending request.
    Definition uct.h:1740
    +
    ucs_status_t(* uct_tag_unexp_eager_cb_t)(void *arg, void *data, size_t length, unsigned flags, uct_tag_t stag, uint64_t imm, void **context)
    Callback to process unexpected eager tagged message.
    Definition uct_def.h:845
    +
    ucs_status_t(* uct_tag_unexp_rndv_cb_t)(void *arg, unsigned flags, uint64_t stag, const void *header, unsigned header_length, uint64_t remote_addr, size_t length, const void *rkey_buf)
    Callback to process unexpected rendezvous tagged message.
    Definition uct_def.h:882
    +
    Posted tag context.
    Definition uct.h:1753
    +
    +
    + + + + diff --git a/api/v1.17/html/uct_hello_world_8c-example.html b/api/v1.17/html/uct_hello_world_8c-example.html new file mode 100644 index 00000000000..0becf5eaba2 --- /dev/null +++ b/api/v1.17/html/uct_hello_world_8c-example.html @@ -0,0 +1,982 @@ + + + + + + + +UCX: uct_hello_world.c + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    UCX 1.17 +
    +
    Unified Communication X
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    uct_hello_world.c
    +
    +
    +

    UCT hello world client / server example utility.

    +
    +
    #include "hello_world_util.h"
    +
    #include <limits.h>
    +
    +
    #include <uct/api/uct.h>
    +
    +
    #include <assert.h>
    +
    #include <inttypes.h>
    +
    +
    +
    typedef enum {
    +
    FUNC_AM_SHORT,
    +
    FUNC_AM_BCOPY,
    +
    FUNC_AM_ZCOPY
    +
    } func_am_t;
    +
    +
    typedef struct {
    +
    int is_uct_desc;
    +
    } recv_desc_t;
    +
    +
    typedef struct {
    +
    char *server_name;
    +
    uint16_t server_port;
    +
    sa_family_t ai_family;
    +
    func_am_t func_am_type;
    +
    const char *dev_name;
    +
    const char *tl_name;
    +
    long test_strlen;
    +
    } cmd_args_t;
    +
    +
    typedef struct {
    +
    uct_iface_attr_t iface_attr; /* Interface attributes: capabilities and limitations */
    +
    uct_iface_h iface; /* Communication interface context */
    +
    uct_md_attr_t md_attr; /* Memory domain attributes: capabilities and limitations */
    +
    uct_md_h md; /* Memory domain */
    +
    uct_worker_h worker; /* Workers represent allocated resources in a communication thread */
    +
    } iface_info_t;
    +
    +
    /* Helper data type for am_short */
    +
    typedef struct {
    +
    uint64_t header;
    +
    char *payload;
    +
    size_t len;
    +
    } am_short_args_t;
    +
    +
    /* Helper data type for am_bcopy */
    +
    typedef struct {
    +
    char *data;
    +
    size_t len;
    +
    } am_bcopy_args_t;
    +
    +
    /* Helper data type for am_zcopy */
    +
    typedef struct {
    +
    uct_completion_t uct_comp;
    + +
    uct_mem_h memh;
    +
    } zcopy_comp_t;
    +
    +
    static void* desc_holder = NULL;
    +
    +
    int print_err_usage(void);
    +
    +
    static char *func_am_t_str(func_am_t func_am_type)
    +
    {
    +
    switch (func_am_type) {
    +
    case FUNC_AM_SHORT:
    +
    return "uct_ep_am_short";
    +
    case FUNC_AM_BCOPY:
    +
    return "uct_ep_am_bcopy";
    +
    case FUNC_AM_ZCOPY:
    +
    return "uct_ep_am_zcopy";
    +
    }
    +
    return NULL;
    +
    }
    +
    +
    static size_t func_am_max_size(func_am_t func_am_type,
    +
    const uct_iface_attr_t *attr)
    +
    {
    +
    switch (func_am_type) {
    +
    case FUNC_AM_SHORT:
    +
    return attr->cap.am.max_short;
    +
    case FUNC_AM_BCOPY:
    +
    return attr->cap.am.max_bcopy;
    +
    case FUNC_AM_ZCOPY:
    +
    return attr->cap.am.max_zcopy;
    +
    }
    +
    return 0;
    +
    }
    +
    +
    /* Helper function for am_short */
    +
    void am_short_params_pack(char *buf, size_t len, am_short_args_t *args)
    +
    {
    +
    args->header = *(uint64_t *)buf;
    +
    if (len > sizeof(args->header)) {
    +
    args->payload = (buf + sizeof(args->header));
    +
    args->len = len - sizeof(args->header);
    +
    } else {
    +
    args->payload = NULL;
    +
    args->len = 0;
    +
    }
    +
    }
    +
    +
    ucs_status_t do_am_short(iface_info_t *if_info, uct_ep_h ep, uint8_t id,
    +
    const cmd_args_t *cmd_args, char *buf)
    +
    {
    +
    ucs_status_t status;
    +
    am_short_args_t send_args;
    +
    +
    am_short_params_pack(buf, cmd_args->test_strlen, &send_args);
    +
    +
    do {
    +
    /* Send active message to remote endpoint */
    +
    status = uct_ep_am_short(ep, id, send_args.header, send_args.payload,
    +
    send_args.len);
    +
    uct_worker_progress(if_info->worker);
    +
    } while (status == UCS_ERR_NO_RESOURCE);
    +
    +
    return status;
    +
    }
    +
    +
    /* Pack callback for am_bcopy */
    +
    size_t am_bcopy_data_pack_cb(void *dest, void *arg)
    +
    {
    +
    am_bcopy_args_t *bc_args = arg;
    +
    mem_type_memcpy(dest, bc_args->data, bc_args->len);
    +
    return bc_args->len;
    +
    }
    +
    +
    ucs_status_t do_am_bcopy(iface_info_t *if_info, uct_ep_h ep, uint8_t id,
    +
    const cmd_args_t *cmd_args, char *buf)
    +
    {
    +
    am_bcopy_args_t args;
    +
    ssize_t len;
    +
    +
    args.data = buf;
    +
    args.len = cmd_args->test_strlen;
    +
    +
    /* Send active message to remote endpoint */
    +
    do {
    +
    len = uct_ep_am_bcopy(ep, id, am_bcopy_data_pack_cb, &args, 0);
    +
    uct_worker_progress(if_info->worker);
    +
    } while (len == UCS_ERR_NO_RESOURCE);
    +
    /* Negative len is an error code */
    +
    return (len >= 0) ? UCS_OK : (ucs_status_t)len;
    +
    }
    +
    +
    /* Completion callback for am_zcopy */
    +
    void zcopy_completion_cb(uct_completion_t *self)
    +
    {
    +
    zcopy_comp_t *comp = (zcopy_comp_t *)self;
    +
    assert((comp->uct_comp.count == 0) && (self->status == UCS_OK));
    +
    if (comp->memh != UCT_MEM_HANDLE_NULL) {
    +
    uct_md_mem_dereg(comp->md, comp->memh);
    +
    }
    +
    desc_holder = (void *)0xDEADBEEF;
    +
    }
    +
    +
    ucs_status_t do_am_zcopy(iface_info_t *if_info, uct_ep_h ep, uint8_t id,
    +
    const cmd_args_t *cmd_args, char *buf)
    +
    {
    +
    ucs_status_t status = UCS_OK;
    +
    uct_mem_h memh;
    +
    uct_iov_t iov;
    +
    zcopy_comp_t comp;
    +
    +
    if (if_info->md_attr.cap.flags & UCT_MD_FLAG_NEED_MEMH) {
    +
    status = uct_md_mem_reg(if_info->md, buf, cmd_args->test_strlen,
    + +
    } else {
    +
    memh = UCT_MEM_HANDLE_NULL;
    +
    }
    +
    +
    iov.buffer = buf;
    +
    iov.length = cmd_args->test_strlen;
    +
    iov.memh = memh;
    +
    iov.stride = 0;
    +
    iov.count = 1;
    +
    +
    comp.uct_comp.func = zcopy_completion_cb;
    +
    comp.uct_comp.count = 1;
    +
    comp.uct_comp.status = UCS_OK;
    +
    comp.md = if_info->md;
    +
    comp.memh = memh;
    +
    +
    if (status == UCS_OK) {
    +
    do {
    +
    status = uct_ep_am_zcopy(ep, id, NULL, 0, &iov, 1, 0,
    +
    (uct_completion_t *)&comp);
    +
    uct_worker_progress(if_info->worker);
    +
    } while (status == UCS_ERR_NO_RESOURCE);
    +
    +
    if (status == UCS_INPROGRESS) {
    +
    while (!desc_holder) {
    +
    /* Explicitly progress outstanding active message request */
    +
    uct_worker_progress(if_info->worker);
    +
    }
    +
    status = UCS_OK;
    +
    }
    +
    }
    +
    return status;
    +
    }
    +
    static void print_strings(const char *label, const char *local_str,
    +
    const char *remote_str, size_t length)
    +
    {
    +
    fprintf(stdout, "\n\n----- UCT TEST SUCCESS ----\n\n");
    +
    fprintf(stdout, "[%s] %s sent %s (%" PRIu64 " bytes)", label, local_str,
    +
    (length != 0) ? remote_str : "<none>", length);
    +
    fprintf(stdout, "\n\n---------------------------\n");
    +
    fflush(stdout);
    +
    }
    +
    +
    /* Callback to handle receive active message */
    +
    static ucs_status_t hello_world(void *arg, void *data, size_t length,
    +
    unsigned flags)
    +
    {
    +
    func_am_t func_am_type = *(func_am_t *)arg;
    +
    recv_desc_t *rdesc;
    +
    +
    print_strings("callback", func_am_t_str(func_am_type), data, length);
    +
    +
    if (flags & UCT_CB_PARAM_FLAG_DESC) {
    +
    rdesc = (recv_desc_t *)data - 1;
    +
    /* Hold descriptor to release later and return UCS_INPROGRESS */
    +
    rdesc->is_uct_desc = 1;
    +
    desc_holder = rdesc;
    + +
    }
    +
    +
    /* We need to copy-out data and return UCS_OK if want to use the data
    +
    * outside the callback */
    +
    rdesc = malloc(sizeof(*rdesc) + length);
    +
    CHKERR_ACTION(rdesc == NULL, "allocate memory\n", return UCS_ERR_NO_MEMORY);
    +
    rdesc->is_uct_desc = 0;
    +
    memcpy(rdesc + 1, data, length);
    +
    desc_holder = rdesc;
    +
    return UCS_OK;
    +
    }
    +
    +
    /* Init the transport by its name */
    +
    static ucs_status_t init_iface(char *dev_name, char *tl_name,
    +
    func_am_t func_am_type,
    +
    iface_info_t *iface_p)
    +
    {
    +
    ucs_status_t status;
    +
    uct_iface_config_t *config; /* Defines interface configuration options */
    + +
    + + + + + + +
    params.mode.device.tl_name = tl_name;
    +
    params.mode.device.dev_name = dev_name;
    +
    params.stats_root = NULL;
    +
    params.rx_headroom = sizeof(recv_desc_t);
    +
    +
    UCS_CPU_ZERO(&params.cpu_mask);
    +
    /* Read transport-specific interface configuration */
    +
    status = uct_md_iface_config_read(iface_p->md, tl_name, NULL, NULL, &config);
    +
    CHKERR_JUMP(UCS_OK != status, "setup iface_config", error_ret);
    +
    +
    /* Open communication interface */
    +
    assert(iface_p->iface == NULL);
    +
    status = uct_iface_open(iface_p->md, iface_p->worker, &params, config,
    +
    &iface_p->iface);
    + +
    CHKERR_JUMP(UCS_OK != status, "open temporary interface", error_ret);
    +
    +
    /* Enable progress on the interface */
    +
    uct_iface_progress_enable(iface_p->iface,
    + +
    +
    /* Get interface attributes */
    +
    status = uct_iface_query(iface_p->iface, &iface_p->iface_attr);
    +
    CHKERR_JUMP(UCS_OK != status, "query iface", error_iface);
    +
    +
    /* Check if current device and transport support required active messages */
    +
    if ((func_am_type == FUNC_AM_SHORT) &&
    +
    (iface_p->iface_attr.cap.flags & UCT_IFACE_FLAG_AM_SHORT)) {
    +
    if (test_mem_type != UCS_MEMORY_TYPE_CUDA) {
    +
    return UCS_OK;
    +
    } else {
    +
    fprintf(stderr, "AM short protocol doesn't support CUDA memory");
    +
    }
    +
    }
    +
    +
    if ((func_am_type == FUNC_AM_BCOPY) &&
    +
    (iface_p->iface_attr.cap.flags & UCT_IFACE_FLAG_AM_BCOPY)) {
    +
    return UCS_OK;
    +
    }
    +
    +
    if ((func_am_type == FUNC_AM_ZCOPY) &&
    +
    (iface_p->iface_attr.cap.flags & UCT_IFACE_FLAG_AM_ZCOPY)) {
    +
    return UCS_OK;
    +
    }
    +
    +
    error_iface:
    +
    uct_iface_close(iface_p->iface);
    +
    iface_p->iface = NULL;
    +
    error_ret:
    + +
    }
    +
    +
    /* Device and transport to be used are determined by minimum latency */
    +
    static ucs_status_t dev_tl_lookup(const cmd_args_t *cmd_args,
    +
    iface_info_t *iface_p)
    +
    {
    +
    uct_tl_resource_desc_t *tl_resources = NULL; /* Communication resource descriptor */
    +
    unsigned num_tl_resources = 0; /* Number of transport resources resource objects created */
    +
    uct_component_h *components;
    +
    unsigned num_components;
    +
    unsigned cmpt_index;
    +
    uct_component_attr_t component_attr;
    +
    unsigned md_index;
    +
    unsigned tl_index;
    +
    uct_md_config_t *md_config;
    +
    ucs_status_t status;
    +
    +
    status = uct_query_components(&components, &num_components);
    +
    CHKERR_JUMP(UCS_OK != status, "query for components", error_ret);
    +
    +
    for (cmpt_index = 0; cmpt_index < num_components; ++cmpt_index) {
    +
    + +
    status = uct_component_query(components[cmpt_index], &component_attr);
    +
    CHKERR_JUMP(UCS_OK != status, "query component attributes",
    +
    release_component_list);
    +
    + +
    component_attr.md_resources = alloca(sizeof(*component_attr.md_resources) *
    +
    component_attr.md_resource_count);
    +
    status = uct_component_query(components[cmpt_index], &component_attr);
    +
    CHKERR_JUMP(UCS_OK != status, "query for memory domain resources",
    +
    release_component_list);
    +
    +
    iface_p->iface = NULL;
    +
    +
    /* Iterate through memory domain resources */
    +
    for (md_index = 0; md_index < component_attr.md_resource_count; ++md_index) {
    +
    status = uct_md_config_read(components[cmpt_index], NULL, NULL,
    +
    &md_config);
    +
    CHKERR_JUMP(UCS_OK != status, "read MD config",
    +
    release_component_list);
    +
    +
    status = uct_md_open(components[cmpt_index],
    +
    component_attr.md_resources[md_index].md_name,
    +
    md_config, &iface_p->md);
    +
    uct_config_release(md_config);
    +
    CHKERR_JUMP(UCS_OK != status, "open memory domains",
    +
    release_component_list);
    +
    +
    status = uct_md_query(iface_p->md, &iface_p->md_attr);
    +
    CHKERR_JUMP(UCS_OK != status, "query iface",
    +
    close_md);
    +
    +
    status = uct_md_query_tl_resources(iface_p->md, &tl_resources,
    +
    &num_tl_resources);
    +
    CHKERR_JUMP(UCS_OK != status, "query transport resources", close_md);
    +
    +
    /* Go through each available transport and find the proper name */
    +
    for (tl_index = 0; tl_index < num_tl_resources; ++tl_index) {
    +
    if (!strcmp(cmd_args->dev_name, tl_resources[tl_index].dev_name) &&
    +
    !strcmp(cmd_args->tl_name, tl_resources[tl_index].tl_name)) {
    +
    if ((cmd_args->func_am_type == FUNC_AM_ZCOPY) &&
    +
    !(iface_p->md_attr.cap.reg_mem_types &
    +
    UCS_BIT(test_mem_type))) {
    +
    fprintf(stderr, "Unsupported memory type %s by "
    +
    UCT_TL_RESOURCE_DESC_FMT" on %s MD\n",
    +
    ucs_memory_type_names[test_mem_type],
    +
    UCT_TL_RESOURCE_DESC_ARG(&tl_resources[tl_index]),
    +
    component_attr.md_resources[md_index].md_name);
    + +
    break;
    +
    }
    +
    +
    status = init_iface(tl_resources[tl_index].dev_name,
    +
    tl_resources[tl_index].tl_name,
    +
    cmd_args->func_am_type, iface_p);
    +
    if (status != UCS_OK) {
    +
    break;
    +
    }
    +
    +
    fprintf(stdout, "Using "UCT_TL_RESOURCE_DESC_FMT"\n",
    +
    UCT_TL_RESOURCE_DESC_ARG(&tl_resources[tl_index]));
    +
    goto release_tl_resources;
    +
    }
    +
    }
    +
    +
    release_tl_resources:
    + +
    if ((status == UCS_OK) &&
    +
    (tl_index < num_tl_resources)) {
    +
    goto release_component_list;
    +
    }
    +
    +
    tl_resources = NULL;
    +
    num_tl_resources = 0;
    +
    uct_md_close(iface_p->md);
    +
    }
    +
    }
    +
    +
    fprintf(stderr, "No supported (dev/tl) found (%s/%s)\n",
    +
    cmd_args->dev_name, cmd_args->tl_name);
    + +
    +
    release_component_list:
    + +
    error_ret:
    +
    return status;
    +
    close_md:
    +
    uct_md_close(iface_p->md);
    +
    goto release_component_list;
    +
    }
    +
    +
    int print_err_usage()
    +
    {
    +
    const char func_template[] = " -%c Select \"%s\" function to send the message%s\n";
    +
    +
    fprintf(stderr, "Usage: uct_hello_world [parameters]\n");
    +
    fprintf(stderr, "UCT hello world client/server example utility\n");
    +
    fprintf(stderr, "\nParameters are:\n");
    +
    fprintf(stderr, func_template, 'i', func_am_t_str(FUNC_AM_SHORT), " (default)");
    +
    fprintf(stderr, func_template, 'b', func_am_t_str(FUNC_AM_BCOPY), "");
    +
    fprintf(stderr, func_template, 'z', func_am_t_str(FUNC_AM_ZCOPY), "");
    +
    fprintf(stderr, " -d Select device name\n");
    +
    fprintf(stderr, " -t Select transport layer\n");
    +
    fprintf(stderr, " -n <name> Set node name or IP address "
    +
    "of the server (required for client and should be ignored "
    +
    "for server)\n");
    +
    print_common_help();
    +
    fprintf(stderr, "\nExample:\n");
    +
    fprintf(stderr, " Server: uct_hello_world -d eth0 -t tcp\n");
    +
    fprintf(stderr, " Client: uct_hello_world -d eth0 -t tcp -n localhost\n");
    +
    + +
    }
    +
    +
    int parse_cmd(int argc, char * const argv[], cmd_args_t *args)
    +
    {
    +
    int c = 0, idx = 0;
    +
    +
    assert(args);
    +
    memset(args, 0, sizeof(*args));
    +
    +
    /* Defaults */
    +
    args->server_port = 13337;
    +
    args->ai_family = AF_INET;
    +
    args->func_am_type = FUNC_AM_SHORT;
    +
    args->test_strlen = 16;
    +
    +
    while ((c = getopt(argc, argv, "6ibzd:t:n:p:s:m:h")) != -1) {
    +
    switch (c) {
    +
    case 'i':
    +
    args->func_am_type = FUNC_AM_SHORT;
    +
    break;
    +
    case 'b':
    +
    args->func_am_type = FUNC_AM_BCOPY;
    +
    break;
    +
    case 'z':
    +
    args->func_am_type = FUNC_AM_ZCOPY;
    +
    break;
    +
    case 'd':
    +
    args->dev_name = optarg;
    +
    break;
    +
    case 't':
    +
    args->tl_name = optarg;
    +
    break;
    +
    case 'n':
    +
    args->server_name = optarg;
    +
    break;
    +
    case '6':
    +
    args->ai_family = AF_INET6;
    +
    break;
    +
    case 'p':
    +
    args->server_port = atoi(optarg);
    +
    if (args->server_port <= 0) {
    +
    fprintf(stderr, "Wrong server port number %d\n",
    +
    args->server_port);
    + +
    }
    +
    break;
    +
    case 's':
    +
    args->test_strlen = atol(optarg);
    +
    if (args->test_strlen < 0) {
    +
    fprintf(stderr, "Wrong string size %ld\n", args->test_strlen);
    + +
    }
    +
    break;
    +
    case 'm':
    +
    test_mem_type = parse_mem_type(optarg);
    +
    if (test_mem_type == UCS_MEMORY_TYPE_LAST) {
    + +
    }
    +
    break;
    +
    case 'h':
    +
    default:
    +
    return print_err_usage();
    +
    }
    +
    }
    +
    fprintf(stdout, "INFO: UCT_HELLO_WORLD AM function = %s server = %s port = %d\n",
    +
    func_am_t_str(args->func_am_type), args->server_name,
    +
    args->server_port);
    +
    +
    for (idx = optind; idx < argc; idx++) {
    +
    fprintf(stderr, "WARNING: Non-option argument %s\n", argv[idx]);
    +
    }
    +
    +
    if (args->dev_name == NULL) {
    +
    fprintf(stderr, "WARNING: device is not set\n");
    +
    return print_err_usage();
    +
    }
    +
    +
    if (args->tl_name == NULL) {
    +
    fprintf(stderr, "WARNING: transport layer is not set\n");
    +
    return print_err_usage();
    +
    }
    +
    +
    return UCS_OK;
    +
    }
    +
    +
    /* The caller is responsible to free *rbuf */
    +
    int sendrecv(int sock, const void *sbuf, size_t slen, void **rbuf)
    +
    {
    +
    int ret = 0;
    +
    size_t rlen = 0;
    +
    *rbuf = NULL;
    +
    +
    ret = send(sock, &slen, sizeof(slen), 0);
    +
    if ((ret < 0) || (ret != sizeof(slen))) {
    +
    fprintf(stderr, "failed to send buffer length\n");
    +
    return -1;
    +
    }
    +
    +
    ret = send(sock, sbuf, slen, 0);
    +
    if (ret != (int)slen) {
    +
    fprintf(stderr, "failed to send buffer, return value %d\n", ret);
    +
    return -1;
    +
    }
    +
    +
    ret = recv(sock, &rlen, sizeof(rlen), MSG_WAITALL);
    +
    if ((ret != sizeof(rlen)) || (rlen > (SIZE_MAX / 2))) {
    +
    fprintf(stderr,
    +
    "failed to receive device address length, return value %d\n",
    +
    ret);
    +
    return -1;
    +
    }
    +
    +
    *rbuf = calloc(1, rlen);
    +
    if (!*rbuf) {
    +
    fprintf(stderr, "failed to allocate receive buffer\n");
    +
    return -1;
    +
    }
    +
    +
    ret = recv(sock, *rbuf, rlen, MSG_WAITALL);
    +
    if (ret != (int)rlen) {
    +
    fprintf(stderr, "failed to receive device address, return value %d\n",
    +
    ret);
    +
    return -1;
    +
    }
    +
    +
    return 0;
    +
    }
    +
    +
    static void progress_worker(void *arg)
    +
    {
    + +
    }
    +
    +
    int main(int argc, char **argv)
    +
    {
    +
    uct_device_addr_t *peer_dev = NULL;
    +
    uct_iface_addr_t *peer_iface = NULL;
    +
    uct_ep_addr_t *own_ep = NULL;
    +
    uct_ep_addr_t *peer_ep = NULL;
    +
    uint8_t id = 0;
    +
    int oob_sock = -1; /* OOB connection socket */
    +
    ucs_status_t status = UCS_OK; /* status codes for UCS */
    + +
    uct_iface_addr_t *own_iface;
    +
    uct_ep_h ep; /* Remote endpoint */
    +
    ucs_async_context_t *async; /* Async event context manages
    +
    times and fd notifications */
    +
    cmd_args_t cmd_args;
    +
    iface_info_t if_info;
    +
    uct_ep_params_t ep_params;
    +
    int res;
    +
    +
    /* Parse the command line */
    +
    if (parse_cmd(argc, argv, &cmd_args)) {
    + +
    goto out;
    +
    }
    +
    +
    /* Initialize context
    +
    * It is better to use different contexts for different workers */
    +
    status = ucs_async_context_create(UCS_ASYNC_MODE_THREAD_SPINLOCK, &async);
    +
    CHKERR_JUMP(UCS_OK != status, "init async context", out);
    +
    +
    /* Create a worker object */
    +
    status = uct_worker_create(async, UCS_THREAD_MODE_SINGLE, &if_info.worker);
    +
    CHKERR_JUMP(UCS_OK != status, "create worker", out_cleanup_async);
    +
    +
    /* Search for the desired transport */
    +
    status = dev_tl_lookup(&cmd_args, &if_info);
    +
    CHKERR_JUMP(UCS_OK != status, "find supported device and transport",
    +
    out_destroy_worker);
    +
    +
    /* Set active message handler */
    +
    status = uct_iface_set_am_handler(if_info.iface, id, hello_world,
    +
    &cmd_args.func_am_type, 0);
    +
    CHKERR_JUMP(UCS_OK != status, "set callback", out_destroy_iface);
    +
    +
    own_dev = (uct_device_addr_t*)calloc(1, if_info.iface_attr.device_addr_len);
    +
    CHKERR_JUMP(NULL == own_dev, "allocate memory for dev addr",
    +
    out_destroy_iface);
    +
    +
    own_iface = (uct_iface_addr_t*)calloc(1, if_info.iface_attr.iface_addr_len);
    +
    CHKERR_JUMP(NULL == own_iface, "allocate memory for if addr",
    +
    out_free_dev_addrs);
    +
    +
    oob_sock = connect_common(cmd_args.server_name, cmd_args.server_port,
    +
    cmd_args.ai_family);
    +
    +
    CHKERR_ACTION(oob_sock < 0, "OOB connect",
    +
    status = UCS_ERR_IO_ERROR; goto out_close_oob_sock);
    +
    +
    /* Get device address */
    +
    if (if_info.iface_attr.device_addr_len > 0) {
    +
    status = uct_iface_get_device_address(if_info.iface, own_dev);
    +
    CHKERR_JUMP(UCS_OK != status, "get device address", out_free_if_addrs);
    +
    +
    res = sendrecv(oob_sock, own_dev, if_info.iface_attr.device_addr_len,
    +
    (void**)&peer_dev);
    +
    CHKERR_ACTION(0 != res, "device exchange", status = UCS_ERR_NO_MESSAGE;
    +
    goto out_close_oob_sock);
    +
    }
    +
    +
    /* Get interface address */
    +
    if (if_info.iface_attr.iface_addr_len > 0) {
    +
    status = uct_iface_get_address(if_info.iface, own_iface);
    +
    CHKERR_JUMP(UCS_OK != status, "get interface address",
    +
    out_close_oob_sock);
    +
    +
    status = (ucs_status_t)sendrecv(oob_sock, own_iface, if_info.iface_attr.iface_addr_len,
    +
    (void **)&peer_iface);
    +
    CHKERR_JUMP(0 != status, "ifaces exchange", out_close_oob_sock);
    +
    }
    +
    +
    status = (ucs_status_t)uct_iface_is_reachable(if_info.iface, peer_dev,
    +
    peer_iface);
    +
    CHKERR_JUMP(0 == status, "reach the peer", out_close_oob_sock);
    +
    + +
    ep_params.iface = if_info.iface;
    +
    if (if_info.iface_attr.cap.flags & UCT_IFACE_FLAG_CONNECT_TO_EP) {
    +
    own_ep = (uct_ep_addr_t*)calloc(1, if_info.iface_attr.ep_addr_len);
    +
    CHKERR_ACTION(NULL == own_ep, "allocate memory for ep addrs",
    +
    status = UCS_ERR_NO_MEMORY; goto out_close_oob_sock);
    +
    +
    /* Create new endpoint */
    +
    status = uct_ep_create(&ep_params, &ep);
    +
    CHKERR_JUMP(UCS_OK != status, "create endpoint", out_free_ep_addrs);
    +
    +
    /* Get endpoint address */
    +
    status = uct_ep_get_address(ep, own_ep);
    +
    CHKERR_JUMP(UCS_OK != status, "get endpoint address", out_free_ep);
    +
    +
    status = (ucs_status_t)sendrecv(oob_sock, own_ep, if_info.iface_attr.ep_addr_len,
    +
    (void **)&peer_ep);
    +
    CHKERR_JUMP(0 != status, "EPs exchange", out_free_ep);
    +
    +
    /* Connect endpoint to a remote endpoint */
    +
    status = uct_ep_connect_to_ep(ep, peer_dev, peer_ep);
    +
    if (barrier(oob_sock, progress_worker, if_info.worker)) {
    +
    status = UCS_ERR_IO_ERROR;
    +
    goto out_free_ep;
    +
    }
    +
    } else if (if_info.iface_attr.cap.flags & UCT_IFACE_FLAG_CONNECT_TO_IFACE) {
    +
    /* Create an endpoint which is connected to a remote interface */
    + + +
    ep_params.dev_addr = peer_dev;
    +
    ep_params.iface_addr = peer_iface;
    +
    status = uct_ep_create(&ep_params, &ep);
    +
    CHKERR_JUMP(UCS_OK != status, "create endpoint", out_free_ep_addrs);
    +
    } else {
    + +
    goto out_free_ep_addrs;
    +
    }
    +
    +
    if (cmd_args.test_strlen > func_am_max_size(cmd_args.func_am_type, &if_info.iface_attr)) {
    + +
    fprintf(stderr, "Test string is too long: %ld, max supported: %lu\n",
    +
    cmd_args.test_strlen,
    +
    func_am_max_size(cmd_args.func_am_type, &if_info.iface_attr));
    +
    goto out_free_ep;
    +
    }
    +
    +
    if (cmd_args.server_name) {
    +
    char *str = (char *)mem_type_malloc(cmd_args.test_strlen);
    +
    CHKERR_ACTION(str == NULL, "allocate memory",
    +
    status = UCS_ERR_NO_MEMORY; goto out_free_ep);
    +
    res = generate_test_string(str, cmd_args.test_strlen);
    +
    CHKERR_ACTION(res < 0, "generate test string",
    +
    status = UCS_ERR_NO_MEMORY; goto out_free_ep);
    +
    +
    /* Send active message to remote endpoint */
    +
    if (cmd_args.func_am_type == FUNC_AM_SHORT) {
    +
    status = do_am_short(&if_info, ep, id, &cmd_args, str);
    +
    } else if (cmd_args.func_am_type == FUNC_AM_BCOPY) {
    +
    status = do_am_bcopy(&if_info, ep, id, &cmd_args, str);
    +
    } else if (cmd_args.func_am_type == FUNC_AM_ZCOPY) {
    +
    status = do_am_zcopy(&if_info, ep, id, &cmd_args, str);
    +
    }
    +
    +
    mem_type_free(str);
    +
    CHKERR_JUMP(UCS_OK != status, "send active msg", out_free_ep);
    +
    } else {
    +
    recv_desc_t *rdesc;
    +
    +
    while (desc_holder == NULL) {
    +
    /* Explicitly progress any outstanding active message requests */
    +
    uct_worker_progress(if_info.worker);
    +
    }
    +
    +
    rdesc = desc_holder;
    +
    print_strings("main", func_am_t_str(cmd_args.func_am_type),
    +
    (char *)(rdesc + 1), cmd_args.test_strlen);
    +
    +
    if (rdesc->is_uct_desc) {
    +
    /* Release descriptor because callback returns UCS_INPROGRESS */
    + +
    } else {
    +
    free(rdesc);
    +
    }
    +
    }
    +
    +
    if (barrier(oob_sock, progress_worker, if_info.worker)) {
    +
    status = UCS_ERR_IO_ERROR;
    +
    }
    +
    +
    out_free_ep:
    + +
    out_free_ep_addrs:
    +
    free(own_ep);
    +
    free(peer_ep);
    +
    out_close_oob_sock:
    +
    close(oob_sock);
    +
    out_free_if_addrs:
    +
    free(own_iface);
    +
    free(peer_iface);
    +
    out_free_dev_addrs:
    +
    free(own_dev);
    +
    free(peer_dev);
    +
    out_destroy_iface:
    +
    uct_iface_close(if_info.iface);
    +
    uct_md_close(if_info.md);
    +
    out_destroy_worker:
    +
    uct_worker_destroy(if_info.worker);
    +
    out_cleanup_async:
    + +
    out:
    +
    return (status == UCS_ERR_UNSUPPORTED) ? UCS_OK : status;
    +
    }
    +
    void ucs_async_context_destroy(ucs_async_context_t *async)
    Destroy the asynchronous execution context.
    +
    ucs_status_t
    Status codes.
    Definition status.h:45
    +
    ucs_status_t ucs_async_context_create(ucs_async_mode_t mode, ucs_async_context_t **async_p)
    Create an asynchronous execution context.
    +
    @ UCS_THREAD_MODE_SINGLE
    Definition thread_mode.h:20
    +
    @ UCS_MEMORY_TYPE_LAST
    Definition memory_type.h:48
    +
    @ UCS_MEMORY_TYPE_CUDA
    Definition memory_type.h:40
    +
    @ UCS_OK
    Definition status.h:47
    +
    @ UCS_ERR_NO_MESSAGE
    Definition status.h:53
    +
    @ UCS_ERR_UNSUPPORTED
    Definition status.h:74
    +
    @ UCS_INPROGRESS
    Definition status.h:50
    +
    @ UCS_ERR_NO_RESOURCE
    Definition status.h:54
    +
    @ UCS_ERR_NO_MEMORY
    Definition status.h:56
    +
    @ UCS_ERR_IO_ERROR
    Definition status.h:55
    +
    @ UCS_ERR_INVALID_PARAM
    Definition status.h:57
    +
    ucs_status_t uct_ep_am_short(uct_ep_h ep, uint8_t id, uint64_t header, const void *payload, unsigned length)
    Definition uct.h:2986
    +
    ucs_status_t uct_iface_set_am_handler(uct_iface_h iface, uint8_t id, uct_am_callback_t cb, void *arg, uint32_t flags)
    Set active message handler for the interface.
    +
    void uct_iface_release_desc(void *desc)
    Release AM descriptor.
    Definition uct.h:2851
    +
    ssize_t uct_ep_am_bcopy(uct_ep_h ep, uint8_t id, uct_pack_callback_t pack_cb, void *arg, unsigned flags)
    Definition uct.h:3034
    +
    ucs_status_t uct_ep_am_zcopy(uct_ep_h ep, uint8_t id, const void *header, unsigned header_length, const uct_iov_t *iov, size_t iovcnt, unsigned flags, uct_completion_t *comp)
    Send active message while avoiding local memory copy.
    Definition uct.h:3079
    +
    void uct_worker_destroy(uct_worker_h worker)
    Destroy a worker object.
    +
    unsigned uct_worker_progress(uct_worker_h worker)
    Explicit progress for UCT worker.
    Definition uct.h:2785
    +
    ucs_status_t uct_worker_create(ucs_async_context_t *async, ucs_thread_mode_t thread_mode, uct_worker_h *worker_p)
    Create a worker object.
    +
    ucs_status_t uct_md_config_read(uct_component_h component, const char *env_prefix, const char *filename, uct_md_config_t **config_p)
    Read the configuration for a memory domain.
    +
    ucs_status_t uct_md_mem_reg(uct_md_h md, void *address, size_t length, unsigned flags, uct_mem_h *memh_p)
    Register memory for zero-copy sends and remote access.
    +
    ucs_status_t uct_md_query(uct_md_h md, uct_md_attr_t *md_attr)
    Query for memory domain attributes.
    +
    ucs_status_t uct_md_mem_dereg(uct_md_h md, uct_mem_h memh)
    Undo the operation of uct_md_mem_reg().
    +
    @ UCT_MD_MEM_ACCESS_RMA
    Definition uct.h:850
    +
    @ UCT_MD_FLAG_NEED_MEMH
    Definition uct.h:718
    +
    Memory domain attributes.
    Definition uct.h:1530
    +
    #define UCT_IFACE_FLAG_AM_BCOPY
    Definition uct.h:371
    +
    #define UCT_IFACE_FLAG_AM_ZCOPY
    Definition uct.h:372
    +
    #define UCT_IFACE_FLAG_CONNECT_TO_EP
    Definition uct.h:406
    +
    #define UCT_IFACE_FLAG_AM_SHORT
    Definition uct.h:370
    +
    #define UCT_IFACE_FLAG_CONNECT_TO_IFACE
    Definition uct.h:405
    +
    uct_iface_h iface
    Definition uct.h:1303
    +
    size_t stride
    Definition uct_def.h:151
    +
    const uct_device_addr_t * dev_addr
    Definition uct.h:1315
    +
    void * buffer
    Definition uct_def.h:148
    +
    char md_name[UCT_MD_NAME_MAX]
    Definition uct.h:219
    +
    unsigned md_resource_count
    Definition uct.h:258
    +
    struct uct_iface_attr::@7 cap
    +
    ucs_stats_node_t * stats_root
    Definition uct.h:1222
    +
    ucs_cpu_set_t cpu_mask
    Definition uct.h:1186
    +
    uct_md_resource_desc_t * md_resources
    Definition uct.h:273
    +
    uint64_t open_mode
    Definition uct.h:1188
    +
    uct_mem_h memh
    Definition uct_def.h:150
    +
    uint64_t field_mask
    Definition uct.h:1297
    +
    uint64_t field_mask
    Definition uct.h:1184
    +
    ucs_status_t status
    Definition uct.h:1727
    +
    union uct_iface_params::@16 mode
    +
    size_t length
    Definition uct_def.h:149
    +
    uint64_t field_mask
    Definition uct.h:252
    +
    unsigned count
    Definition uct_def.h:153
    +
    const uct_iface_addr_t * iface_addr
    Definition uct.h:1322
    +
    size_t rx_headroom
    Definition uct.h:1224
    +
    ucs_status_t uct_iface_open(uct_md_h md, uct_worker_h worker, const uct_iface_params_t *params, const uct_iface_config_t *config, uct_iface_h *iface_p)
    Open a communication interface.
    +
    ucs_status_t uct_ep_create(const uct_ep_params_t *params, uct_ep_h *ep_p)
    Create new endpoint.
    +
    void uct_release_tl_resource_list(uct_tl_resource_desc_t *resources)
    Release the list of resources returned from uct_md_query_tl_resources.
    +
    ucs_status_t uct_ep_get_address(uct_ep_h ep, uct_ep_addr_t *addr)
    Get endpoint address.
    +
    void * uct_mem_h
    Definition uct_def.h:84
    +
    struct uct_worker * uct_worker_h
    Definition uct_def.h:95
    +
    ucs_status_t uct_ep_connect_to_ep(uct_ep_h ep, const uct_device_addr_t *dev_addr, const uct_ep_addr_t *ep_addr)
    Connect endpoint to a remote endpoint.
    +
    ucs_status_t uct_component_query(uct_component_h component, uct_component_attr_t *component_attr)
    Get component attributes.
    +
    ucs_status_t uct_md_open(uct_component_h component, const char *md_name, const uct_md_config_t *config, uct_md_h *md_p)
    Open a memory domain.
    +
    ucs_status_t uct_iface_get_device_address(uct_iface_h iface, uct_device_addr_t *addr)
    Get address of the device the interface is using.
    +
    void uct_iface_close(uct_iface_h iface)
    Close and destroy an interface.
    +
    ucs_status_t uct_iface_get_address(uct_iface_h iface, uct_iface_addr_t *addr)
    Get interface address.
    +
    struct uct_ep_addr uct_ep_addr_t
    Definition uct_def.h:100
    +
    struct uct_md * uct_md_h
    Memory domain handler.
    Definition uct_def.h:86
    +
    void uct_config_release(void *config)
    Release configuration memory returned from uct_md_iface_config_read(), uct_md_config_read(),...
    +
    struct uct_iface_addr uct_iface_addr_t
    Definition uct_def.h:99
    +
    struct uct_component * uct_component_h
    Definition uct_def.h:78
    +
    struct uct_iface_config uct_iface_config_t
    Definition uct_def.h:80
    +
    void uct_iface_progress_enable(uct_iface_h iface, unsigned flags)
    Enable synchronous progress for the interface.
    Definition uct.h:3567
    +
    struct uct_iface * uct_iface_h
    Definition uct_def.h:79
    +
    struct uct_md_config uct_md_config_t
    Definition uct_def.h:81
    +
    ucs_status_t uct_query_components(uct_component_h **components_p, unsigned *num_components_p)
    Query for list of components.
    +
    ucs_status_t uct_iface_query(uct_iface_h iface, uct_iface_attr_t *iface_attr)
    Get interface attributes.
    +
    void uct_ep_destroy(uct_ep_h ep)
    Destroy an endpoint.
    +
    struct uct_device_addr uct_device_addr_t
    Definition uct_def.h:98
    +
    void uct_md_close(uct_md_h md)
    Close a memory domain.
    +
    ucs_status_t uct_md_iface_config_read(uct_md_h md, const char *tl_name, const char *env_prefix, const char *filename, uct_iface_config_t **config_p)
    Read transport-specific interface configuration.
    +
    void uct_release_component_list(uct_component_h *components)
    Release the list of components returned from uct_query_components.
    +
    int uct_iface_is_reachable(const uct_iface_h iface, const uct_device_addr_t *dev_addr, const uct_iface_addr_t *iface_addr)
    Check if remote iface address is reachable.
    +
    ucs_status_t uct_md_query_tl_resources(uct_md_h md, uct_tl_resource_desc_t **resources_p, unsigned *num_resources_p)
    Query for transport resources.
    +
    struct uct_ep * uct_ep_h
    Definition uct_def.h:83
    +
    @ UCT_COMPONENT_ATTR_FIELD_MD_RESOURCE_COUNT
    Definition uct.h:232
    +
    @ UCT_COMPONENT_ATTR_FIELD_MD_RESOURCES
    Definition uct.h:233
    +
    @ UCT_CB_PARAM_FLAG_DESC
    Definition uct_def.h:69
    +
    @ UCT_PROGRESS_RECV
    Definition uct.h:546
    +
    @ UCT_PROGRESS_SEND
    Definition uct.h:545
    +
    @ UCT_IFACE_PARAM_FIELD_DEVICE
    Definition uct.h:634
    +
    @ UCT_IFACE_PARAM_FIELD_OPEN_MODE
    Definition uct.h:630
    +
    @ UCT_IFACE_PARAM_FIELD_STATS_ROOT
    Definition uct.h:641
    +
    @ UCT_IFACE_PARAM_FIELD_CPU_MASK
    Definition uct.h:627
    +
    @ UCT_IFACE_PARAM_FIELD_RX_HEADROOM
    Definition uct.h:644
    +
    @ UCT_IFACE_OPEN_MODE_DEVICE
    Definition uct.h:606
    +
    @ UCT_EP_PARAM_FIELD_IFACE
    Definition uct.h:924
    +
    @ UCT_EP_PARAM_FIELD_DEV_ADDR
    Definition uct.h:930
    +
    @ UCT_EP_PARAM_FIELD_IFACE_ADDR
    Definition uct.h:933
    +
    Completion handle.
    Definition uct.h:1724
    +
    UCT component attributes.
    Definition uct.h:245
    +
    Parameters for creating a UCT endpoint by uct_ep_create.
    Definition uct.h:1291
    +
    Interface attributes: capabilities and limitations.
    Definition uct.h:1044
    +
    Parameters used for interface creation.
    Definition uct.h:1180
    +
    Structure for scatter-gather I/O.
    Definition uct_def.h:147
    +
    Communication resource descriptor.
    Definition uct.h:328
    +
    +
    + + + + diff --git a/api/v1.17/ucx-v1.17.pdf b/api/v1.17/ucx-v1.17.pdf new file mode 100644 index 00000000000..374e28b4dd0 Binary files /dev/null and b/api/v1.17/ucx-v1.17.pdf differ diff --git a/api/v1.17/ucx.pdf b/api/v1.17/ucx.pdf new file mode 120000 index 00000000000..dce75b26453 --- /dev/null +++ b/api/v1.17/ucx.pdf @@ -0,0 +1 @@ +ucx-v1.17.pdf \ No newline at end of file