function lfds700_list_asu_insert_at_position

From liblfds.org
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).

See Also