Types
Eina » Core

Definition for eina types and core functions. More...

## Macros

#define | EINA_API
| Used to export functions (by changing visibility).
#define | EINA_API_WEAK
| Weak symbol, primarily useful in defining library functions which can be overridden in user code.
#define | EWAPI EAPI EINA_API_WEAK
| Weak symbols part of the EFL API.
#define | EXPORTAPI
| An alias for EINA_API.
#define | __WORDSIZE 64
| Architecture's word size (32 or 64 bits).
#define | EINA_UNUSED
| Used to indicate that a function parameter is purposely unused.
#define | EINA_WARN_UNUSED_RESULT
| Used to warn when the returned value of the function is not used.
#define | EINA_ARG_NONNULL(...)
| Used to warn when the specified arguments of the function are `NULL`.
#define | EINA_DEPRECATED
| Used to warn when the function is considered as deprecated.
#define | EINA_MALLOC
| EINA_MALLOC is used to tell the compiler that a function may be treated as if any non-NULL pointer it returns cannot alias any other pointer valid when the function returns and that the memory has undefined content.
#define | EINA_PURE
| EINA_PURE is used to tell the compiler this function has no effect except the return value and its return value depends only on the parameters and/or global variables.
#define | EINA_PRINTF(fmt, arg)
| Indicates that this function accepts a printf-style format string.
#define | EINA_SCANF(fmt, arg)
| Indicates that this function accepts a scanf-style format string.
#define | EINA_FORMAT(fmt)
| Indicates that the output of this function can be used as a format string in printf-style functions.
#define | EINA_CONST
| Attribute from gcc to prevent the function to read/modify any global memory.
#define | EINA_NOINSTRUMENT
| Attribute from gcc to disable instrumentation for a specific function.
#define | EINA_UNLIKELY(exp)
| Indicates that the expression is likely to be `FALSE`.
#define | EINA_LIKELY(exp)
| Indicates that the expression is likely to be `TRUE`.
#define | EINA_SENTINEL
| Attribute from gcc to prevent calls without the necessary NULL sentinel in certain variadic functions.
#define | EINA_FALLTHROUGH
| Attribute from gcc to prevent warning and indicate that we expect to actually go to the next switch statement.
#define | EINA_PREFETCH(arg)
| Hints that the pointer `arg` needs to be pre-fetched into cache.
#define | EINA_PREFETCH_WRITE(arg)
| Hints that the pointer `arg` needs to be pre-fetched into cache.
#define | EINA_PREFETCH_NOCACHE(arg)
| Hints that the pointer `arg` needs to be pre-fetched into cache.
#define | EINA_PREFETCH_NOCACHE_WRITE(arg)
| Hints that the pointer `arg` needs to be pre-fetched into cache.
#define | EINA_FALSE ((Eina_Bool)0)
| boolean value FALSE (numerical value 0)
#define | EINA_TRUE ((Eina_Bool)1)
| boolean value TRUE (numerical value 1)
#define | EINA_COMPARE_CB(function)
| Macro to cast to Eina_Compare_Cb.
#define | EINA_RANDOM_CB(function)
| Macro to cast to Eina_Random_Cb.
#define | EINA_PROCESS_CB(Function)
| Macro to cast to Eina_Process.
#define | EINA_EACH_CB(Function)
| Macro to cast to Eina_Each.
#define | EINA_FREE_CB(Function)
| Macro to cast to Eina_Free_Cb.
#define | EINA_C_ARRAY_LENGTH(arr)
| Macro to return the array length of a standard c array.
#define | EINA_DOUBLE_EQUAL(x, y)
| Macro to compare 2 double floating point values and deal with precision loss issues.

## Typedefs

