|
caffeine-sal 0.1.17
Header-only polymorphic middleware services layer for the Caffeine Framework
|
Unified polymorphic interface for data collections (Ring Buffers, Lists, Queues). More...
#include "cfn_sal.h"Go to the source code of this file.
Data Structures | |
| struct | cfn_sal_utl_collection_config_t |
| Collection configuration (e.g. item size). More... | |
| struct | cfn_sal_utl_collection_api_s |
| Collection Virtual Method Table (VMT). More... | |
Macros | |
| #define | CFN_SAL_UTL_TYPE_COLLECTION CFN_SAL_TYPE('C', 'O', 'L') |
| FourCC type for Collections. | |
Typedefs | |
| typedef struct cfn_sal_utl_collection_s | cfn_sal_utl_collection_t |
| typedef struct cfn_sal_utl_collection_api_s | cfn_sal_utl_collection_api_t |
| typedef void(* | cfn_sal_utl_collection_callback_t) (cfn_sal_utl_collection_t *driver, uint32_t event_mask, uint32_t error_mask, void *user_arg) |
| Collection callback signature. | |
Functions | |
| CFN_HAL_VMT_CHECK (struct cfn_sal_utl_collection_api_s) | |
| CFN_SAL_CREATE_DRIVER_TYPE (sal_utl_collection, cfn_sal_utl_collection_config_t, cfn_sal_utl_collection_api_t, cfn_sal_phy_t, cfn_sal_utl_collection_callback_t) | |
| CFN_HAL_INLINE void | cfn_sal_utl_collection_populate (cfn_sal_utl_collection_t *driver, uint32_t peripheral_id, void *dependency, const cfn_sal_utl_collection_api_t *api, const cfn_sal_phy_t *phy, const cfn_sal_utl_collection_config_t *config, cfn_sal_utl_collection_callback_t callback, void *user_arg) |
| cfn_hal_error_code_t | cfn_sal_utl_collection_construct (cfn_sal_utl_collection_t *driver, const cfn_sal_utl_collection_config_t *config, const cfn_sal_phy_t *phy, void *dependency, cfn_sal_utl_collection_callback_t callback, void *user_arg) |
| cfn_hal_error_code_t | cfn_sal_utl_collection_destruct (cfn_sal_utl_collection_t *driver) |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_init (cfn_sal_utl_collection_t *driver) |
| Initializes the collection. | |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_deinit (cfn_sal_utl_collection_t *driver) |
| Deinitializes the collection. | |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_config_set (cfn_sal_utl_collection_t *driver, const cfn_sal_utl_collection_config_t *config) |
| Sets the collection configuration. | |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_config_get (cfn_sal_utl_collection_t *driver, cfn_sal_utl_collection_config_t *config) |
| Gets the current collection configuration. | |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_callback_register (cfn_sal_utl_collection_t *driver, cfn_sal_utl_collection_callback_t callback, void *user_arg) |
| Registers a callback for collection events and errors. | |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_power_state_set (cfn_sal_utl_collection_t *driver, cfn_hal_power_state_t state) |
| Sets the collection power state. | |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_event_enable (cfn_sal_utl_collection_t *driver, uint32_t event_mask) |
| Enables one or more collection nominal events. | |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_event_disable (cfn_sal_utl_collection_t *driver, uint32_t event_mask) |
| Disables one or more collection nominal events. | |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_event_get (cfn_sal_utl_collection_t *driver, uint32_t *event_mask) |
| Retrieves the current collection nominal event status. | |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_error_enable (cfn_sal_utl_collection_t *driver, uint32_t error_mask) |
| Enables one or more collection exception errors. | |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_error_disable (cfn_sal_utl_collection_t *driver, uint32_t error_mask) |
| Disables one or more collection exception errors. | |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_error_get (cfn_sal_utl_collection_t *driver, uint32_t *error_mask) |
| Retrieves the current collection exception error status. | |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_push_back (cfn_sal_utl_collection_t *driver, const void *item) |
| Adds an item to the end of the collection. | |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_push_front (cfn_sal_utl_collection_t *driver, const void *item) |
| Adds an item to the front of the collection. | |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_insert_at (cfn_sal_utl_collection_t *driver, size_t index, const void *item) |
| Inserts an item at a specific index. | |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_pop_back (cfn_sal_utl_collection_t *driver, void *item_out) |
| Removes and retrieves an item from the back. | |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_pop_front (cfn_sal_utl_collection_t *driver, void *item_out) |
| Removes and retrieves an item from the front. | |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_remove_at (cfn_sal_utl_collection_t *driver, size_t index, void *item_out) |
| Removes and retrieves an item at a specific index. | |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_peek_back (cfn_sal_utl_collection_t *driver, void *item_out) |
| Peeks at an item from the back. | |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_peek_front (cfn_sal_utl_collection_t *driver, void *item_out) |
| Peeks at an item from the front. | |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_peek_at (cfn_sal_utl_collection_t *driver, size_t index, void *item_out) |
| Peeks at an item at a specific index. | |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_get_size (cfn_sal_utl_collection_t *driver, size_t *size_out) |
| Retrieves the current number of items. | |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_get_capacity (cfn_sal_utl_collection_t *driver, size_t *capacity_out) |
| Retrieves the capacity of the collection. | |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_is_empty (cfn_sal_utl_collection_t *driver, bool *is_empty_out) |
| Checks if the collection is empty. | |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_is_full (cfn_sal_utl_collection_t *driver, bool *is_full_out) |
| Checks if the collection is full. | |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_clear (cfn_sal_utl_collection_t *driver) |
| Clears all items from the collection. | |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_find (cfn_sal_utl_collection_t *driver, const void *item, size_t *index_out) |
| Finds an item in the collection and retrieves its index. | |
| CFN_HAL_INLINE cfn_hal_error_code_t | cfn_sal_utl_collection_sort (cfn_sal_utl_collection_t *driver, void *compare_func) |
| Sorts the collection using the provided comparison function. | |
Unified polymorphic interface for data collections (Ring Buffers, Lists, Queues).
| #define CFN_SAL_UTL_TYPE_COLLECTION CFN_SAL_TYPE('C', 'O', 'L') |
FourCC type for Collections.
| typedef struct cfn_sal_utl_collection_api_s cfn_sal_utl_collection_api_t |
| typedef void(* cfn_sal_utl_collection_callback_t) (cfn_sal_utl_collection_t *driver, uint32_t event_mask, uint32_t error_mask, void *user_arg) |
Collection callback signature.
| typedef struct cfn_sal_utl_collection_s cfn_sal_utl_collection_t |
| CFN_HAL_VMT_CHECK | ( | struct cfn_sal_utl_collection_api_s | ) |
| CFN_SAL_CREATE_DRIVER_TYPE | ( | sal_utl_collection | , |
| cfn_sal_utl_collection_config_t | , | ||
| cfn_sal_utl_collection_api_t | , | ||
| cfn_sal_phy_t | , | ||
| cfn_sal_utl_collection_callback_t | |||
| ) |
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_callback_register | ( | cfn_sal_utl_collection_t * | driver, |
| cfn_sal_utl_collection_callback_t | callback, | ||
| void * | user_arg | ||
| ) |
Registers a callback for collection events and errors.
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_clear | ( | cfn_sal_utl_collection_t * | driver | ) |
Clears all items from the collection.
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_config_get | ( | cfn_sal_utl_collection_t * | driver, |
| cfn_sal_utl_collection_config_t * | config | ||
| ) |
Gets the current collection configuration.
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_config_set | ( | cfn_sal_utl_collection_t * | driver, |
| const cfn_sal_utl_collection_config_t * | config | ||
| ) |
Sets the collection configuration.
| cfn_hal_error_code_t cfn_sal_utl_collection_construct | ( | cfn_sal_utl_collection_t * | driver, |
| const cfn_sal_utl_collection_config_t * | config, | ||
| const cfn_sal_phy_t * | phy, | ||
| void * | dependency, | ||
| cfn_sal_utl_collection_callback_t | callback, | ||
| void * | user_arg | ||
| ) |
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_deinit | ( | cfn_sal_utl_collection_t * | driver | ) |
Deinitializes the collection.
| cfn_hal_error_code_t cfn_sal_utl_collection_destruct | ( | cfn_sal_utl_collection_t * | driver | ) |
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_error_disable | ( | cfn_sal_utl_collection_t * | driver, |
| uint32_t | error_mask | ||
| ) |
Disables one or more collection exception errors.
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_error_enable | ( | cfn_sal_utl_collection_t * | driver, |
| uint32_t | error_mask | ||
| ) |
Enables one or more collection exception errors.
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_error_get | ( | cfn_sal_utl_collection_t * | driver, |
| uint32_t * | error_mask | ||
| ) |
Retrieves the current collection exception error status.
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_event_disable | ( | cfn_sal_utl_collection_t * | driver, |
| uint32_t | event_mask | ||
| ) |
Disables one or more collection nominal events.
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_event_enable | ( | cfn_sal_utl_collection_t * | driver, |
| uint32_t | event_mask | ||
| ) |
Enables one or more collection nominal events.
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_event_get | ( | cfn_sal_utl_collection_t * | driver, |
| uint32_t * | event_mask | ||
| ) |
Retrieves the current collection nominal event status.
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_find | ( | cfn_sal_utl_collection_t * | driver, |
| const void * | item, | ||
| size_t * | index_out | ||
| ) |
Finds an item in the collection and retrieves its index.
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_get_capacity | ( | cfn_sal_utl_collection_t * | driver, |
| size_t * | capacity_out | ||
| ) |
Retrieves the capacity of the collection.
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_get_size | ( | cfn_sal_utl_collection_t * | driver, |
| size_t * | size_out | ||
| ) |
Retrieves the current number of items.
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_init | ( | cfn_sal_utl_collection_t * | driver | ) |
Initializes the collection.
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_insert_at | ( | cfn_sal_utl_collection_t * | driver, |
| size_t | index, | ||
| const void * | item | ||
| ) |
Inserts an item at a specific index.
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_is_empty | ( | cfn_sal_utl_collection_t * | driver, |
| bool * | is_empty_out | ||
| ) |
Checks if the collection is empty.
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_is_full | ( | cfn_sal_utl_collection_t * | driver, |
| bool * | is_full_out | ||
| ) |
Checks if the collection is full.
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_peek_at | ( | cfn_sal_utl_collection_t * | driver, |
| size_t | index, | ||
| void * | item_out | ||
| ) |
Peeks at an item at a specific index.
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_peek_back | ( | cfn_sal_utl_collection_t * | driver, |
| void * | item_out | ||
| ) |
Peeks at an item from the back.
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_peek_front | ( | cfn_sal_utl_collection_t * | driver, |
| void * | item_out | ||
| ) |
Peeks at an item from the front.
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_pop_back | ( | cfn_sal_utl_collection_t * | driver, |
| void * | item_out | ||
| ) |
Removes and retrieves an item from the back.
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_pop_front | ( | cfn_sal_utl_collection_t * | driver, |
| void * | item_out | ||
| ) |
Removes and retrieves an item from the front.
| CFN_HAL_INLINE void cfn_sal_utl_collection_populate | ( | cfn_sal_utl_collection_t * | driver, |
| uint32_t | peripheral_id, | ||
| void * | dependency, | ||
| const cfn_sal_utl_collection_api_t * | api, | ||
| const cfn_sal_phy_t * | phy, | ||
| const cfn_sal_utl_collection_config_t * | config, | ||
| cfn_sal_utl_collection_callback_t | callback, | ||
| void * | user_arg | ||
| ) |
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_power_state_set | ( | cfn_sal_utl_collection_t * | driver, |
| cfn_hal_power_state_t | state | ||
| ) |
Sets the collection power state.
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_push_back | ( | cfn_sal_utl_collection_t * | driver, |
| const void * | item | ||
| ) |
Adds an item to the end of the collection.
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_push_front | ( | cfn_sal_utl_collection_t * | driver, |
| const void * | item | ||
| ) |
Adds an item to the front of the collection.
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_remove_at | ( | cfn_sal_utl_collection_t * | driver, |
| size_t | index, | ||
| void * | item_out | ||
| ) |
Removes and retrieves an item at a specific index.
| CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_sort | ( | cfn_sal_utl_collection_t * | driver, |
| void * | compare_func | ||
| ) |
Sorts the collection using the provided comparison function.