DPDK  23.07.0
rte_power_intrinsics.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2020 Intel Corporation
3  */
4 
5 #ifndef _RTE_POWER_INTRINSIC_H_
6 #define _RTE_POWER_INTRINSIC_H_
7 
8 #include <inttypes.h>
9 
10 #include <rte_compat.h>
11 #include <rte_spinlock.h>
12 
22 #define RTE_POWER_MONITOR_OPAQUE_SZ 4
23 
38 typedef int (*rte_power_monitor_clb_t)(const uint64_t val,
39  const uint64_t opaque[RTE_POWER_MONITOR_OPAQUE_SZ]);
40 
41 struct rte_power_monitor_cond {
42  volatile void *addr;
43  uint8_t size;
52  uint64_t opaque[RTE_POWER_MONITOR_OPAQUE_SZ];
54 };
55 
87 __rte_experimental
88 int rte_power_monitor(const struct rte_power_monitor_cond *pmc,
89  const uint64_t tsc_timestamp);
90 
107 __rte_experimental
108 int rte_power_monitor_wakeup(const unsigned int lcore_id);
109 
129 __rte_experimental
130 int rte_power_pause(const uint64_t tsc_timestamp);
131 
163 __rte_experimental
164 int rte_power_monitor_multi(const struct rte_power_monitor_cond pmc[],
165  const uint32_t num, const uint64_t tsc_timestamp);
166 
167 #endif /* _RTE_POWER_INTRINSIC_H_ */
__rte_experimental int rte_power_monitor_wakeup(const unsigned int lcore_id)
#define RTE_POWER_MONITOR_OPAQUE_SZ
__rte_experimental int rte_power_pause(const uint64_t tsc_timestamp)
int(* rte_power_monitor_clb_t)(const uint64_t val, const uint64_t opaque[RTE_POWER_MONITOR_OPAQUE_SZ])
__rte_experimental int rte_power_monitor_multi(const struct rte_power_monitor_cond pmc[], const uint32_t num, const uint64_t tsc_timestamp)
__rte_experimental int rte_power_monitor(const struct rte_power_monitor_cond *pmc, const uint64_t tsc_timestamp)