typedef unsigned char | Eina_Bool
| Type to mimic a boolean.
typedef int(* | Eina_Compare_Cb) (const void *data1, const void *data2)
| Function used in functions using sorting.
typedef int(* | Eina_Random_Cb) (const int min, const int max)
| Function used in shuffling functions.
typedef void *(* | Eina_Process_Cb) (const void *container, void *data, void *fdata)
| Method that processes some data and returns new data.
typedef Eina_Bool(* | Eina_Each_Cb) (const void *container, void *data, void *fdata)
| A callback type used when iterating over a container.
typedef void(* | Eina_Free_Cb) (void *data)
| A callback type used to free data when iterating over a container.

## Detailed Description

Definition for eina types and core functions.

## Macro Definition Documentation

## EINA_API_WEAK

#define EINA_API_WEAK

Weak symbol, primarily useful in defining library functions which can be overridden in user code.

Note: Not supported on all platforms.

## EWAPI

#define EWAPI EAPI EINA_API_WEAK

Weak symbols part of the EFL API.

Note: Not supported on all platforms.

## __WORDSIZE

#define __WORDSIZE 64

Architecture's word size (32 or 64 bits).

Defined by Eina if its definition cannot be found in the system's headers.

## EINA_UNUSED

#define EINA_UNUSED

Used to indicate that a function parameter is purposely unused.

This silences some compiler's warning about unused parameters.

Examples
  actionslider_example_01.c, banshee.c, bg_example_01.c, bg_example_02.c, bg_example_03.c, box_example_02.c, bubble_example_01.c, button_example_00.c, button_example_01.c, calendar_example_01.c, calendar_example_02.c, calendar_example_03.c, calendar_example_04.c, calendar_example_05.c, calendar_example_06.c, check_example_01.c, client.c, clock_example.c, codegen_example.c, colorselector_example_01.c, combobox_example_01.c, complex-types-client-eina-value.c, complex-types-server.c, complex-types.c, conformant_example_01.c, conformant_example_02.c, connman-list-services.c, ctxpopup_example_01.c, datetime_example.c, dayselector_example.c, diskselector_example_01.c, diskselector_example_02.c, ecore_con_client_example.c, ecore_con_client_simple_example.c, ecore_con_lookup_example.c, ecore_con_server_example.c, ecore_con_server_simple_example.c, ecore_con_url_cookies_example.c, ecore_con_url_download_example.c, ecore_con_url_headers_example.c, ecore_evas_basics_example.c, ecore_evas_buffer_example_02.c, ecore_evas_callbacks.c, ecore_evas_object_example.c, ecore_evas_window_sizes_example.c, ecore_event_example_01.c, ecore_event_example_02.c, ecore_exe_example.c, ecore_exe_example_child.c, ecore_fd_handler_example.c, ecore_idler_example.c, ecore_imf_example.c, ecore_job_example.c, ecore_pipe_gstreamer_example.c, ecore_pipe_simple_example.c, ecore_poller_example.c, ecore_thread_example.c, ecore_time_functions_example.c, ecore_timer_example.c, edje-basic.c, edje-box.c, edje-box2.c, edje-color-class.c, edje-drag.c, edje-perspective.c, edje-signals-messages.c, edje-swallow.c, edje-table.c, edje-text.c, eet-data-file_descriptor_01.c, efl_thread_1.c, efl_thread_2.c, efl_thread_3.c, efl_thread_4.c, efl_thread_5.c, efl_thread_6.c, eina_accessor_01.c, eina_array_01.c, eina_array_02.c, eina_file_01.c, eina_hash_01.c, eina_hash_02.c, eina_hash_03.c, eina_hash_04.c, eina_hash_05.c, eina_hash_06.c, eina_hash_07.c, eina_hash_08.c, eina_inarray_01.c, eina_inarray_02.c, eina_inarray_03.c, eina_iterator_01.c, eina_log_03.c, eina_magic_01.c, eina_simple_xml_parser_01.c, eina_str_01.c, eina_strbuf_01.c, eina_stringshare_01.c, eina_tiler_01.c, eina_value_03.c, eio_file_ls.c, emotion_basic_example.c, emotion_signals_example.c, emotion_test_main.c, entry_example.c, evas-aspect-hints.c, evas-box.c, evas-events.c, evas-hints.c, evas-images.c, evas-images2.c, evas-map-utils.c, evas-object-manipulation.c, evas-smart-interface.c, evas-smart-object.c, evas-stacking.c, evas-table.c, evas-text.c, fileselector_button_example.c, fileselector_entry_example.c, fileselector_example.c, flip_example_01.c, flipselector_example.c, frame_example_01.c, general_funcs_example.c, gengrid_example.c, genlist_example_01.c, genlist_example_02.c, genlist_example_03.c, genlist_example_04.c, genlist_example_05.c, glview_example_01.c, hover_example_01.c, hoversel_example_01.c, icon_example_01.c, image_example_01.c, index_example_01.c, index_example_02.c, inwin_example.c, label_example_01.c, layout_example_01.c, layout_example_02.c, layout_example_03.c, list_example_01.c, list_example_02.c, list_example_03.c, map_example_01.c, map_example_02.c, map_example_03.c, mapbuf_example.c, menu_example_01.c, naviframe_example.c, notify_example_01.c, ofono-dial.c, panel_example_01.c, panes_example.c, photocam_example_01.c, popup_example_01.c, popup_example_02.c, popup_example_03.c, prefs_example_01.c, prefs_example_02.c, prefs_example_03.c, progressbar_example.c, radio_example_01.c, scroller_example_01.c, segment_control_example.c, separator_example_01.c, server.c, slider_example.c, slideshow_example.c, spinner_example.c, table_example_01.c, table_example_02.c, theme_example_01.c, theme_example_02.c, thumb_example_01.c, toolbar_example_01.c, toolbar_example_02.c, toolbar_example_03.c, track_example_01.c, transit_example_01.c, transit_example_02.c, transit_example_03.c, transit_example_04.c, web_example_02.c, and win_example.c.

