use macro to declare constructor functions
It is easier to find all constructor functions when they use the same macros RTE_INIT or RTE_INIT_PRIO. The macro definitions are moved from rte_eal.h to rte_common.h. Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
This commit is contained in:
parent
6c986e1bdb
commit
17715a5339
@ -296,8 +296,7 @@ _lthread_diag_default_cb(uint64_t time, struct lthread *lt, int diag_event,
|
||||
/*
|
||||
* plug in default diag callback with mask off
|
||||
*/
|
||||
void _lthread_diag_ctor(void)__attribute__((constructor));
|
||||
void _lthread_diag_ctor(void)
|
||||
RTE_INIT(_lthread_diag_ctor)
|
||||
{
|
||||
diag_cb = _lthread_diag_default_cb;
|
||||
diag_mask = 0;
|
||||
|
@ -117,8 +117,7 @@ uint64_t diag_mask;
|
||||
|
||||
|
||||
/* constructor */
|
||||
void lthread_sched_ctor(void) __attribute__ ((constructor));
|
||||
void lthread_sched_ctor(void)
|
||||
RTE_INIT(lthread_sched_ctor)
|
||||
{
|
||||
memset(schedcore, 0, sizeof(schedcore));
|
||||
rte_atomic16_init(&num_schedulers);
|
||||
|
@ -62,9 +62,7 @@ RTE_DEFINE_PER_LTHREAD(void *, dummy);
|
||||
|
||||
static struct lthread_key key_table[LTHREAD_MAX_KEYS];
|
||||
|
||||
void lthread_tls_ctor(void) __attribute__((constructor));
|
||||
|
||||
void lthread_tls_ctor(void)
|
||||
RTE_INIT(thread_tls_ctor)
|
||||
{
|
||||
key_pool = NULL;
|
||||
key_pool_init = 0;
|
||||
|
@ -202,10 +202,7 @@ static void *__libc_dl_handle = RTLD_NEXT;
|
||||
* The constructor function initialises the
|
||||
* function pointers for pthread library functions
|
||||
*/
|
||||
void
|
||||
pthread_intercept_ctor(void)__attribute__((constructor));
|
||||
void
|
||||
pthread_intercept_ctor(void)
|
||||
RTE_INIT(pthread_intercept_ctor)
|
||||
{
|
||||
override = 0;
|
||||
/*
|
||||
|
@ -120,8 +120,7 @@ rte_acl_set_ctx_classify(struct rte_acl_ctx *ctx, enum rte_acl_classify_alg alg)
|
||||
* if both conditions are met:
|
||||
* at build time compiler supports AVX2 and target cpu supports AVX2.
|
||||
*/
|
||||
static void __attribute__((constructor))
|
||||
rte_acl_init(void)
|
||||
RTE_INIT(rte_acl_init)
|
||||
{
|
||||
enum rte_acl_classify_alg alg = RTE_ACL_CLASSIFY_DEFAULT;
|
||||
|
||||
|
@ -37,8 +37,7 @@
|
||||
|
||||
void *(*rte_memcpy_ptr)(void *dst, const void *src, size_t n) = NULL;
|
||||
|
||||
static void __attribute__((constructor))
|
||||
rte_memcpy_init(void)
|
||||
RTE_INIT(rte_memcpy_init)
|
||||
{
|
||||
#ifdef CC_SUPPORT_AVX512F
|
||||
if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX512F)) {
|
||||
|
@ -38,8 +38,7 @@
|
||||
uint8_t rte_rtm_supported; /* cache the flag to avoid the overhead
|
||||
of the rte_cpu_get_flag_enabled function */
|
||||
|
||||
static void __attribute__((constructor))
|
||||
rte_rtm_init(void)
|
||||
RTE_INIT(rte_rtm_init)
|
||||
{
|
||||
rte_rtm_supported = rte_cpu_get_flag_enabled(RTE_CPUFLAG_RTM);
|
||||
}
|
||||
|
@ -97,8 +97,7 @@ void rte_delay_us_callback_register(void (*userfunc)(unsigned int))
|
||||
rte_delay_us = userfunc;
|
||||
}
|
||||
|
||||
static void __attribute__((constructor))
|
||||
rte_timer_init(void)
|
||||
RTE_INIT(rte_timer_init)
|
||||
{
|
||||
/* set rte_delay_us_block as a delay function */
|
||||
rte_delay_us_callback_register(rte_delay_us_block);
|
||||
|
@ -108,6 +108,29 @@ typedef uint16_t unaligned_uint16_t;
|
||||
*/
|
||||
#define RTE_SET_USED(x) (void)(x)
|
||||
|
||||
/**
|
||||
* Run function before main() with low priority.
|
||||
*
|
||||
* The constructor will be run after prioritized constructors.
|
||||
*
|
||||
* @param func
|
||||
* Constructor function.
|
||||
*/
|
||||
#define RTE_INIT(func) \
|
||||
static void __attribute__((constructor, used)) func(void)
|
||||
|
||||
/**
|
||||
* Run function before main() with high priority.
|
||||
*
|
||||
* @param func
|
||||
* Constructor function.
|
||||
* @param prio
|
||||
* Priority number must be above 100.
|
||||
* Lowest number is the first to run.
|
||||
*/
|
||||
#define RTE_INIT_PRIO(func, prio) \
|
||||
static void __attribute__((constructor(prio), used)) func(void)
|
||||
|
||||
/**
|
||||
* Force a function to be inlined
|
||||
*/
|
||||
|
@ -336,29 +336,6 @@ enum rte_iova_mode rte_eal_iova_mode(void);
|
||||
const char *
|
||||
rte_eal_mbuf_default_mempool_ops(void);
|
||||
|
||||
/**
|
||||
* Run function before main() with low priority.
|
||||
*
|
||||
* The constructor will be run after prioritized constructors.
|
||||
*
|
||||
* @param func
|
||||
* Constructor function.
|
||||
*/
|
||||
#define RTE_INIT(func) \
|
||||
static void __attribute__((constructor, used)) func(void)
|
||||
|
||||
/**
|
||||
* Run function before main() with high priority.
|
||||
*
|
||||
* @param func
|
||||
* Constructor function.
|
||||
* @param prio
|
||||
* Priority number must be above 100.
|
||||
* Lowest number is the first to run.
|
||||
*/
|
||||
#define RTE_INIT_PRIO(func, prio) \
|
||||
static void __attribute__((constructor(prio), used)) func(void)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@ -116,8 +116,7 @@ rte_hash_crc_set_alg(uint8_t alg)
|
||||
}
|
||||
|
||||
/* Setting the best available algorithm */
|
||||
static inline void __attribute__((constructor))
|
||||
rte_hash_crc_init_alg(void)
|
||||
RTE_INIT(rte_hash_crc_init_alg)
|
||||
{
|
||||
rte_hash_crc_set_alg(CRC32_ARM64);
|
||||
}
|
||||
|
@ -480,8 +480,7 @@ rte_hash_crc_set_alg(uint8_t alg)
|
||||
}
|
||||
|
||||
/* Setting the best available algorithm */
|
||||
static inline void __attribute__((constructor))
|
||||
rte_hash_crc_init_alg(void)
|
||||
RTE_INIT(rte_hash_crc_init_alg)
|
||||
{
|
||||
rte_hash_crc_set_alg(CRC32_SSE42_x64);
|
||||
}
|
||||
|
@ -205,8 +205,7 @@ rte_net_crc_calc(const void *data,
|
||||
}
|
||||
|
||||
/* Select highest available crc algorithm as default one */
|
||||
static inline void __attribute__((constructor))
|
||||
rte_net_crc_init(void)
|
||||
RTE_INIT(rte_net_crc_init)
|
||||
{
|
||||
enum rte_net_crc_alg alg = RTE_NET_CRC_SCALAR;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user