r6.1.0:lfds610_abstraction (liblfds)

From liblfds.org
Revision as of 14:07, 4 January 2015 by Admin (talk | contribs) (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Source Files

/liblfds610/src/lfds610_abstraction/lfds610_abstraction_cas.c
/liblfds610/src/lfds610_abstraction/lfds610_abstraction_dcas.c
/liblfds610/src/lfds610_abstraction/lfds610_abstraction_free.c
/liblfds610/src/lfds610_abstraction/lfds610_abstraction_increment.c
/liblfds610/src/lfds610_abstraction/lfds610_abstraction_malloc.c
/liblfds610/src/liblfds610_internal.h
/liblfds610/inc/liblfds610.h

Prototypes

void lfds610_abstraction_free( void *memory );
void *lfds610_abstraction_malloc( size_t size, size_t align_in_bytes );
LFDS610_INLINE lfds610_atom_t lfds610_abstraction_cas( volatile lfds610_atom_t *destination, lfds610_atom_t exchange, lfds610_atom_t compare )
LFDS610_INLINE unsigned char lfds610_abstraction_dcas( volatile lfds610_atom_t *destination, lfds610_atom_t *exchange, lfds610_atom_t *compare );
LFDS610_INLINE lfds610_atom_t lfds610_abstraction_increment( volatile lfds610_atom_t *value );

Defines & Typedefs

typedef [type] lfds610_atom_t;

#define LFDS610_INLINE                   [compiler inline directive]
#define LFDS610_ALIGN(alignment)         [compiler stack alignment directive]
#define LFDS610_ALIGN_SINGLE_POINTER     [lfds610_atom_t size in bytes]
#define LFDS610_ALIGN_DOUBLE_POINTER     [lfds610_atom_t size in bytes, multiplied by two]
#define LFDS610_BARRIER_COMPILER_READ    [compiler read compiler barrier directive]
#define LFDS610_BARRIER_COMPILER_WRITE   [compiler write compiler barrier directive]
#define LFDS610_BARRIER_COMPILER_FULL    [compiler full compiler barrier directive]
#define LFDS610_BARRIER_PROCESSOR_READ   [compiler read processor barrier directive]
#define LFDS610_BARRIER_PROCESSOR_WRITE  [compiler write processor barrier directive]
#define LFDS610_BARRIER_PROCESSOR_FULL   [compiler full processor barrier directive]

Overview

This API is not a data structure. It is the abstraction layer for liblfds, which must be implemented on a given platform for liblfds to compile and run on that platform.

Please read the porting guide (lfds) for detailed instructions.