2 #include "lfds710_list_addonly_singlylinked_unordered_internal.h"
8 /****************************************************************************/
9 void lfds710_list_asu_init_valid_on_current_logical_core( struct lfds710_list_asu_state *lasus,
12 LFDS710_PAL_ASSERT( lasus != NULL );
13 LFDS710_PAL_ASSERT( (lfds710_pal_uint_t) &lasus->dummy_element % LFDS710_PAL_ATOMIC_ISOLATION_IN_BYTES == 0 );
14 LFDS710_PAL_ASSERT( (lfds710_pal_uint_t) &lasus->end % LFDS710_PAL_ATOMIC_ISOLATION_IN_BYTES == 0 );
15 LFDS710_PAL_ASSERT( (lfds710_pal_uint_t) &lasus->start % LFDS710_PAL_ATOMIC_ISOLATION_IN_BYTES == 0 );
16 // TRD : user_state can be NULL
18 // TRD : dummy start element - makes code easier when you can always use ->next
19 lasus->start = lasus->end = &lasus->dummy_element;
21 lasus->start->next = NULL;
22 lasus->start->value = NULL;
23 lasus->user_state = user_state;
25 lfds710_misc_internal_backoff_init( &lasus->after_backoff );
26 lfds710_misc_internal_backoff_init( &lasus->start_backoff );
27 lfds710_misc_internal_backoff_init( &lasus->end_backoff );
29 LFDS710_MISC_BARRIER_STORE;
31 lfds710_misc_force_store();