Miscellaneous Macros

Miscellaneous Macros — macros used in liblangtag

Functions

#define LT_GNUC_PRINTF()
#define LT_LIKELY()
#define LT_UNLIKELY()
#define LT_ALIGNED_TO()
#define LT_ALIGNED_TO_POINTER()
#define LT_N_ELEMENTS()
#define LT_BREAKPOINT
lt_pointer_t (*lt_copy_func_t) ()
void (*lt_destroy_func_t) ()
int (*lt_compare_func_t) ()

Types and Values

#define LT_BEGIN_DECLS
#define LT_END_DECLS
#define LT_STMT_START
#define LT_STMT_END
#define inline
#define LT_INLINE_FUNC
#define LT_GNUC_NULL_TERMINATED
#define LT_DIR_SEPARATOR_S
#define LT_DIR_SEPARATOR
#define LT_SEARCHPATH_SEPARATOR_S
#define LT_SEARCHPATH_SEPARATOR
#define LT_MAX
#define LT_MIN
#define LT_PATH_MAX
typedef ssize_t
typedef lt_pointer_t
typedef lt_bool_t

Description

These macros provide more specialized features which are not needed so often by application programmers.

Functions

LT_GNUC_PRINTF()

#define             LT_GNUC_PRINTF(format_idx, arg_idx)

Expands to the GNU C format function attribute if the compiler is gcc. This is used for declaring functions which take a variable number of arguments, with the same syntax as printf(). It allows the compiler to type-check the arguments passed to the function. See the GNU C documentation for details.

Parameters

format_idx

the index of the argument corresponding to the format string. (The arguments are numberered from 1).

 

arg_idx

the index of the first of the format arguments.

 

LT_LIKELY()

#  define LT_LIKELY(_e_) (__builtin_expect (_LT_BOOLEAN_EXPR (_e_), 1))

Hints the compiler that the expression is likely to evaluate to a true value. The compiler may use this information for optimizations.

Parameters

_e_

the expression

 

Returns

the value of expr .


LT_UNLIKELY()

#  define LT_UNLIKELY(_e_) (__builtin_expect (_LT_BOOLEAN_EXPR (_e_), 0))

Hints the compiler that the expression is unlikely to evaluate to a true value. The compiler may use this information for optimizations.

Parameters

_e_

the expression

 

Returns

the value of expr .


LT_ALIGNED_TO()

#define LT_ALIGNED_TO(_x_,_y_)		(((_x_) + (_y_) - 1) & ~((_y_) - 1))

LT_ALIGNED_TO_POINTER()

#define LT_ALIGNED_TO_POINTER(_x_) LT_ALIGNED_TO ((_x_), ALIGNOF_VOID_P)

LT_N_ELEMENTS()

#define LT_N_ELEMENTS(_x_)		(sizeof (_x_) / sizeof ((_x_)[0]))

Determines the number of elements in an array. The array must be declared so the compiler knows its size at compile-time; this macro will not work on an array allocated on the heap, only static arrays or arrays on the stack.

Parameters

_x_

the array

 

Returns

the number of elements.


LT_BREAKPOINT

#define             LT_BREAKPOINT()

lt_copy_func_t ()

lt_pointer_t
(*lt_copy_func_t) (lt_pointer_t data);

lt_destroy_func_t ()

void
(*lt_destroy_func_t) (lt_pointer_t data);

lt_compare_func_t ()

int
(*lt_compare_func_t) (const lt_pointer_t v1,
                      const lt_pointer_t v2);

Types and Values

LT_BEGIN_DECLS

#  define LT_BEGIN_DECLS extern "C" {

Used (along with LT_END_DECLS) to bracket header files. If the compiler in use is a C++ compiler, adds extern "C" around the header.


LT_END_DECLS

#  define LT_END_DECLS		}

Used (along with LT_BEGIN_DECLS) to bracket header files. If the compiler in use is a C++ compiler, adds extern "C" around the header.


LT_STMT_START

#  define LT_STMT_START		do

Used within multi-statement macros so that they can be used in places where only on statement is expected by the compiler.


LT_STMT_END

#  define LT_STMT_END		while (0)

Used within multi-statement macros so that they can be used in places where only on statement is expected by the compiler.


inline

#  define inline __inline__

LT_INLINE_FUNC

#  define LT_INLINE_FUNC static __inline __attribute__ ((unused))

This macro is used to export function prototypes so they can be linked with an external version when no inlining is performed.


LT_GNUC_NULL_TERMINATED

#define             LT_GNUC_NULL_TERMINATED

Expands to the GNU C sentinel function attribute if the compiler is gcc, or "" if it isn't. This function attribute only applies to variadic functions and instructs the compiler to check that the argument list is terminated with an explicit NULL. See the GNU C documentation for details.


LT_DIR_SEPARATOR_S

#  define LT_DIR_SEPARATOR_S		"\\"

LT_DIR_SEPARATOR

#  define LT_DIR_SEPARATOR		'\\'

LT_SEARCHPATH_SEPARATOR_S

#  define LT_SEARCHPATH_SEPARATOR_S ";"

LT_SEARCHPATH_SEPARATOR

#  define LT_SEARCHPATH_SEPARATOR ';'

LT_MAX

#  define LT_MAX		MAX

LT_MIN

#  define LT_MIN		MIN

LT_PATH_MAX

#define LT_PATH_MAX 512

ssize_t

typedef signed long long ssize_t;

lt_pointer_t

typedef void *		lt_pointer_t;

lt_bool_t

typedef int		lt_bool_t;