|
Soletta™ Framework
|
These are routines that Soletta provides for its memory description (memdesc) implementation. More...
#include <errno.h>#include <stdbool.h>#include <stdint.h>#include <stdlib.h>#include <limits.h>#include <sol-common-buildopts.h>#include <sol-str-slice.h>#include <sol-str-table.h>#include <sol-macros.h>#include <sol-buffer.h>Go to the source code of this file.
Data Structures | |
| struct | sol_memdesc |
| Data type to describe a memory region. More... | |
| struct | sol_memdesc_ops |
| override operations to be used in this memory description. More... | |
| struct | sol_memdesc_ops_array |
| Operations specific to SOL_MEMDESC_TYPE_ARRAY. More... | |
| struct | sol_memdesc_ops_enumeration |
| Operations specific to SOL_MEMDESC_TYPE_ENUMERATION. More... | |
| struct | sol_memdesc_serialize_options |
| Options on how to serialize a memory given its description. More... | |
| struct | sol_memdesc_structure_member |
| Description of a structure member. More... | |
Macros | |
| #define | _SOL_MEMDESC_CHECK(desc) ((desc) && _SOL_MEMDESC_CHECK_API_VERSION(desc) && (desc)->type != SOL_MEMDESC_TYPE_UNKNOWN) |
| Helper to check for a valid struct sol_memdesc. More... | |
| #define | _SOL_MEMDESC_CHECK_API_VERSION(desc) ((desc)->api_version == SOL_MEMDESC_API_VERSION_COMPILED) |
| Helper to check api-version if needed. More... | |
| #define | _SOL_MEMDESC_CHECK_STRUCTURE(structure_desc) (_SOL_MEMDESC_CHECK(structure_desc) && (structure_desc)->structure_members && _SOL_MEMDESC_CHECK(&((structure_desc)->structure_members->base))) |
| Helper to check for a valid struct sol_memdesc of type SOL_MEMDESC_TYPE_STRUCTURE. More... | |
| #define | _SOL_MEMDESC_CHECK_STRUCTURE_MEMBER(structure_desc, member_desc) |
| Helper to check for a valid struct sol_memdesc of type SOL_MEMDESC_TYPE_STRUCTURE and if member is within structure boundaries. More... | |
| #define | SOL_MEMDESC_API_VERSION (1) |
| API version to use in struct sol_memdesc::api_version. More... | |
| #define | SOL_MEMDESC_DESCRIPTION |
| This is selected at compile time to allow reducing binary size if this cpp symbol is undefined. More... | |
| #define | SOL_MEMDESC_FOREACH_ARRAY_ELEMENT_IN_RANGE(desc, memory, start_idx, end_idx, itr_idx, element) |
| Macro to loop of array elements in a given range. More... | |
| #define | SOL_MEMDESC_FOREACH_STRUCTURE_MEMBER(structure_desc, member_desc) |
| Macro to loop over all structure members. More... | |
| #define | SOL_MEMDESC_FOREACH_STRUCTURE_MEMBER_MEMORY(structure_desc, member_desc, structure_memory, member_memory) |
| Macro to loop over all structure members and associated memory. More... | |
| #define | SOL_MEMDESC_OPS_API_VERSION (1) |
| API version to use in struct sol_memdesc_ops::api_version. More... | |
| #define | SOL_MEMDESC_OPS_ARRAY_API_VERSION (1) |
| API version to use in struct sol_memdesc_ops_array::api_version. More... | |
| #define | SOL_MEMDESC_OPS_ENUMERATION_API_VERSION (1) |
| API version to use in struct sol_memdesc_ops_enumeration::api_version. More... | |
| #define | SOL_MEMDESC_SERIALIZE_OPTIONS_API_VERSION (1) |
| API version to use in struct sol_memdesc_serialize_options::api_version. More... | |
| #define | SOL_MEMDESC_SET_DESCRIPTION(...) |
| Helper to set the description member of struct sol_memdesc if that is available (conditional to SOL_MEMDESC_SET_DESCRIPTION). More... | |
Typedefs | |
| typedef struct sol_memdesc | sol_memdesc |
| Data type to describe a memory region. More... | |
| typedef struct sol_memdesc_ops | sol_memdesc_ops |
| override operations to be used in this memory description. More... | |
| typedef struct sol_memdesc_ops_array | sol_memdesc_ops_array |
| Operations specific to SOL_MEMDESC_TYPE_ARRAY. More... | |
| typedef struct sol_memdesc_ops_enumeration | sol_memdesc_ops_enumeration |
| Operations specific to SOL_MEMDESC_TYPE_ENUMERATION. More... | |
| typedef struct sol_memdesc_serialize_options | sol_memdesc_serialize_options |
| Options on how to serialize a memory given its description. More... | |
| typedef struct sol_memdesc_structure_member | sol_memdesc_structure_member |
| Description of a structure member. More... | |
Functions | |
| static int | sol_memdesc_append_array_element (const struct sol_memdesc *array_desc, void *memory, const void *ptr_content) |
| Append the array element. More... | |
| int | sol_memdesc_compare (const struct sol_memdesc *desc, const void *a_memory, const void *b_memory) |
| compare two memories using the given description. More... | |
| int | sol_memdesc_copy (const struct sol_memdesc *desc, const void *src_memory, void *dst_memory) |
| copy the memory using the given description. More... | |
| int | sol_memdesc_enumeration_from_str (const struct sol_memdesc *enumeration, void *ptr_return, const struct sol_str_slice str) |
| convert enumeration value from string. More... | |
| const char * | sol_memdesc_enumeration_to_str (const struct sol_memdesc *enumeration, const void *memory) |
| convert enumeration value to string. More... | |
| static const struct sol_memdesc_structure_member * | sol_memdesc_find_structure_member (const struct sol_memdesc *structure_desc, struct sol_str_slice name) |
| Find structure member given its name. More... | |
| static void | sol_memdesc_free (const struct sol_memdesc *desc, void *memory) |
| Free the contents and the memory. More... | |
| int | sol_memdesc_free_content (const struct sol_memdesc *desc, void *memory) |
| free the contents (internal memory) of a member. More... | |
| void * | sol_memdesc_get_array_element (const struct sol_memdesc *array_desc, const void *memory, size_t idx) |
| Get the array element. More... | |
| ssize_t | sol_memdesc_get_array_length (const struct sol_memdesc *array_desc, const void *memory) |
| Get the length of an array. More... | |
| static int64_t | sol_memdesc_get_as_int64 (const struct sol_memdesc *desc, const void *memory) |
| Helper to fetch the memory as the largest supported signed integer. More... | |
| static uint64_t | sol_memdesc_get_as_uint64 (const struct sol_memdesc *desc, const void *memory) |
| Helper to fetch the memory as the largest supported unsigned integer. More... | |
| static uint16_t | sol_memdesc_get_size (const struct sol_memdesc *desc) |
| get the size in bytes of the memory description. More... | |
| static void * | sol_memdesc_get_structure_member_memory (const struct sol_memdesc *structure_desc, const struct sol_memdesc_structure_member *member_desc, const void *structure_memory) |
| get the pointer to the struct member memory description inside the given container. More... | |
| int | sol_memdesc_init_defaults (const struct sol_memdesc *desc, void *memory) |
| initialize the memory. More... | |
| static bool | sol_memdesc_is_signed_integer (const struct sol_memdesc *desc) |
| Helper to check if type is signed integer-compatible. More... | |
| static bool | sol_memdesc_is_unsigned_integer (const struct sol_memdesc *desc) |
| Helper to check if type is unsigned integer-compatible. More... | |
| static void * | sol_memdesc_new_with_defaults (const struct sol_memdesc *desc) |
| Allocate the memory required by this description and initialize it. More... | |
| int | sol_memdesc_resize_array (const struct sol_memdesc *array_desc, void *memory, size_t length) |
| Resize the length of an array. More... | |
| int | sol_memdesc_serialize (const struct sol_memdesc *desc, const void *memory, struct sol_buffer *buffer, const struct sol_memdesc_serialize_options *opts, struct sol_buffer *prefix) |
| Serialize a memory to a buffer using a description. More... | |
| static int64_t | sol_memdesc_set_as_int64 (const struct sol_memdesc *desc, void *memory, int64_t value) |
| Helper to set the memory as the largest supported signed integer. More... | |
| static int | sol_memdesc_set_as_uint64 (const struct sol_memdesc *desc, void *memory, uint64_t value) |
| Helper to set the memory as the largest supported unsigned integer. More... | |
| int | sol_memdesc_set_content (const struct sol_memdesc *desc, void *memory, const void *ptr_content) |
| set the content of this memory. More... | |
| enum sol_memdesc_type | sol_memdesc_type_from_str (const char *str) |
| Converts a Memdesc Type from string to sol_memdesc_type. More... | |
| const char * | sol_memdesc_type_to_str (enum sol_memdesc_type type) |
| Converts a sol_memdesc_type to a string. More... | |
Variables | |
| const uint16_t | SOL_MEMDESC_API_VERSION_COMPILED |
| the SOL_MEMDESC_API_VERSION this soletta build used. More... | |
| const struct sol_memdesc_ops | SOL_MEMDESC_OPS_PTR_VECTOR |
| operations to handle struct sol_ptr_vector. More... | |
| const struct sol_memdesc_ops | SOL_MEMDESC_OPS_VECTOR |
| operations to handle struct sol_vector. More... | |
| const struct sol_memdesc_serialize_options | SOL_MEMDESC_SERIALIZE_OPTIONS_DEFAULT |
| the default struct sol_memdesc_serialize_options. More... | |
These are routines that Soletta provides for its memory description (memdesc) implementation.
| #define SOL_MEMDESC_API_VERSION (1) |
API version to use in struct sol_memdesc::api_version.
| #define SOL_MEMDESC_OPS_API_VERSION (1) |
API version to use in struct sol_memdesc_ops::api_version.
| #define SOL_MEMDESC_OPS_ARRAY_API_VERSION (1) |
API version to use in struct sol_memdesc_ops_array::api_version.
| #define SOL_MEMDESC_OPS_ENUMERATION_API_VERSION (1) |
API version to use in struct sol_memdesc_ops_enumeration::api_version.
| #define SOL_MEMDESC_SERIALIZE_OPTIONS_API_VERSION (1) |
API version to use in struct sol_memdesc_serialize_options::api_version.
1.8.6