iPXE
Defines
APIs

These are APIs for which only a single implementation may be compiled in at any given time. More...

Defines

#define SINGLE_API_NAME(_prefix, _api_func)   _prefix ## _api_func
 Calculate function implementation name.
#define SINGLE_API_INLINE(_prefix, _api_func)   SINGLE_API_NAME ( _prefix, _api_func )
 Calculate static inline function name.
#define PROVIDE_SINGLE_API(_prefix, _api_func, _func)
 Provide an API implementation.
#define PROVIDE_SINGLE_API_INLINE(_prefix, _api_func)
 Provide a static inline API implementation.

Detailed Description

These are APIs for which only a single implementation may be compiled in at any given time.


Define Documentation

#define SINGLE_API_NAME (   _prefix,
  _api_func 
)    _prefix ## _api_func

Calculate function implementation name.

Parameters:
_prefixSubsystem prefix
_api_funcAPI function
Return values:
_subsys_funcSubsystem API function

The subsystem prefix should be an empty string for the currently selected subsystem, and should be a subsystem-unique string for all other subsystems.

Definition at line 35 of file api.h.

#define SINGLE_API_INLINE (   _prefix,
  _api_func 
)    SINGLE_API_NAME ( _prefix, _api_func )

Calculate static inline function name.

Parameters:
_prefixSubsystem prefix
_api_funcAPI function
Return values:
_subsys_funcSubsystem API function

Definition at line 44 of file api.h.

#define PROVIDE_SINGLE_API (   _prefix,
  _api_func,
  _func 
)
Value:
/* Ensure that _api_func exists */                                    \
        typeof ( _api_func ) _api_func;                                       \
        /* Ensure that _func exists */                                        \
        typeof ( _func ) _func;                                               \
        /* Ensure that _func is type-compatible with _api_func */             \
        typeof ( _api_func ) _func;                                           \
        /* Ensure that _subsys_func is non-static */                          \
        extern typeof ( _api_func ) SINGLE_API_NAME ( _prefix, _api_func );   \
        /* Provide symbol alias from _subsys_func to _func */                 \
        typeof ( _api_func ) SINGLE_API_NAME ( _prefix, _api_func )           \
                __attribute__ (( alias ( #_func ) ));

Provide an API implementation.

Parameters:
_prefixSubsystem prefix
_api_funcAPI function
_funcImplementing function

Definition at line 54 of file api.h.

#define PROVIDE_SINGLE_API_INLINE (   _prefix,
  _api_func 
)
Value:
/* Ensure that _api_func exists */                                    \
        typeof ( _api_func ) _api_func;                                       \
        /* Ensure that _subsys_func exists and is static */                   \
        static typeof ( SINGLE_API_INLINE ( _prefix, _api_func ) )            \
                SINGLE_API_INLINE ( _prefix, _api_func );                     \
        /* Ensure that _subsys_func is type-compatible with _api_func */      \
        typeof ( _api_func ) SINGLE_API_INLINE ( _prefix, _api_func );

Provide a static inline API implementation.

Parameters:
_prefixSubsystem prefix
_api_funcAPI function

Definition at line 73 of file api.h.