Referenced by _mouse_down_cb(), ecore_drm_fb_set(), ecore_evas_ews_background_set(), ecore_evas_ews_backing_store_get(), ecore_evas_ews_delete_request(), ecore_evas_ews_engine_set(), ecore_evas_ews_manager_set(), ecore_evas_ews_new(), ecore_evas_ews_setup(), ecore_getopt_callback_ecore_evas_list_engines(), ecore_getopt_callback_geometry_parse(), ecore_getopt_callback_size_parse(), ecore_imf_context_default_id_by_canvas_type_get(), ecore_main_win32_handler_add(), ecore_main_win32_handler_del(), ecore_poller_add(), ecore_poller_poll_interval_get(), ecore_poller_poll_interval_set(), ecore_sdl_init(), ecore_wl_dnd_drag_start(), ecore_wl_dnd_start_drag(), ecore_wl_window_resize(), ecore_x_e_keyrouter_get(), ecore_x_e_keyrouter_set(), ecore_x_randr_output_edid_get(), ecore_x_window_keygrab_set(), ecore_x_window_keygrab_unset(), ecore_x_window_prop_property_get(), ecore_x_window_shadow_parent_get(), edje_mmap_3d_has(), edje_object_part_text_cursor_begin_set(), edje_object_part_text_cursor_content_get(), edje_object_part_text_cursor_coord_set(), edje_object_part_text_cursor_copy(), edje_object_part_text_cursor_down(), edje_object_part_text_cursor_end_set(), edje_object_part_text_cursor_geometry_get(), edje_object_part_text_cursor_line_begin_set(), edje_object_part_text_cursor_line_end_set(), edje_object_part_text_cursor_next(), edje_object_part_text_cursor_pos_get(), edje_object_part_text_cursor_pos_set(), edje_object_part_text_cursor_prev(), edje_object_part_text_cursor_up(), efreet_menu_async_get(), efreet_menu_async_parse(), eina_file_map_all(), eina_file_map_faulted(), eina_file_map_key_cmp(), eina_file_map_key_hash(), eina_file_map_key_length(), eina_file_map_populate(), eina_file_statat(), eina_file_xattr_get(), eina_file_xattr_value_get(), eina_log_print_cb_file(), eina_log_print_cb_journald(), eina_log_print_cb_stderr(), eina_log_print_cb_stdout(), eina_str_convert(), eina_str_convert_len(), eina_thread_queue_wait_done(), elm_code_line_split_at(), elm_code_syntax_parse_file(), elm_config_color_overlay_set(), elm_config_color_overlay_unset(), elm_drag_action_set(), elm_flip_perspective_set(), elm_icon_order_lookup_get(), elm_icon_order_lookup_set(), elm_map_name_address_get(), elm_map_name_del(), elm_map_name_region_get(), elm_map_overlay_bubble_content_append(), elm_map_overlay_bubble_content_clear(), elm_map_overlay_bubble_follow(), elm_map_overlay_class_append(), elm_map_overlay_class_remove(), elm_map_overlay_class_zoom_max_get(), elm_map_overlay_class_zoom_max_set(), elm_map_overlay_color_get(), elm_map_overlay_color_set(), elm_map_overlay_content_get(), elm_map_overlay_content_set(), elm_map_overlay_data_get(), elm_map_overlay_data_set(), elm_map_overlay_del(), elm_map_overlay_del_cb_set(), elm_map_overlay_displayed_zoom_min_get(), elm_map_overlay_displayed_zoom_min_set(), elm_map_overlay_get_cb_set(), elm_map_overlay_group_members_get(), elm_map_overlay_hide_get(), elm_map_overlay_hide_set(), elm_map_overlay_icon_get(), elm_map_overlay_icon_set(), elm_map_overlay_paused_get(), elm_map_overlay_paused_set(), elm_map_overlay_polygon_region_add(), elm_map_overlay_region_get(), elm_map_overlay_region_set(), elm_map_overlay_show(), elm_map_overlay_type_get(), elm_map_overlay_visible_get(), elm_map_overlays_show(), elm_map_paused_get(), elm_map_paused_set(), elm_map_route_del(), elm_map_route_distance_get(), elm_map_route_node_get(), elm_map_route_waypoint_get(), elm_map_wheel_disabled_get(), elm_map_wheel_disabled_set(), elm_map_zoom_get(), elm_map_zoom_mode_get(), elm_map_zoom_mode_set(), elm_map_zoom_set(), elm_object_focus_next_item_get(), elm_object_focus_next_item_set(), elm_photocam_image_region_bring_in(), elm_prefs_page_widget_common_add(), elm_quicklaunch_init(), elm_toolbar_icon_order_lookup_get(), elm_toolbar_icon_order_lookup_set(), elm_win_fake_canvas_set(), elm_win_illume_command_send(), embryo_swap_16(), embryo_swap_32(), emile_binbuf_cipher(), emile_binbuf_decipher(), emile_load_error_str(), evas_cserve_config_get(), evas_cserve_config_set(), evas_cserve_image_cache_contents_clean(), evas_cserve_stats_get(), evas_device_parent_set(), evas_object_box_smart_set(), evas_object_freeze_events_get(), evas_object_image_alpha_mask_set(), evas_object_image_fill_spread_get(), evas_object_image_fill_spread_set(), evas_object_image_memfile_set(), evas_object_textblock_cursor_get(), evas_object_textblock_visible_range_get(), evas_textblock_text_utf8_to_markup(), and evas_vg_node_mask_set().

