![]() |
Helixis 1.0
Task Programming API
|
#include "slist_internal.h"
Go to the source code of this file.
Functions | |
void | slist_delete (struct slist_state *ss) |
void | slist_delete_all_elements (struct slist_state *ss) |
Variables | |
hlx_api | gl_api |
void slist_delete | ( | struct slist_state * | ss | ) |
Definition at line 6 of file slist_delete.c.
References hlx_api::aligned_free_entry, and slist_delete_all_elements().
Referenced by _destroy_channel_manager(), and hlx_event_manager_destroy().
{ slist_delete_all_elements( ss ); gl_api.aligned_free_entry( ss ); return; }
void slist_delete_all_elements | ( | struct slist_state * | ss | ) |
Definition at line 15 of file slist_delete.c.
References hlx_api::aligned_free_entry, slist_state::head, slist_element::next, slist_internal_init_slist(), SLIST_USER_DATA, slist_element::user_data_and_flags, slist_state::user_data_delete_function, and slist_state::user_state.
Referenced by _hlx_event_handler_destroy(), and slist_delete().
{ struct slist_element *volatile se, *volatile se_temp; se = ss->head; while( se != 0 ) { /* TRD : if a non-deleted element and there is a delete function, call the delete function */ if( ss->user_data_delete_function != 0 ) ss->user_data_delete_function( (void *) se->user_data_and_flags[SLIST_USER_DATA], ss->user_state ); se_temp = se; se = se->next; gl_api.aligned_free_entry( (void *) se_temp ); } slist_internal_init_slist( ss, ss->user_data_delete_function, ss->user_state ); return; }