iPXE
Macros
Miscellaneous attributes

Macros

#define __unused   __attribute__ (( unused ))
 Declare a variable or data structure as unused. More...
 
#define __pure   __attribute__ (( pure ))
 Declare a function as pure - i.e. More...
 
#define __const   __attribute__ (( const ))
 Declare a function as const - i.e. More...
 
#define __nonnull   __attribute__ (( nonnull ))
 Declare a function's pointer parameters as non-null - i.e. More...
 
#define __malloc   __attribute__ (( malloc ))
 Declare a pointer returned by a function as a unique memory address as returned by malloc-type functions. More...
 
#define __used   __attribute__ (( used ))
 Declare a function as used. More...
 
#define __aligned   __attribute__ (( aligned ( 16 ) ))
 Declare a data structure to be aligned with 16-byte alignment. More...
 
#define __always_inline   __attribute__ (( always_inline ))
 Declare a function to be always inline. More...
 
#define inline   inline __attribute__ (( no_instrument_function ))
 
#define __shared   __asm__ ( "_shared_bss" ) __aligned
 Shared data. More...
 

Detailed Description

Macro Definition Documentation

◆ __unused

static unsigned int size __unused   __attribute__ (( unused ))

Declare a variable or data structure as unused.

Definition at line 573 of file compiler.h.

Referenced by ath9k_hw_resettxqueue(), ath_buf_set_rate(), ath_draintxq(), ath_set_channel(), ath_tx_complete(), sky2_probe(), and tg3_phy_autoneg_cfg().

◆ __pure

#define __pure   __attribute__ (( pure ))

Declare a function as pure - i.e.

without side effects

Definition at line 578 of file compiler.h.

◆ __const

#define __const   __attribute__ (( const ))

Declare a function as const - i.e.

it does not access global memory (including dereferencing pointers passed to it) at all. Must also not call any non-const functions.

Definition at line 585 of file compiler.h.

◆ __nonnull

#define __nonnull   __attribute__ (( nonnull ))

Declare a function's pointer parameters as non-null - i.e.

force compiler to check pointers at compile time and enable possible optimizations based on that fact

Definition at line 592 of file compiler.h.

◆ __malloc

#define __malloc   __attribute__ (( malloc ))

Declare a pointer returned by a function as a unique memory address as returned by malloc-type functions.

Definition at line 598 of file compiler.h.

◆ __used

#define __used   __attribute__ (( used ))

Declare a function as used.

Necessary only if the function is called only from assembler code.

Definition at line 605 of file compiler.h.

◆ __aligned

#define __aligned   __attribute__ (( aligned ( 16 ) ))

Declare a data structure to be aligned with 16-byte alignment.

Definition at line 608 of file compiler.h.

◆ __always_inline

#define __always_inline   __attribute__ (( always_inline ))

Declare a function to be always inline.

Definition at line 611 of file compiler.h.

◆ inline

#define inline   inline __attribute__ (( no_instrument_function ))

Definition at line 624 of file compiler.h.

◆ __shared

#define __shared   __asm__ ( "_shared_bss" ) __aligned

Shared data.

To save space in the binary when multiple-driver images are compiled, uninitialised data areas can be shared between drivers. This will typically be used to share statically-allocated receive and transmit buffers between drivers.

Use as e.g.

struct {
char rx_buf[NUM_RX_BUF][RX_BUF_SIZE];
char tx_buf[TX_BUF_SIZE];
} my_static_data __shared;

Definition at line 646 of file compiler.h.