13#ifndef ALLOW_EXPERIMENTAL_API
15#define __rte_experimental \
16__attribute__((deprecated("Symbol is not yet part of stable ABI"), \
17section(".text.experimental")))
21#define __rte_experimental \
22__attribute__((section(".text.experimental")))
26#ifndef __has_attribute
28#define __has_attribute(x) 0
31#if !defined ALLOW_INTERNAL_API && __has_attribute(error)
33#define __rte_internal \
34__attribute__((error("Symbol is not public ABI"), \
35section(".text.internal")))
37#elif !defined ALLOW_INTERNAL_API && __has_attribute(diagnose_if)
39#define __rte_internal \
40_Pragma("GCC diagnostic push") \
41_Pragma("GCC diagnostic ignored \"-Wgcc-compat\"") \
42__attribute__((diagnose_if(1, "Symbol is not public ABI", "error"), \
43section(".text.internal"))) \
44_Pragma("GCC diagnostic pop")
48#define __rte_internal \
49__attribute__((section(".text.internal")))