## EINA_ARG_NONNULL

#define EINA_ARG_NONNULL | ( |  | ... | ) |

Used to warn when the specified arguments of the function are `NULL`.

Parameters

  [in] | ... | Ordinals of the parameters to check for nullity (1..n)

Returns
  Nothing, but Doxygen will complain if it's not documented :-P

Referenced by ecore_cocoa_terminate_cb_set(), ecore_cocoa_window_cursor_set(), ecore_cocoa_window_cursor_show(), ecore_cocoa_window_get(), ecore_cocoa_window_view_set(), eina_array_count(), eina_array_find(), eina_binbuf_length_get(), eina_binbuf_release(), eina_binbuf_rw_slice_get(), eina_binbuf_slice_get(), eina_binbuf_string_free(), eina_binbuf_string_steal(), eina_hash_crc(), eina_hash_djb2(), eina_hash_djb2_len(), eina_hash_int32(), eina_hash_int64(), eina_hash_murmur3(), eina_inlist_last(), eina_log_print(), eina_mempool_calloc(), eina_mempool_free(), eina_mempool_from(), eina_mempool_iterator_new(), eina_mempool_malloc(), eina_mempool_realloc(), eina_rectangle_coords_from(), eina_rectangle_coords_inside(), eina_rectangle_height_cut(), eina_rectangle_intersection(), eina_rectangle_is_valid(), eina_rectangle_max_x(), eina_rectangle_max_y(), eina_rectangle_rescale_in(), eina_rectangle_rescale_out(), eina_rectangle_subtract(), eina_rectangle_union(), eina_rectangle_width_cut(), eina_rectangle_x_cut(), eina_rectangle_xcoord_inside(), eina_rectangle_y_cut(), eina_rectangle_ycoord_inside(), eina_rectangles_intersect(), eina_strbuf_append_printf(), eina_strbuf_insert(), eina_strbuf_insert_char(), eina_strbuf_insert_escaped(), eina_strbuf_insert_length(), eina_strbuf_insert_n(), eina_strbuf_insert_printf(), eina_strbuf_insert_slice(), eina_strbuf_length_get(), eina_strbuf_string_free(), eina_strbuf_string_steal(), eina_stringshare_nprintf(), eina_unicode_utf8_next_get(), eina_ustrbuf_length_get(), eina_ustrbuf_release(), eina_ustrbuf_rw_slice_get(), eina_ustrbuf_slice_get(), eina_ustrbuf_string_free(), eina_ustrbuf_string_steal(), eina_value_array_append(), eina_value_array_get(), eina_value_array_insert(), eina_value_array_pappend(), eina_value_array_pget(), eina_value_array_pinsert(), eina_value_array_pset(), eina_value_array_set(), eina_value_array_value_get(), eina_value_array_vappend(), eina_value_array_vget(), eina_value_array_vinsert(), eina_value_array_vset(), eina_value_compare(), eina_value_flush(), eina_value_get(), eina_value_hash_get(), eina_value_hash_pget(), eina_value_hash_pset(), eina_value_hash_set(), eina_value_hash_vget(), eina_value_hash_vset(), eina_value_list_append(), eina_value_list_get(), eina_value_list_insert(), eina_value_list_pappend(), eina_value_list_pget(), eina_value_list_pinsert(), eina_value_list_pset(), eina_value_list_set(), eina_value_list_vappend(), eina_value_list_vget(), eina_value_list_vinsert(), eina_value_list_vset(), eina_value_optional_empty_is(), eina_value_optional_new(), eina_value_optional_pget(), eina_value_optional_pset(), eina_value_optional_reset(), eina_value_optional_type_get(), eina_value_pget(), eina_value_pset(), eina_value_set(), eina_value_setup(), eina_value_struct_get(), eina_value_struct_member_value_get(), eina_value_struct_member_value_set(), eina_value_struct_pget(), eina_value_struct_pset(), eina_value_struct_set(), eina_value_struct_value_get(), eina_value_struct_value_set(), eina_value_struct_vget(), eina_value_struct_vset(), eina_value_type_get(), eina_value_vget(), eina_value_vset(), and evas_vg_shape_stroke_fill_get().

