Difference between pages "r7.1.1:Macro LFDS711 PAL ALIGN" and "r7.1.1:Macro LFDS711 PAL ASSERT"

From liblfds.org
(Difference between pages)
Jump to navigation Jump to search
m (1 revision imported)
 
m (1 revision imported)
 
Line 1: Line 1:
{{DISPLAYTITLE:define LFDS711_PAL_ALIGN}}
{{DISPLAYTITLE:macro LFDS711_PAL_ASSERT}}
==Source File==
==Source File==
  └───liblfds711
  └───liblfds711
     └───inc
     └───inc
         └───liblfds711
         └───liblfds711
                 lfds711_porting_abstraction_layer_compiler.h
                 lfds711_porting_abstraction_layer_operating_system.h


==Macro==
==define==
  #define LFDS711_PAL_ALIGN( alignment )  [compiler alignment directive]
  #define LFDS711_PAL_ASSERT( expression )  [assert directive]( expression )
 
==Parameters==
''alignment''
: Alignment in bytes.
 
==Return Value==
No return value.


==Example==
==Example==
  #define LFDS711_PAL_ALIGN(alignment__attribute__( (aligned(alignment)) )
  #define LFDS711_PAL_ASSERT( expression BUG_ON( expression )


==Optionality==
==Optionality==
This define is mandatory and the library cannot compile if it is not set.
This define is optional.  If it is not given, the define must be empty, rather than absent.


==Notes==
==Notes==
Atomic instructions require the variables they operate upon to meet certain memory alignment requirements.
All ''liblfds'' functions assert all their arguments and all init functions perform alignment checking on atomically accessed variables and structure members.
 
This issue comes into play when making stack allocation, or positioning elements in structures for caching-line or exclusive reservation granule alignement and padding.
 
This macro is the mechanism by which the compiler specific keyword for alignment is provided to liblfds.


==See Also==
==See Also==
* [[r7.1.1:Porting Guide (liblfds)|Porting Guide (liblfds)]]
* [[r7.1.1:Porting Guide (liblfds)|Porting Guide (liblfds)]]

Latest revision as of 18:12, 16 February 2017

Source File

└───liblfds711
    └───inc
        └───liblfds711
                lfds711_porting_abstraction_layer_operating_system.h

define

#define LFDS711_PAL_ASSERT( expression )  [assert directive]( expression )

Example

#define LFDS711_PAL_ASSERT( expression )  BUG_ON( expression )

Optionality

This define is optional. If it is not given, the define must be empty, rather than absent.

Notes

All liblfds functions assert all their arguments and all init functions perform alignment checking on atomically accessed variables and structure members.

See Also