@ -145,12 +145,30 @@ struct name { \
This would define \ c struct \ c entry_list , intended to hold a list of
This would define \ c struct \ c entry_list , intended to hold a list of
type \ c struct \ c entry .
type \ c struct \ c entry .
*/
*/
# if defined(AST_MUTEX_INIT_W_CONSTRUCTORS)
# define AST_LIST_HEAD_STATIC(name, type) \
struct name { \
struct type * first ; \
struct type * last ; \
ast_mutex_t lock ; \
} name ; \
static void __attribute__ ( ( constructor ) ) init_ # # name ( void ) \
{ \
AST_LIST_HEAD_INIT ( & name ) ; \
} \
static void __attribute__ ( ( destructor ) ) fini_ # # name ( void ) \
{ \
AST_LIST_HEAD_DESTROY ( & name ) ; \
} \
struct __dummy_ # # name
# else
# define AST_LIST_HEAD_STATIC(name, type) \
# define AST_LIST_HEAD_STATIC(name, type) \
struct name { \
struct name { \
struct type * first ; \
struct type * first ; \
struct type * last ; \
struct type * last ; \
ast_mutex_t lock ; \
ast_mutex_t lock ; \
} name = AST_LIST_HEAD_INIT_VALUE
} name = AST_LIST_HEAD_INIT_VALUE
# endif
/*!
/*!
\ brief Defines a structure to be used to hold a list of specified type , statically initialized .
\ brief Defines a structure to be used to hold a list of specified type , statically initialized .