## EINA_PRINTF

#define EINA_PRINTF | ( |  | fmt,
|  |  | arg )

Indicates that this function accepts a printf-style format string.

This allows some compilers to perform additional checks on the parameters passed to the function.

Parameters

  [in] | fmt | The 1-based index of the parameter specifying the format string.
  [in] | arg | The 1-based index of the first data parameter.

Referenced by eina_log_print(), eina_strbuf_append_printf(), eina_strbuf_insert_printf(), eina_stringshare_nprintf(), and eina_stringshare_printf().

## EINA_SCANF

#define EINA_SCANF | ( |  | fmt,
|  |  | arg )

Indicates that this function accepts a scanf-style format string.

This allows some compilers to perform additional checks on the parameters passed to the function.

Parameters

  [in] | fmt | The 1-based index of the parameter specifying the format string.
  [in] | arg | The 1-based index of the first data parameter.

## EINA_FORMAT

#define EINA_FORMAT | ( |  | fmt | ) |

Indicates that the output of this function can be used as a format string in printf-style functions.

Some compilers will check that the return value of this function is consistent with the `fmt` parameter.

Parameters

  [in] | fmt | The 1-based index of the parameter specifying the format string.

## EINA_UNLIKELY

#define EINA_UNLIKELY | ( |  | exp | ) |

