9#ifdef RTE_TOOLCHAIN_MSVC
11#define __rte_experimental
16#ifndef ALLOW_EXPERIMENTAL_API
18#define __rte_experimental \
19__attribute__((deprecated("Symbol is not yet part of stable ABI"), \
20section(".text.experimental")))
24#ifndef __rte_experimental
25#define __rte_experimental \
26__attribute__((section(".text.experimental")))
29#ifndef ALLOW_INTERNAL_API
31#ifndef __has_attribute
33#define __has_attribute(x) 0
36#if __has_attribute(diagnose_if)
38#define __rte_internal \
39_Pragma("GCC diagnostic push") \
40_Pragma("GCC diagnostic ignored \"-Wgcc-compat\"") \
41__attribute__((diagnose_if(1, "Symbol is not public ABI", "error"), \
42section(".text.internal"))) \
43_Pragma("GCC diagnostic pop")
45#elif __has_attribute(error)
47#define __rte_internal \
48__attribute__((error("Symbol is not public ABI"), \
49section(".text.internal")))
56#define __rte_internal \
57__attribute__((section(".text.internal")))