]> pd.if.org Git - liblfds/blob - liblfds/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_init.c
Initial import (all versions, including the new 7.1.0)
[liblfds] / liblfds / liblfds7.0.0 / liblfds700 / src / lfds700_freelist / lfds700_freelist_init.c
1 /***** includes *****/
2 #include "lfds700_freelist_internal.h"
3
4
5
6
7
8 /****************************************************************************/
9 void lfds700_freelist_init_valid_on_current_logical_core( struct lfds700_freelist_state *fs, void *user_state )
10 {
11   LFDS700_PAL_ASSERT( fs != NULL );
12   LFDS700_PAL_ASSERT( (lfds700_pal_uint_t) fs->top % LFDS700_PAL_ATOMIC_ISOLATION_IN_BYTES == 0 );
13   LFDS700_PAL_ASSERT( (lfds700_pal_uint_t) &fs->user_state % LFDS700_PAL_ATOMIC_ISOLATION_IN_BYTES == 0 );
14   // TRD : user_state can be NULL
15
16   fs->top[POINTER] = NULL;
17   fs->top[COUNTER] = 0;
18
19   fs->user_state = user_state;
20
21   LFDS700_MISC_BARRIER_STORE;
22
23   lfds700_misc_force_store();
24
25   return;
26 }
27