Value:
(exp)

Indicates that the expression is likely to be `FALSE`.

Some compilers and processor architectures can then optimize the more likely path.

Parameters

  [in] | exp | The expression to be used.

Referenced by ecore_time_get(), eina_file_direct_ls(), eina_file_ls(), eina_file_stat_ls(), eina_inlist_remove(), eina_log_level_name_get(), eina_log_timing(), eina_log_vprint(), eina_mempool_alignof(), eina_sched_prio_drop(), eina_shutdown(), eina_strbuf_replace(), eina_strbuf_replace_all(), eina_strbuf_replace_last(), evas_object_size_hint_display_mode_set(), and evas_object_size_hint_request_set().

## EINA_LIKELY

#define EINA_LIKELY | ( |  | exp | ) |

Value:
(exp)

Indicates that the expression is likely to be `TRUE`.

Some compilers and processor architectures can then optimize the more likely path.

Parameters

  [in] | exp | The expression to be used.

Referenced by ector_init(), ector_shutdown(), eina_init(), eina_log_domain_level_check(), eina_log_level_set(), and eina_log_print_cb_journald().

## EINA_SENTINEL

#define EINA_SENTINEL

Attribute from gcc to prevent calls without the necessary NULL sentinel in certain variadic functions.

Since
  1.7

## EINA_FALLTHROUGH

#define EINA_FALLTHROUGH

Attribute from gcc to prevent warning and indicate that we expect to actually go to the next switch statement.

Since
  1.20

Referenced by edje_edit_part_source_set(), and eet_node_del().

## EINA_PREFETCH

#define EINA_PREFETCH | ( |  | arg | ) |

Hints that the pointer `arg` needs to be pre-fetched into cache.

This hints to the compiler to probably issue a prefetch command for the memory address `arg` and ensure it goes into all levels of cache. For just writing to an address look at EINA_PREFETCH_WRITE().

Note that the pointer `arg` does not have to be a valid pointer and will not cause any exceptions (like segfaults) if it is invalid.

Since
  1.19

## EINA_PREFETCH_WRITE

#define EINA_PREFETCH_WRITE | ( |  | arg | ) |

Hints that the pointer `arg` needs to be pre-fetched into cache.

This hints to the compiler to probably issue a prefetch command for the memory address `arg` and ensure it goes into all levels of cache. This specifically indicates that the address is going to be written to as opposed to being read from as with EINA_PREFETCH().

Note that the pointer `arg` does not have to be a valid pointer and will not cause any exceptions (like segfaults) if it is invalid.

Since
  1.19

## EINA_PREFETCH_NOCACHE

#define EINA_PREFETCH_NOCACHE | ( |  | arg | ) |

