13 #ifndef ALLOW_EXPERIMENTAL_API
15 #define __rte_experimental \
16 __attribute__((deprecated("Symbol is not yet part of stable ABI"), \
17 section(".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"), \
35 section(".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"), \
43 section(".text.internal"))) \
44 _Pragma("GCC diagnostic pop")
48 #define __rte_internal \
49 __attribute__((section(".text.internal")))