L4Re - L4 Runtime Environment
compiler.h File Reference

L4 compiler related defines. More...

#include <l4/sys/linkage.h>
+ Include dependency graph for compiler.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define L4_ALWAYS_INLINE
 L4 Inline function attribute. More...
 
#define L4_NOTHROW
 Mark a function declaration and definition as never throwing an exception. More...
 
#define EXTERN_C_BEGIN
 Start section with C types and functions.
 
#define EXTERN_C_END
 End section with C types and functions.
 
#define EXTERN_C
 Mark C types and functions.
 
#define __END_DECLS
 End section with C types and functions.
 
#define L4_NORETURN
 Noreturn function attribute.
 
#define L4_NOINSTRUMENT
 No instrumentation function attribute.
 
#define L4_HIDDEN
 Attribute to mark functions, variables, and data types as being explicitly hidden from users of a library. More...
 
#define L4_LIKELY(x)
 Expression is likely to execute.
 
#define L4_UNLIKELY(x)
 Expression is unlikely to execute.
 
#define L4_STICKY(x)
 Mark symbol sticky (even not there)
 
#define L4_DEPRECATED(s)
 Mark symbol deprecated.
 
#define L4_stringify_helper(x)
 stringify helper.
 
#define L4_stringify(x)
 stringify.
 

Functions

void l4_barrier (void)
 Memory barrier.
 
void l4_mb (void)
 Memory barrier.
 
void l4_wmb (void)
 Write memory barrier.
 

Detailed Description

L4 compiler related defines.

Definition in file compiler.h.

Macro Definition Documentation

◆ L4_ALWAYS_INLINE

#define L4_ALWAYS_INLINE

L4 Inline function attribute.

Always inline a function

Definition at line 67 of file compiler.h.

◆ L4_HIDDEN

#define L4_HIDDEN

Attribute to mark functions, variables, and data types as being explicitly hidden from users of a library.

This attribute is intended for functions, data, and data types that shall never be visible outside of a library. In particular, for shared libraries this may result in much faster code within the library and short linking times.

class L4_HIDDEN My_class
{
...
};
int L4_HIDDEN function(void);
int L4_HIDDEN global_data; // global data is not recommended

Definition at line 216 of file compiler.h.

◆ L4_NOTHROW

#define L4_NOTHROW

Mark a function declaration and definition as never throwing an exception.

(Also for C code).

This macro shall be used to mark C and C++ functions that never throw any exception. Note that also C functions may throw exceptions according to the compilers ABI and shall be marked with L4_NOTHROW if they never do. In C++ this is equivalent to throw().

int foo() L4_NOTHROW;
...
int foo() L4_NOTHROW
{
...
return result;
}

Definition at line 186 of file compiler.h.

L4_NOTHROW
#define L4_NOTHROW
Mark a function declaration and definition as never throwing an exception.
Definition: compiler.h:186
L4_HIDDEN
#define L4_HIDDEN
Attribute to mark functions, variables, and data types as being explicitly hidden from users of a lib...
Definition: compiler.h:216