Hints that the pointer `arg` needs to be pre-fetched into cache.

This hints to the compiler to probably issue a prefetch command for the memory address `arg` and ensure it goes into just the closest(l1) cache. For just writing to an address look at EINA_PREFETCH_WRITE_NOCACHE().

Note that the pointer `arg` does not have to be a valid pointer and will not cause any exceptions (like segfaults) if it is invalid.

Since
  1.19

## EINA_PREFETCH_NOCACHE_WRITE

#define EINA_PREFETCH_NOCACHE_WRITE | ( |  | arg | ) |

Hints that the pointer `arg` needs to be pre-fetched into cache.

This hints to the compiler to probably issue a prefetch command for the memory address `arg` and ensure it goes into just the closest(l1) cache. This specifically indicates that the address is going to be written to as opposed to being read from as with EINA_PREFETCH_NOCACHE(). Note that the pointer `arg` does not have to be a valid pointer and will not cause any exceptions (like segfaults) if it is invalid.

Since
  1.19

## EINA_COMPARE_CB

#define EINA_COMPARE_CB | ( |  | function | ) |

Value:
((Eina_Compare_Cb)function)
Eina_Compare_Cb
int(* Eina_Compare_Cb)(const void *data1, const void *data2)
Function used in functions using sorting.
Definition eina_types.h:548

Macro to cast to Eina_Compare_Cb.

Referenced by ecore_file_ls(), efreet_desktop_category_add(), efreet_desktop_category_del(), efreet_menu_desktop_remove(), elm_theme_color_class_list(), elm_theme_group_base_list(), and elm_theme_name_available_list_new().

## EINA_RANDOM_CB

#define EINA_RANDOM_CB | ( |  | function | ) |

Value:
((Eina_Random_Cb)function)
Eina_Random_Cb
int(* Eina_Random_Cb)(const int min, const int max)
Function used in shuffling functions.
Definition eina_types.h:563

Macro to cast to Eina_Random_Cb.

## EINA_PROCESS_CB

#define EINA_PROCESS_CB | ( |  | Function | ) |

Value:
((Eina_Process_Cb)Function)
Eina_Process_Cb
void *(* Eina_Process_Cb)(const void *container, void *data, void *fdata)
Method that processes some data and returns new data.
Definition eina_types.h:580

Macro to cast to Eina_Process.

## EINA_EACH_CB

#define EINA_EACH_CB | ( |  | Function | ) |

Value:
((Eina_Each_Cb)Function)
Eina_Each_Cb
Eina_Bool(* Eina_Each_Cb)(const void *container, void *data, void *fdata)
A callback type used when iterating over a container.
Definition eina_types.h:591

Macro to cast to Eina_Each.

Referenced by eina_hash_foreach().

## EINA_FREE_CB

#define EINA_FREE_CB | ( |  | Function | ) |

Value:
((Eina_Free_Cb)Function)
Eina_Free_Cb
void(* Eina_Free_Cb)(void *data)
A callback type used to free data when iterating over a container.
Definition eina_types.h:603

Macro to cast to Eina_Free_Cb.

Referenced by ecore_imf_module_register(), efreet_desktop_x_field_set(), efreet_mime_type_cache_clear(), eina_file_open(), eina_file_open(), eina_file_virtualize(), and elm_theme_flush().

## EINA_C_ARRAY_LENGTH

#define EINA_C_ARRAY_LENGTH | ( |  | arr | ) |

Value:
(sizeof(arr) / sizeof((arr)[0]))

Macro to return the array length of a standard c array.

For example: int foo[] = { 0, 1, 2, 3 }; would return 4 and not 4 * sizeof(int).

Since
  1.2.0

Examples
  complex-types-server.c, eina_value_02.c, and ephysics_logo.c.

## EINA_DOUBLE_EQUAL

#define EINA_DOUBLE_EQUAL | ( |  | x,
|  |  | y )

