Helixis 1.0
Task Programming API
Functions | Variables
sources/liblfds/slist/slist_delete.c File Reference
#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

Function Documentation

void slist_delete ( struct slist_state ss)
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;
}

Variable Documentation

Definition at line 42 of file api.c.

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines