> diff --git a/lib/librte_eal/x86/rte_power_intrinsics.c 
> b/lib/librte_eal/x86/rte_power_intrinsics.c
> new file mode 100644
> index 0000000000..34c5fd9c3e
> --- /dev/null
> +++ b/lib/librte_eal/x86/rte_power_intrinsics.c
> @@ -0,0 +1,120 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright(c) 2020 Intel Corporation
> + */
> +
> +#include "rte_power_intrinsics.h"
> +
> +static inline uint64_t
> +__get_umwait_val(const volatile void *p, const uint8_t sz)
> +{
> +     switch (sz) {
> +     case sizeof(uint8_t):
> +             return *(const volatile uint8_t *)p;
> +     case sizeof(uint16_t):
> +             return *(const volatile uint16_t *)p;
> +     case sizeof(uint32_t):
> +             return *(const volatile uint32_t *)p;
> +     case sizeof(uint64_t):
> +             return *(const volatile uint64_t *)p;
> +     default:
> +             /* this is an intrinsic, so we can't have any error handling */
> +             RTE_ASSERT(0);
> +             return 0;

Nearly forgot - as now this function is not inline anymore, we can probably
get rid of assert and return some error code instead?

> +     }
> +}
> +

Reply via email to