Value:
(fabs((x) - (y)) <= (2.2204460492503131e-16) * fabs((x)))

Macro to compare 2 double floating point values and deal with precision loss issues.

Since
  1.18

## Typedef Documentation

## Eina_Bool

typedef unsigned char Eina_Bool

Type to mimic a boolean.

Note
  it differs from stdbool.h as this is defined as an unsigned char to make it usable by bitfields (Eina_Bool name:1) and also take as few bytes as possible.

Examples
  banshee.c, calendar_example_05.c, check_example_01.c, client.c, codegen_example.c, combobox_example_01.c, complex-types-client-eina-value.c, complex-types-server.c, complex-types.c, dayselector_example.c, ecore_animator_example.c, ecore_con_client_example.c, ecore_con_client_simple_example.c, ecore_con_server_example.c, ecore_con_server_simple_example.c, ecore_con_url_cookies_example.c, ecore_con_url_download_example.c, ecore_con_url_headers_example.c, ecore_evas_basics_example.c, ecore_evas_object_example.c, ecore_evas_window_sizes_example.c, ecore_event_example_01.c, ecore_event_example_02.c, ecore_exe_example.c, ecore_exe_example_child.c, ecore_fd_handler_example.c, ecore_idler_example.c, ecore_imf_example.c, ecore_poller_example.c, ecore_thread_example.c, ecore_time_functions_example.c, ecore_timer_example.c, edje-box.c, edje-color-class.c, edje-perspective.c, edje-signals-messages.c, eet-data-file_descriptor_01.c, eet-data-file_descriptor_02.c, eet-data-nested.c, eet-data-simple.c, efl_thread_6.c, eina_array_01.c, eina_array_02.c, eina_hash_01.c, eina_hash_02.c, eina_hash_03.c, eina_hash_04.c, eina_hash_05.c, eina_hash_06.c, eina_hash_07.c, eina_hash_08.c, eina_iterator_01.c, eina_simple_xml_parser_01.c, eina_tiler_01.c, eina_value_03.c, eio_file_ls.c, emotion_test_main.c, entry_example.c, evas-aspect-hints.c, evas-box.c, evas-events.c, evas-images.c, evas-images2.c, evas-map-utils.c, evas-smart-interface.c, evas-smart-object.c, evas-stacking.c, fileselector_button_example.c, fileselector_entry_example.c, fileselector_example.c, flipselector_example.c, general_funcs_example.c, gengrid_example.c, genlist_example_02.c, genlist_example_05.c, glview_example_01.c, hoversel_example_01.c, index_example_01.c, inwin_example.c, layout_example_03.c, map_example_01.c, map_example_02.c, map_example_03.c, prefs_data_example.c, prefs_example_01.c, prefs_example_02.c, prefs_example_03.c, progressbar_example.c, server.c, test_bouncing_ball.c, test_camera.c, test_camera_track.c, test_growing_balls.c, test_rotating_forever.c, test_velocity.c, track_example_01.c, transit_example_03.c, transit_example_04.c, web_example_02.c, and win_example.c.

## Eina_Compare_Cb

typedef int(* Eina_Compare_Cb) (const void *data1, const void *data2)

Function used in functions using sorting.

It compares `data1` and `data2`. If `data1` is 'less' than `data2`, -1 must be returned, if it is 'greater', 1 must be returned, and if they are equal, 0 must be returned.

Examples
  eina_list_02.c.

## Eina_Random_Cb

typedef int(* Eina_Random_Cb) (const int min, const int max)

Function used in shuffling functions.

An integer between min and max inclusive must be returned.

Since
  1.8

## Eina_Process_Cb

typedef void *(* Eina_Process_Cb) (const void *container, void *data, void *fdata)

Method that processes some data and returns new data.

It's meant to be used as a callback to process all nodes inside a container (See eina_iterator_processed_new, for example.)

Parameters

  data | The data to process.
  fdata | Context data.

Returns
  The processed data.