@a4:
@a5:
+<!-- ##### MACRO CCRITICAL6 ##### -->
+<para>
+
+</para>
+
+@c:
+@f:
+@a1:
+@a2:
+@a3:
+@a4:
+@a5:
+@a6:
+
<!-- ##### MACRO CDEBUG0 ##### -->
<para>
@a4:
@a5:
+<!-- ##### MACRO CDEBUG6 ##### -->
+<para>
+
+</para>
+
+@c:
+@f:
+@a1:
+@a2:
+@a3:
+@a4:
+@a5:
+@a6:
+
<!-- ##### MACRO CERROR0 ##### -->
<para>
@a4:
@a5:
+<!-- ##### MACRO CERROR6 ##### -->
+<para>
+
+</para>
+
+@c:
+@f:
+@a1:
+@a2:
+@a3:
+@a4:
+@a5:
+@a6:
+
<!-- ##### MACRO CINFO0 ##### -->
<para>
@a4:
@a5:
+<!-- ##### MACRO CINFO6 ##### -->
+<para>
+
+</para>
+
+@c:
+@f:
+@a1:
+@a2:
+@a3:
+@a4:
+@a5:
+@a6:
+
<!-- ##### MACRO CLOG0 ##### -->
<para>
@a4:
@a5:
+<!-- ##### MACRO CRITICAL6 ##### -->
+<para>
+
+</para>
+
+@f:
+@a1:
+@a2:
+@a3:
+@a4:
+@a5:
+@a6:
+
+<!-- ##### MACRO CVERB6 ##### -->
+<para>
+
+</para>
+
+@c:
+@f:
+@a1:
+@a2:
+@a3:
+@a4:
+@a5:
+@a6:
+
+<!-- ##### MACRO CWARN6 ##### -->
+<para>
+
+</para>
+
+@c:
+@f:
+@a1:
+@a2:
+@a3:
+@a4:
+@a5:
+@a6:
+
<!-- ##### MACRO CWARNING6 ##### -->
<para>
@childToParent:
@Returns:
+<!-- ##### MACRO DEBUG6 ##### -->
+<para>
+
+</para>
+
+@f:
+@a1:
+@a2:
+@a3:
+@a4:
+@a5:
+@a6:
+
<!-- ##### FUNCTION DROP_SOCKET ##### -->
<para>
</para>
+<!-- ##### MACRO ERROR6 ##### -->
+<para>
+
+</para>
+
+@f:
+@a1:
+@a2:
+@a3:
+@a4:
+@a5:
+@a6:
+
<!-- ##### FUNCTION EstablishAnEar ##### -->
<para>
@HOST_FORMAT:
@NETWORK_FORMAT:
+<!-- ##### MACRO GRAS_DEFINE_TYPE ##### -->
+<para>
+
+</para>
+
+@name:
+@def:
+
+<!-- ##### MACRO GRAS_LOG_DEFAULT_CATEGORY ##### -->
+<para>
+
+</para>
+
+@cname:
+
+<!-- ##### MACRO GRAS_LOG_EXTERNAL_CATEGORY ##### -->
+<para>
+
+</para>
+
+@cname:
+
+<!-- ##### MACRO GRAS_LOG_ISENABLED ##### -->
+<para>
+
+</para>
+
+@catName:
+@priority:
+
<!-- ##### MACRO GRAS_LOG_MAYDAY ##### -->
<para>
</para>
+<!-- ##### MACRO GRAS_LOG_NEW_CATEGORY ##### -->
+<para>
+
+</para>
+
+@catName:
+
+<!-- ##### MACRO GRAS_LOG_NEW_DEFAULT_CATEGORY ##### -->
+<para>
+
+</para>
+
+@cname:
+
+<!-- ##### MACRO GRAS_LOG_NEW_DEFAULT_SUBCATEGORY ##### -->
+<para>
+
+</para>
+
+@cname:
+@parent:
+
+<!-- ##### MACRO GRAS_LOG_NEW_SUBCATEGORY ##### -->
+<para>
+
+</para>
+
+@catName:
+@parent:
+
<!-- ##### MACRO GRAS_LOG_ROOT_CAT ##### -->
<para>
</para>
+<!-- ##### MACRO GRAS_LOG_STATIC_THRESHOLD ##### -->
+<para>
+
+</para>
+
+
<!-- ##### MACRO HAVE_DLFCN_H ##### -->
<para>
@format:
@Returns:
+<!-- ##### MACRO INFO6 ##### -->
+<para>
+
+</para>
+
+@f:
+@a1:
+@a2:
+@a3:
+@a4:
+@a5:
+@a6:
+
<!-- ##### TYPEDEF IPAddress ##### -->
<para>
@sd:
@Returns:
+<!-- ##### MACRO VERB6 ##### -->
+<para>
+
+</para>
+
+@f:
+@a1:
+@a2:
+@a3:
+@a4:
+@a5:
+@a6:
+
<!-- ##### MACRO VERSION ##### -->
<para>
</para>
+<!-- ##### MACRO WARN6 ##### -->
+<para>
+
+</para>
+
+@f:
+@a1:
+@a2:
+@a3:
+@a4:
+@a5:
+@a6:
+
<!-- ##### MACRO WARNING6 ##### -->
<para>
@ud:
-<!-- ##### FUNCTION gras_datadesc_cmp ##### -->
+<!-- ##### FUNCTION gras_arch_selfid ##### -->
<para>
</para>
-@d1:
-@d2:
@Returns:
-@dd1:
-@c1:
-@dd2:
-@c2:
-<!-- ##### FUNCTION gras_datadesc_copy_data ##### -->
+<!-- ##### FUNCTION gras_cb_register ##### -->
<para>
</para>
-@dd:
-@c:
-@data:
+@msgtype:
+@cb:
+@Returns:
+@message:
+@TTL:
-<!-- ##### MACRO gras_datadesc_declare_array ##### -->
+<!-- ##### USER_FUNCTION gras_cb_t ##### -->
<para>
</para>
-@name:
-@elm_type:
-@size:
-@code:
+@expeditor:
+@payload:
+@Returns:
+@payload_type:
+@payload_data:
+@msg:
-<!-- ##### FUNCTION gras_datadesc_declare_array_cb ##### -->
+<!-- ##### FUNCTION gras_cb_unregister ##### -->
<para>
</para>
-@name:
-@element_type:
-@fixed_size:
-@dynamic_size:
-@post:
-@code:
-@Returns:
+@msgtype:
+@cb:
-<!-- ##### FUNCTION gras_datadesc_declare_ref_cb ##### -->
+<!-- ##### FUNCTION gras_cbps_block_begin ##### -->
<para>
</para>
-@name:
-@referenced_type:
-@discriminant:
-@post:
-@code:
-@Returns:
+@ps:
-<!-- ##### MACRO gras_datadesc_declare_ref_disc ##### -->
+<!-- ##### FUNCTION gras_cbps_block_end ##### -->
<para>
</para>
-@name:
-@discriminant:
-@code:
+@ps:
-<!-- ##### MACRO gras_datadesc_declare_struct_add_code ##### -->
+<!-- ##### FUNCTION gras_cbps_i_pop ##### -->
<para>
</para>
-@struct_code:
-@field_name:
-@field_type_code:
+@ps:
+@Returns:
-<!-- ##### FUNCTION gras_datadesc_declare_struct_add_code_cb ##### -->
+<!-- ##### FUNCTION gras_cbps_i_push ##### -->
<para>
</para>
-@struct_code:
-@field_name:
-@field_code:
-@pre_cb:
-@post_cb:
-@Returns:
+@ps:
+@val:
-<!-- ##### MACRO gras_datadesc_declare_struct_add_name ##### -->
+<!-- ##### FUNCTION gras_cbps_v_get ##### -->
<para>
</para>
-@struct_code:
-@field_name:
-@field_type_name:
+@ps:
+@name:
+@ddt:
-<!-- ##### FUNCTION gras_datadesc_declare_struct_add_name_cb ##### -->
+<!-- ##### FUNCTION gras_cbps_v_pop ##### -->
<para>
</para>
-@struct_code:
-@field_name:
-@field_type_name:
-@pre_cb:
-@post_cb:
+@ps:
+@name:
+@ddt:
+@res:
@Returns:
-<!-- ##### FUNCTION gras_datadesc_declare_struct_append_name ##### -->
+<!-- ##### FUNCTION gras_cbps_v_push ##### -->
<para>
</para>
-@struct_type:
+@ps:
@name:
-@field_type_name:
+@data:
+@ddt:
@Returns:
-<!-- ##### FUNCTION gras_datadesc_declare_struct_cb ##### -->
+<!-- ##### FUNCTION gras_cbps_v_set ##### -->
<para>
</para>
+@ps:
@name:
-@pre_cb:
-@post_cb:
-@code:
-@Returns:
+@data:
+@ddt:
-<!-- ##### MACRO gras_datadesc_declare_union_add_code ##### -->
+<!-- ##### FUNCTION gras_cfg_check ##### -->
<para>
</para>
-@union_code:
-@field_name:
-@field_type_code:
+@cfg:
+@Returns:
-<!-- ##### FUNCTION gras_datadesc_declare_union_add_code_cb ##### -->
+<!-- ##### FUNCTION gras_cfg_cpy ##### -->
<para>
</para>
-@union_code:
-@field_name:
-@field_code:
-@pre_cb:
-@post_cb:
+@whereto:
+@tocopy:
@Returns:
-<!-- ##### MACRO gras_datadesc_declare_union_add_name ##### -->
+<!-- ##### FUNCTION gras_cfg_dump ##### -->
<para>
</para>
-@union_code:
-@field_name:
-@field_type_name:
+@name:
+@indent:
+@cfg:
-<!-- ##### FUNCTION gras_datadesc_declare_union_add_name_cb ##### -->
+<!-- ##### FUNCTION gras_cfg_empty ##### -->
<para>
</para>
-@union_code:
-@field_name:
-@field_type_name:
-@pre_cb:
-@post_cb:
+@cfg:
+@name:
@Returns:
-<!-- ##### FUNCTION gras_datadesc_declare_union_append_name ##### -->
+<!-- ##### FUNCTION gras_cfg_free ##### -->
<para>
</para>
-@union_type:
-@name:
-@field_type_name:
-@Returns:
+@cfg:
-<!-- ##### FUNCTION gras_datadesc_declare_union_cb ##### -->
+<!-- ##### FUNCTION gras_cfg_get_double ##### -->
<para>
</para>
+@cfg:
@name:
-@field_count:
-@post:
-@code:
+@val:
@Returns:
-<!-- ##### FUNCTION gras_datadesc_from_nws ##### -->
+<!-- ##### FUNCTION gras_cfg_get_dynar ##### -->
<para>
</para>
+@cfg:
@name:
-@desc:
-@howmany:
-@code:
+@dynar:
@Returns:
-@dst:
-<!-- ##### FUNCTION gras_datadesc_import_nws ##### -->
+<!-- ##### FUNCTION gras_cfg_get_host ##### -->
<para>
</para>
+@cfg:
@name:
-@desc:
-@howmany:
-@dst:
+@host:
+@port:
@Returns:
-<!-- ##### FUNCTION gras_datadesc_parse ##### -->
+<!-- ##### FUNCTION gras_cfg_get_int ##### -->
<para>
</para>
+@cfg:
@name:
-@Cdefinition:
-@dst:
+@val:
@Returns:
-@code:
-@def:
-<!-- ##### FUNCTION gras_ddt_free ##### -->
+<!-- ##### FUNCTION gras_cfg_get_string ##### -->
<para>
</para>
-@type:
+@cfg:
+@name:
+@val:
+@Returns:
-<!-- ##### FUNCTION gras_ddt_get_by_code ##### -->
+<!-- ##### FUNCTION gras_cfg_new ##### -->
<para>
</para>
-@code:
-@type:
+@whereto:
@Returns:
-<!-- ##### FUNCTION gras_ddt_get_by_name ##### -->
+<!-- ##### FUNCTION gras_cfg_register ##### -->
<para>
</para>
+@cfg:
@name:
@type:
+@min:
+@max:
@Returns:
-<!-- ##### FUNCTION gras_ddt_new_array ##### -->
+<!-- ##### FUNCTION gras_cfg_register_str ##### -->
<para>
</para>
-@name:
-@element_type:
-@fixed_size:
-@dynamic_size:
-@post:
-@dst:
+@cfg:
+@entry:
@Returns:
-<!-- ##### FUNCTION gras_ddt_new_from_nws ##### -->
+<!-- ##### FUNCTION gras_cfg_rm_double ##### -->
<para>
</para>
+@cfg:
@name:
-@desc:
-@howmany:
-@dst:
+@val:
@Returns:
-<!-- ##### FUNCTION gras_ddt_new_ignored ##### -->
+<!-- ##### FUNCTION gras_cfg_rm_host ##### -->
<para>
</para>
+@cfg:
@name:
-@default_value:
-@free_func:
-@size:
-@alignment:
-@post:
-@dst:
+@host:
+@port:
@Returns:
-<!-- ##### FUNCTION gras_ddt_new_parse ##### -->
+<!-- ##### FUNCTION gras_cfg_rm_int ##### -->
<para>
</para>
+@cfg:
@name:
-@C_definition:
-@dst:
+@val:
@Returns:
-<!-- ##### FUNCTION gras_ddt_new_ref ##### -->
+<!-- ##### FUNCTION gras_cfg_rm_string ##### -->
<para>
</para>
+@cfg:
@name:
-@referenced_type:
-@discriminant:
-@post:
-@dst:
+@val:
@Returns:
-<!-- ##### FUNCTION gras_ddt_new_scalar ##### -->
+<!-- ##### FUNCTION gras_cfg_set ##### -->
<para>
</para>
-@name:
-@type:
+@cfg:
+@Varargs:
@Returns:
-<!-- ##### FUNCTION gras_ddt_new_struct ##### -->
+<!-- ##### FUNCTION gras_cfg_set_double ##### -->
<para>
</para>
+@cfg:
@name:
-@pre:
-@post:
-@dst:
+@val:
@Returns:
-<!-- ##### FUNCTION gras_ddt_new_struct_append ##### -->
+<!-- ##### FUNCTION gras_cfg_set_host ##### -->
<para>
</para>
-@struct_type:
+@cfg:
@name:
-@field_type:
-@pre:
-@post:
+@host:
+@port:
@Returns:
-<!-- ##### FUNCTION gras_ddt_new_union ##### -->
+<!-- ##### FUNCTION gras_cfg_set_int ##### -->
<para>
</para>
+@cfg:
@name:
-@field_count:
-@post:
-@dst:
+@val:
@Returns:
-<!-- ##### FUNCTION gras_ddt_new_union_append ##### -->
+<!-- ##### FUNCTION gras_cfg_set_parse ##### -->
<para>
</para>
-@union_type:
-@name:
-@field_type:
-@pre:
-@post:
+@cfg:
+@options:
@Returns:
-<!-- ##### FUNCTION gras_ddt_register ##### -->
+<!-- ##### FUNCTION gras_cfg_set_string ##### -->
<para>
</para>
-@type:
+@cfg:
+@name:
+@val:
@Returns:
-<!-- ##### FUNCTION gras_dict_cursor_next ##### -->
+<!-- ##### FUNCTION gras_cfg_set_vargs ##### -->
<para>
</para>
-@cursor:
+@cfg:
+@pa:
@Returns:
-<!-- ##### FUNCTION gras_dict_insert ##### -->
+<!-- ##### FUNCTION gras_datadesc_array_dyn ##### -->
<para>
</para>
-@head:
-@key:
-@data:
-@free_ctn:
+@name:
+@element_type:
+@dynamic_size:
+@dst:
@Returns:
-<!-- ##### FUNCTION gras_dict_insert_ext ##### -->
+<!-- ##### FUNCTION gras_datadesc_array_fixed ##### -->
<para>
</para>
-@head:
-@key:
-@key_len:
-@data:
-@free_ctn:
+@name:
+@element_type:
+@fixed_size:
+@dst:
@Returns:
-<!-- ##### FUNCTION gras_dict_retrieve ##### -->
+<!-- ##### FUNCTION gras_datadesc_by_name ##### -->
<para>
</para>
-@head:
-@key:
-@data:
+@name:
@Returns:
+@type:
-<!-- ##### FUNCTION gras_dict_retrieve_ext ##### -->
+<!-- ##### MACRO gras_datadesc_by_symbol ##### -->
<para>
</para>
-@head:
-@key:
-@key_len:
-@data:
-@Returns:
+@name:
-<!-- ##### FUNCTION gras_dynar_first ##### -->
+<!-- ##### FUNCTION gras_datadesc_cb_recv ##### -->
<para>
</para>
-@dynar:
-@cursor:
-@Returns:
+@type:
+@post:
-<!-- ##### FUNCTION gras_dynar_next ##### -->
+<!-- ##### FUNCTION gras_datadesc_cb_send ##### -->
<para>
</para>
-@dynar:
-@cursor:
-@whereto:
-@Returns:
+@type:
+@pre:
-<!-- ##### FUNCTION gras_lock ##### -->
+<!-- ##### FUNCTION gras_datadesc_cb_set_post ##### -->
<para>
</para>
-@Returns:
+@type:
+@post:
-<!-- ##### FUNCTION gras_log_parent_set ##### -->
+<!-- ##### FUNCTION gras_datadesc_cb_set_pre ##### -->
<para>
</para>
-@cat:
-@parent:
+@type:
+@pre:
-<!-- ##### FUNCTION gras_log_threshold_set ##### -->
+<!-- ##### FUNCTION gras_datadesc_cmp ##### -->
<para>
</para>
-@cat:
-@thresholdPriority:
+@d1:
+@d2:
+@Returns:
+@dd1:
+@c1:
+@dd2:
+@c2:
-<!-- ##### FUNCTION gras_msg_discard ##### -->
+<!-- ##### FUNCTION gras_datadesc_copy_data ##### -->
<para>
</para>
-@sd:
-@size:
+@dd:
+@c:
+@data:
-<!-- ##### FUNCTION gras_msg_free ##### -->
+<!-- ##### MACRO gras_datadesc_declare_array ##### -->
<para>
</para>
-@msg:
+@name:
+@elm_type:
+@size:
+@code:
-<!-- ##### FUNCTION gras_msg_new ##### -->
+<!-- ##### FUNCTION gras_datadesc_declare_array_cb ##### -->
<para>
</para>
-@msgId:
-@free_data_on_free:
-@seqCount:
-@Varargs:
+@name:
+@element_type:
+@fixed_size:
+@dynamic_size:
+@post:
+@code:
@Returns:
-<!-- ##### FUNCTION gras_msgtype_register ##### -->
+<!-- ##### FUNCTION gras_datadesc_declare_array_dyn ##### -->
<para>
</para>
-@msgId:
@name:
-@sequence_count:
-@Varargs:
+@element_type:
+@dynamic_size:
+@dst:
@Returns:
+@elm_type:
+@code:
-<!-- ##### FUNCTION gras_sleep ##### -->
+<!-- ##### FUNCTION gras_datadesc_declare_array_fixed ##### -->
<para>
</para>
-@Param1:
-@Param2:
+@name:
+@element_type:
+@fixed_size:
+@dst:
+@Returns:
-<!-- ##### FUNCTION gras_sock_client_open ##### -->
+<!-- ##### FUNCTION gras_datadesc_declare_ref ##### -->
<para>
</para>
-@host:
-@Param2:
-@sock:
+@name:
+@referenced_type:
+@dst:
@Returns:
+@ref_type:
+@code:
-<!-- ##### FUNCTION gras_sock_close ##### -->
+<!-- ##### FUNCTION gras_datadesc_declare_ref_cb ##### -->
<para>
</para>
-@sock:
-@Returns:
-
-<!-- ##### FUNCTION gras_sock_get_peer_addr ##### -->
-<para>
+@name:
+@referenced_type:
+@discriminant:
+@post:
+@code:
+@Returns:
+
+<!-- ##### MACRO gras_datadesc_declare_ref_disc ##### -->
+<para>
+
+</para>
+
+@name:
+@discriminant:
+@code:
+
+<!-- ##### FUNCTION gras_datadesc_declare_ref_generic ##### -->
+<para>
+
+</para>
+
+@name:
+@discriminant:
+@dst:
+@Returns:
+
+<!-- ##### FUNCTION gras_datadesc_declare_struct ##### -->
+<para>
+
+</para>
+
+@name:
+@dst:
+@Returns:
+@code:
+
+<!-- ##### MACRO gras_datadesc_declare_struct_add_code ##### -->
+<para>
+
+</para>
+
+@struct_code:
+@field_name:
+@field_type_code:
+
+<!-- ##### FUNCTION gras_datadesc_declare_struct_add_code_cb ##### -->
+<para>
+
+</para>
+
+@struct_code:
+@field_name:
+@field_code:
+@pre_cb:
+@post_cb:
+@Returns:
+
+<!-- ##### MACRO gras_datadesc_declare_struct_add_name ##### -->
+<para>
+
+</para>
+
+@struct_code:
+@field_name:
+@field_type_name:
+
+<!-- ##### FUNCTION gras_datadesc_declare_struct_add_name_cb ##### -->
+<para>
+
+</para>
+
+@struct_code:
+@field_name:
+@field_type_name:
+@pre_cb:
+@post_cb:
+@Returns:
+
+<!-- ##### FUNCTION gras_datadesc_declare_struct_append ##### -->
+<para>
+
+</para>
+
+@struct_type:
+@name:
+@field_type:
+@Returns:
+
+<!-- ##### FUNCTION gras_datadesc_declare_struct_append_name ##### -->
+<para>
+
+</para>
+
+@struct_type:
+@name:
+@field_type_name:
+@Returns:
+
+<!-- ##### FUNCTION gras_datadesc_declare_struct_cb ##### -->
+<para>
+
+</para>
+
+@name:
+@pre_cb:
+@post_cb:
+@code:
+@Returns:
+
+<!-- ##### FUNCTION gras_datadesc_declare_struct_close ##### -->
+<para>
+
+</para>
+
+@struct_type:
+
+<!-- ##### FUNCTION gras_datadesc_declare_union ##### -->
+<para>
+
+</para>
+
+@name:
+@selector:
+@dst:
+@Returns:
+@code:
+
+<!-- ##### MACRO gras_datadesc_declare_union_add_code ##### -->
+<para>
+
+</para>
+
+@union_code:
+@field_name:
+@field_type_code:
+
+<!-- ##### FUNCTION gras_datadesc_declare_union_add_code_cb ##### -->
+<para>
+
+</para>
+
+@union_code:
+@field_name:
+@field_code:
+@pre_cb:
+@post_cb:
+@Returns:
+
+<!-- ##### MACRO gras_datadesc_declare_union_add_name ##### -->
+<para>
+
+</para>
+
+@union_code:
+@field_name:
+@field_type_name:
+
+<!-- ##### FUNCTION gras_datadesc_declare_union_add_name_cb ##### -->
+<para>
+
+</para>
+
+@union_code:
+@field_name:
+@field_type_name:
+@pre_cb:
+@post_cb:
+@Returns:
+
+<!-- ##### FUNCTION gras_datadesc_declare_union_append ##### -->
+<para>
+
+</para>
+
+@union_type:
+@name:
+@field_type:
+@Returns:
+
+<!-- ##### FUNCTION gras_datadesc_declare_union_append_name ##### -->
+<para>
+
+</para>
+
+@union_type:
+@name:
+@field_type_name:
+@Returns:
+
+<!-- ##### FUNCTION gras_datadesc_declare_union_cb ##### -->
+<para>
+
+</para>
+
+@name:
+@field_count:
+@post:
+@code:
+@Returns:
+
+<!-- ##### FUNCTION gras_datadesc_declare_union_close ##### -->
+<para>
+
+</para>
+
+@union_type:
+
+<!-- ##### FUNCTION gras_datadesc_from_nws ##### -->
+<para>
+
+</para>
+
+@name:
+@desc:
+@howmany:
+@code:
+@Returns:
+@dst:
+
+<!-- ##### FUNCTION gras_datadesc_import_nws ##### -->
+<para>
+
+</para>
+
+@name:
+@desc:
+@howmany:
+@dst:
+@Returns:
+
+<!-- ##### FUNCTION gras_datadesc_parse ##### -->
+<para>
+
+</para>
+
+@name:
+@Cdefinition:
+@dst:
+@Returns:
+@code:
+@def:
+
+<!-- ##### FUNCTION gras_datadesc_ref ##### -->
+<para>
+
+</para>
+
+@name:
+@referenced_type:
+@dst:
+@Returns:
+
+<!-- ##### FUNCTION gras_datadesc_ref_generic ##### -->
+<para>
+
+</para>
+
+@name:
+@selector:
+@dst:
+@Returns:
+@discriminant:
+
+<!-- ##### FUNCTION gras_datadesc_ref_pop_arr ##### -->
+<para>
+
+</para>
+
+@element_type:
+@dst:
+@Returns:
+
+<!-- ##### FUNCTION gras_datadesc_struct ##### -->
+<para>
+
+</para>
+
+@name:
+@dst:
+@Returns:
+
+<!-- ##### FUNCTION gras_datadesc_struct_append ##### -->
+<para>
+
+</para>
+
+@struct_type:
+@name:
+@field_type:
+@Returns:
+
+<!-- ##### FUNCTION gras_datadesc_struct_close ##### -->
+<para>
+
+</para>
+
+@struct_type:
+
+<!-- ##### USER_FUNCTION gras_datadesc_type_cb_int_t ##### -->
+<para>
+
+</para>
+
+@vars:
+@data:
+@Returns:
+@p_type:
+
+<!-- ##### USER_FUNCTION gras_datadesc_type_cb_void_t ##### -->
+<para>
+
+</para>
+
+@vars:
+@data:
+@p_type:
+
+<!-- ##### FUNCTION gras_datadesc_union ##### -->
+<para>
+
+</para>
+
+@name:
+@selector:
+@dst:
+@Returns:
+
+<!-- ##### FUNCTION gras_datadesc_union_append ##### -->
+<para>
+
+</para>
+
+@union_type:
+@name:
+@field_type:
+@Returns:
+
+<!-- ##### FUNCTION gras_datadesc_union_close ##### -->
+<para>
+
+</para>
+
+@union_type:
+
+<!-- ##### FUNCTION gras_dd_cbps_block_begin ##### -->
+<para>
+
+</para>
+
+@ps:
+
+<!-- ##### FUNCTION gras_dd_cbps_block_end ##### -->
+<para>
+
+</para>
+
+@ps:
+
+<!-- ##### FUNCTION gras_dd_cbps_get ##### -->
+<para>
+
+</para>
+
+@ps:
+@name:
+@ddt:
+
+<!-- ##### FUNCTION gras_dd_cbps_pop ##### -->
+<para>
+
+</para>
+
+@ps:
+@name:
+@ddt:
+
+<!-- ##### FUNCTION gras_dd_cbps_push ##### -->
+<para>
+
+</para>
+
+@ps:
+@name:
+@data:
+@ddt:
+
+<!-- ##### FUNCTION gras_dd_cbps_set ##### -->
+<para>
+
+</para>
+
+@ps:
+@name:
+@data:
+@ddt:
+
+<!-- ##### FUNCTION gras_ddt_free ##### -->
+<para>
+
+</para>
+
+@type:
+
+<!-- ##### FUNCTION gras_ddt_get_by_code ##### -->
+<para>
+
+</para>
+
+@code:
+@type:
+@Returns:
+
+<!-- ##### FUNCTION gras_ddt_get_by_name ##### -->
+<para>
+
+</para>
+
+@name:
+@type:
+@Returns:
+
+<!-- ##### FUNCTION gras_ddt_new_array ##### -->
+<para>
+
+</para>
+
+@name:
+@element_type:
+@fixed_size:
+@dynamic_size:
+@post:
+@dst:
+@Returns:
+
+<!-- ##### FUNCTION gras_ddt_new_from_nws ##### -->
+<para>
+
+</para>
+
+@name:
+@desc:
+@howmany:
+@dst:
+@Returns:
+
+<!-- ##### FUNCTION gras_ddt_new_ignored ##### -->
+<para>
+
+</para>
+
+@name:
+@default_value:
+@free_func:
+@size:
+@alignment:
+@post:
+@dst:
+@Returns:
+
+<!-- ##### FUNCTION gras_ddt_new_parse ##### -->
+<para>
+
+</para>
+
+@name:
+@C_definition:
+@dst:
+@Returns:
+
+<!-- ##### FUNCTION gras_ddt_new_ref ##### -->
+<para>
+
+</para>
+
+@name:
+@referenced_type:
+@discriminant:
+@post:
+@dst:
+@Returns:
+
+<!-- ##### FUNCTION gras_ddt_new_scalar ##### -->
+<para>
+
+</para>
+
+@name:
+@type:
+@Returns:
+
+<!-- ##### FUNCTION gras_ddt_new_struct ##### -->
+<para>
+
+</para>
+
+@name:
+@pre:
+@post:
+@dst:
+@Returns:
+
+<!-- ##### FUNCTION gras_ddt_new_struct_append ##### -->
+<para>
+
+</para>
+
+@struct_type:
+@name:
+@field_type:
+@pre:
+@post:
+@Returns:
+
+<!-- ##### FUNCTION gras_ddt_new_union ##### -->
+<para>
+
+</para>
+
+@name:
+@field_count:
+@post:
+@dst:
+@Returns:
+
+<!-- ##### FUNCTION gras_ddt_new_union_append ##### -->
+<para>
+
+</para>
+
+@union_type:
+@name:
+@field_type:
+@pre:
+@post:
+@Returns:
+
+<!-- ##### FUNCTION gras_ddt_register ##### -->
+<para>
+
+</para>
+
+@type:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_cursor_free ##### -->
+<para>
+
+</para>
+
+@cursor:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_cursor_get_data ##### -->
+<para>
+
+</para>
+
+@cursor:
+@data:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_cursor_get_key ##### -->
+<para>
+
+</para>
+
+@cursor:
+@key:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_cursor_new ##### -->
+<para>
+
+</para>
+
+@head:
+@cursor:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_cursor_next ##### -->
+<para>
+
+</para>
+
+@cursor:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_cursor_rewind ##### -->
+<para>
+
+</para>
+
+@cursor:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_dump ##### -->
+<para>
+
+</para>
+
+@head:
+@output:
+@Returns:
+
+<!-- ##### MACRO gras_dict_foreach ##### -->
+<para>
+
+</para>
+
+@dict:
+@cursor:
+@key:
+@data:
+
+<!-- ##### FUNCTION gras_dict_free ##### -->
+<para>
+
+</para>
+
+@dict:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_get ##### -->
+<para>
+
+</para>
+
+@head:
+@key:
+@data:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_get_ext ##### -->
+<para>
+
+</para>
+
+@head:
+@key:
+@key_len:
+@data:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_insert ##### -->
+<para>
+
+</para>
+
+@head:
+@key:
+@data:
+@free_ctn:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_insert_ext ##### -->
+<para>
+
+</para>
+
+@head:
+@key:
+@key_len:
+@data:
+@free_ctn:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_new ##### -->
+<para>
+
+</para>
+
+@dict:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_print ##### -->
+<para>
+
+</para>
+
+@data:
+
+<!-- ##### FUNCTION gras_dict_prints ##### -->
+<para>
+
+</para>
+
+@data:
+
+<!-- ##### FUNCTION gras_dict_remove ##### -->
+<para>
+
+</para>
+
+@head:
+@key:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_remove_ext ##### -->
+<para>
+
+</para>
+
+@head:
+@key:
+@key_len:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_retrieve ##### -->
+<para>
+
+</para>
+
+@head:
+@key:
+@data:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_retrieve_ext ##### -->
+<para>
+
+</para>
+
+@head:
+@key:
+@key_len:
+@data:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_set ##### -->
+<para>
+
+</para>
+
+@head:
+@key:
+@data:
+@free_ctn:
+@Returns:
+
+<!-- ##### FUNCTION gras_dict_set_ext ##### -->
+<para>
+
+</para>
+
+@head:
+@key:
+@key_len:
+@data:
+@free_ctn:
+@Returns:
+
+<!-- ##### FUNCTION gras_dynar_cursor_first ##### -->
+<para>
+
+</para>
+
+@dynar:
+@cursor:
+
+<!-- ##### FUNCTION gras_dynar_cursor_get ##### -->
+<para>
+
+</para>
+
+@dynar:
+@cursor:
+@whereto:
+@Returns:
+
+<!-- ##### FUNCTION gras_dynar_cursor_rm ##### -->
+<para>
+
+</para>
+
+@dynar:
+@cursor:
+
+<!-- ##### FUNCTION gras_dynar_cursor_step ##### -->
+<para>
+
+</para>
+
+@dynar:
+@cursor:
+
+<!-- ##### FUNCTION gras_dynar_first ##### -->
+<para>
+
+</para>
+
+@dynar:
+@cursor:
+@Returns:
+
+<!-- ##### MACRO gras_dynar_foreach ##### -->
+<para>
+
+</para>
+
+@_dynar:
+@_cursor:
+@_data:
+@_whereto:
+
+<!-- ##### FUNCTION gras_dynar_free ##### -->
+<para>
+
+</para>
+
+@dynar:
+@Returns:
+
+<!-- ##### FUNCTION gras_dynar_free_container ##### -->
+<para>
+
+</para>
+
+@dynar:
+@Returns:
+
+<!-- ##### FUNCTION gras_dynar_get ##### -->
+<para>
+
+</para>
+
+@dynar:
+@idx:
+@dst:
+@whereto:
+@Returns:
+
+<!-- ##### FUNCTION gras_dynar_insert_at ##### -->
+<para>
+
+</para>
+
+@dynar:
+@idx:
+@src:
+@Returns:
+@object:
+
+<!-- ##### FUNCTION gras_dynar_length ##### -->
+<para>
+
+</para>
+
+@dynar:
+@Returns:
+
+<!-- ##### FUNCTION gras_dynar_map ##### -->
+<para>
+
+</para>
+
+@dynar:
+@operator:
+@Returns:
+
+<!-- ##### FUNCTION gras_dynar_new ##### -->
+<para>
+
+</para>
+
+@whereto:
+@elm_size:
+@free_func:
+@Returns:
+
+<!-- ##### FUNCTION gras_dynar_next ##### -->
+<para>
+
+</para>
+
+@dynar:
+@cursor:
+@whereto:
+@Returns:
+
+<!-- ##### FUNCTION gras_dynar_pop ##### -->
+<para>
+
+</para>
+
+@dynar:
+@dst:
+@whereto:
+
+<!-- ##### FUNCTION gras_dynar_push ##### -->
+<para>
+
+</para>
+
+@dynar:
+@src:
+@Returns:
+@object:
+
+<!-- ##### FUNCTION gras_dynar_remove_at ##### -->
+<para>
+
+</para>
+
+@dynar:
+@idx:
+@object:
+@Returns:
+
+<!-- ##### FUNCTION gras_dynar_remplace ##### -->
+<para>
+
+</para>
+
+@dynar:
+@idx:
+@object:
+@Returns:
+
+<!-- ##### FUNCTION gras_dynar_reset ##### -->
+<para>
+
+</para>
+
+@dynar:
+@Returns:
+
+<!-- ##### FUNCTION gras_dynar_set ##### -->
+<para>
+
+</para>
+
+@dynar:
+@idx:
+@src:
+@Returns:
+@object:
+
+<!-- ##### FUNCTION gras_dynar_shift ##### -->
+<para>
+
+</para>
+
+@dynar:
+@dst:
+@whereto:
+@Returns:
+
+<!-- ##### FUNCTION gras_dynar_unshift ##### -->
+<para>
+
+</para>
+
+@dynar:
+@src:
+@Returns:
+@object:
+
+<!-- ##### ENUM gras_error_t ##### -->
+<para>
+
+</para>
+
+@no_error: no error
+@malloc_error: Well known error
+@mismatch_error: Not found
+@system_error: a syscall did fail
+@network_error: error while sending/receiving data
+@timeout_error: not quick enough, dude
+@thread_error: error while [un]locking
+@unknown_error: no idea
+
+<!-- ##### FUNCTION gras_lock ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+<!-- ##### FUNCTION gras_log_appender_set ##### -->
+<para>
+
+</para>
+
+@cat:
+@app:
+
+<!-- ##### FUNCTION gras_log_control_set ##### -->
+<para>
+
+</para>
+
+@cs:
+@Returns:
+
+<!-- ##### VARIABLE gras_log_default_appender ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gras_log_parent_set ##### -->
+<para>
+
+</para>
+
+@cat:
+@parent:
+
+<!-- ##### ENUM gras_log_priority_t ##### -->
+<para>
+
+</para>
+
+@gras_log_priority_none:
+@gras_log_priority_trace:
+@gras_log_priority_debug:
+@gras_log_priority_verbose:
+@gras_log_priority_info:
+@gras_log_priority_warning:
+@gras_log_priority_error:
+@gras_log_priority_critical:
+@gras_log_priority_infinite:
+@gras_log_priority_uninitialized:
+
+<!-- ##### FUNCTION gras_log_threshold_set ##### -->
+<para>
+
+</para>
+
+@cat:
+@thresholdPriority:
+
+<!-- ##### FUNCTION gras_msg_discard ##### -->
+<para>
+
+</para>
+
+@sd:
+@size:
+
+<!-- ##### FUNCTION gras_msg_free ##### -->
+<para>
+
+</para>
+
+@msg:
+
+<!-- ##### FUNCTION gras_msg_handle ##### -->
+<para>
+
+</para>
+
+@timeOut:
+@Returns:
+
+<!-- ##### FUNCTION gras_msg_new ##### -->
+<para>
+
+</para>
+
+@msgId:
+@free_data_on_free:
+@seqCount:
+@Varargs:
+@Returns:
+
+<!-- ##### FUNCTION gras_msg_send ##### -->
+<para>
+
+</para>
+
+@sock:
+@msgtype:
+@payload:
+@Returns:
+@sd:
+@msg:
+@freeDirective:
+
+<!-- ##### FUNCTION gras_msg_wait ##### -->
+<para>
+
+</para>
+
+@timeout:
+@msgt_want:
+@expeditor:
+@payload:
+@Returns:
+@id:
+@message:
+
+<!-- ##### FUNCTION gras_msgtype_by_name ##### -->
+<para>
+
+</para>
+
+@name:
+@Returns:
+@dst:
+
+<!-- ##### FUNCTION gras_msgtype_by_namev ##### -->
+<para>
+
+</para>
+
+@name:
+@version:
+@Returns:
+@dst:
+
+<!-- ##### FUNCTION gras_msgtype_declare ##### -->
+<para>
+
+</para>
+
+@name:
+@payload:
+@Returns:
+@dst:
+
+<!-- ##### FUNCTION gras_msgtype_declare_v ##### -->
+<para>
+
+</para>
+
+@name:
+@version:
+@payload:
+@Returns:
+@dst:
+
+<!-- ##### FUNCTION gras_msgtype_register ##### -->
+<para>
+
+</para>
+
+@msgId:
+@name:
+@sequence_count:
+@Varargs:
+@Returns:
+
+<!-- ##### FUNCTION gras_os_sleep ##### -->
+<para>
+
+</para>
+
+@Param1:
+@Param2:
+
+<!-- ##### FUNCTION gras_os_time ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+<!-- ##### FUNCTION gras_set_add ##### -->
+<para>
+
+</para>
+
+@set:
+@elm:
+@free_func:
+@Returns:
+
+<!-- ##### MACRO gras_set_foreach ##### -->
+<para>
+
+</para>
+
+@set:
+@cursor:
+@elm:
+
+<!-- ##### FUNCTION gras_set_free ##### -->
+<para>
+
+</para>
+
+@set:
+
+<!-- ##### FUNCTION gras_set_get_by_id ##### -->
+<para>
+
+</para>
+
+@set:
+@id:
+@dst:
+@Returns:
+
+<!-- ##### FUNCTION gras_set_get_by_name ##### -->
+<para>
+
+</para>
+
+@set:
+@key:
+@dst:
+@Returns:
+
+<!-- ##### FUNCTION gras_set_get_by_name_ext ##### -->
+<para>
+
+</para>
+
+@set:
+@name:
+@name_len:
+@dst:
+@Returns:
+
+<!-- ##### FUNCTION gras_set_new ##### -->
+<para>
+
+</para>
+
+@dst:
+@Returns:
+
+<!-- ##### FUNCTION gras_sleep ##### -->
+<para>
+
+</para>
+
+@Param1:
+@Param2:
+
+<!-- ##### FUNCTION gras_sock_client_open ##### -->
+<para>
+
+</para>
+
+@host:
+@Param2:
+@sock:
+@Returns:
+
+<!-- ##### FUNCTION gras_sock_close ##### -->
+<para>
+
+</para>
+
+@sock:
+@Returns:
+
+<!-- ##### FUNCTION gras_sock_get_peer_addr ##### -->
+<para>
</para>
@sock:
@Returns:
+<!-- ##### FUNCTION gras_socket_client ##### -->
+<para>
+
+</para>
+
+@host:
+@Param2:
+@dst:
+@Returns:
+@bufSize:
+@sock:
+
+<!-- ##### FUNCTION gras_socket_close ##### -->
+<para>
+
+</para>
+
+@sd:
+@sock:
+@Returns:
+
+<!-- ##### FUNCTION gras_socket_my_port ##### -->
+<para>
+
+</para>
+
+@sock:
+@Returns:
+
+<!-- ##### FUNCTION gras_socket_peer_name ##### -->
+<para>
+
+</para>
+
+@sock:
+@Returns:
+@sd:
+
+<!-- ##### FUNCTION gras_socket_peer_port ##### -->
+<para>
+
+</para>
+
+@sock:
+@Returns:
+
+<!-- ##### FUNCTION gras_socket_server ##### -->
+<para>
+
+</para>
+
+@Param1:
+@dst:
+@Returns:
+@bufSize:
+
<!-- ##### FUNCTION gras_time ##### -->
<para>
@Returns:
+<!-- ##### FUNCTION gras_userdata_get ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO gras_userdata_new ##### -->
+<para>
+
+</para>
+
+@type:
+
+<!-- ##### FUNCTION gras_userdata_set ##### -->
+<para>
+
+</para>
+
+@ud:
+