function lfds700_list_asu_insert_at_position
Jump to navigation
Jump to search
Source Files
└───liblfds700 ├───inc │ └───liblfds700 │ lfds700_list_addonly_singlylinked_unordered.h └───src └───llfds700_list_addonly_singlylinked_unordered lfds700_list_addonly_singlylinked_unordered_insert.c
Opaque Structures
struct lfds700_list_asu_element; struct lfds700_list_asu_state; struct lfds700_misc_prng_state;
Prototype
void lfds700_list_asu_insert_at_position( struct lfds700_list_asu_state *lasus, struct lfds700_list_asu_element *lasue, struct lfds700_list_asu_element *lasue_predecessor, enum lfds700_list_asu_position position, struct lfds700_misc_prng_state *ps );
Parameters
struct lfds700_list_asu_state *lasus
- A pointer to an initialized struct lfds700_list_asu_state.
struct lfds700_list_asu_element *lasue
- A pointer a user-allocated LFDS700_PAL_ATOMIC_ISOLATION_IN_BYTES aligned struct lfds700_list_asu_element. Stack declared variables will automatically be correctly aligned by the compiler, due to the information in the structure definitions; nothing has to be done. Heap allocated variables however will by no means be correctly aligned and an aligned malloc must be used.
struct lfds700_list_asu_element *lasue_predecessor
- A pointer an element already in the list. This argument is only used if position is set to LFDS700_LIST_ASU_POSITION_AFTER.
enum lfds700_list_asu_position position
- Indictes which position to insert*lasue at.
struct lfds700_misc_prng_state *ps
- A pointer to an initialized struct lfds700_misc_prng_state.
Notes
This is a convenience function which wraps the functionality provided by lfds700_list_asu_insert_at_start, lfds700_list_asu_insert_at_end and lfds700_list_asu_insert_after into a single function where the desired behaviour is selected by means of the position argument.
So rather than having in your code to select which function to call, you can just select which enum value to use.
Example
Coming soon. No, really! (Written 29th Dec 2015).