DPDK 25.03.0-rc0
rte_lcore.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2010-2014 Intel Corporation
3 */
4
5#ifndef _RTE_LCORE_H_
6#define _RTE_LCORE_H_
7
13#include <stdio.h>
14
15#include <rte_compat.h>
16#include <rte_config.h>
17#include <rte_per_lcore.h>
18#include <rte_eal.h>
19#include <rte_launch.h>
20#include <rte_thread.h>
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
26#define LCORE_ID_ANY UINT32_MAX
28RTE_DECLARE_PER_LCORE(unsigned, _lcore_id);
34 ROLE_RTE,
35 ROLE_OFF,
36 ROLE_SERVICE,
37 ROLE_NON_EAL,
38};
39
48enum rte_lcore_role_t rte_eal_lcore_role(unsigned int lcore_id);
49
61int
62rte_lcore_has_role(unsigned int lcore_id, enum rte_lcore_role_t role);
63
77static inline unsigned
79{
80 return RTE_PER_LCORE(_lcore_id);
81}
82
89unsigned int rte_get_main_lcore(void);
90
97unsigned int rte_lcore_count(void);
98
113int rte_lcore_index(int lcore_id);
114
121unsigned int rte_socket_id(void);
122
133unsigned int
135
150int
151rte_socket_id_by_idx(unsigned int idx);
152
161unsigned int
162rte_lcore_to_socket_id(unsigned int lcore_id);
163
172int rte_lcore_to_cpu_id(int lcore_id);
173
174#ifdef RTE_HAS_CPUSET
175
184rte_cpuset_t rte_lcore_cpuset(unsigned int lcore_id);
185
186#endif /* RTE_HAS_CPUSET */
187
197int rte_lcore_is_enabled(unsigned int lcore_id);
198
212unsigned int rte_get_next_lcore(unsigned int i, int skip_main, int wrap);
213
217#define RTE_LCORE_FOREACH(i) \
218 for (i = rte_get_next_lcore(-1, 0, 0); \
219 i < RTE_MAX_LCORE; \
220 i = rte_get_next_lcore(i, 0, 0))
221
225#define RTE_LCORE_FOREACH_WORKER(i) \
226 for (i = rte_get_next_lcore(-1, 1, 0); \
227 i < RTE_MAX_LCORE; \
228 i = rte_get_next_lcore(i, 1, 0))
229
241typedef int (*rte_lcore_init_cb)(unsigned int lcore_id, void *arg);
242
251typedef void (*rte_lcore_uninit_cb)(unsigned int lcore_id, void *arg);
252
281void *
283 rte_lcore_uninit_cb uninit, void *arg);
284
295void
297
309typedef int (*rte_lcore_iterate_cb)(unsigned int lcore_id, void *arg);
310
327int
329
338 uint64_t total_cycles;
343 uint64_t busy_cycles;
344};
345
359typedef int (*rte_lcore_usage_cb)(unsigned int lcore_id, struct rte_lcore_usage *usage);
360
374
381void
383
397int
399
403void
405
406#ifdef __cplusplus
407}
408#endif
409
410
411#endif /* _RTE_LCORE_H_ */
unsigned int rte_lcore_to_socket_id(unsigned int lcore_id)
void rte_lcore_callback_unregister(void *handle)
RTE_DECLARE_PER_LCORE(unsigned, _lcore_id)
unsigned int rte_lcore_count(void)
void(* rte_lcore_uninit_cb)(unsigned int lcore_id, void *arg)
Definition: rte_lcore.h:251
int rte_lcore_index(int lcore_id)
int(* rte_lcore_usage_cb)(unsigned int lcore_id, struct rte_lcore_usage *usage)
Definition: rte_lcore.h:359
rte_lcore_role_t
Definition: rte_lcore.h:33
void rte_lcore_register_usage_cb(rte_lcore_usage_cb cb)
int rte_lcore_has_role(unsigned int lcore_id, enum rte_lcore_role_t role)
int rte_lcore_is_enabled(unsigned int lcore_id)
unsigned int rte_get_main_lcore(void)
int rte_socket_id_by_idx(unsigned int idx)
void rte_lcore_dump(FILE *f)
int rte_thread_register(void)
unsigned int rte_socket_id(void)
rte_cpuset_t rte_lcore_cpuset(unsigned int lcore_id)
void * rte_lcore_callback_register(const char *name, rte_lcore_init_cb init, rte_lcore_uninit_cb uninit, void *arg)
enum rte_lcore_role_t rte_eal_lcore_role(unsigned int lcore_id)
int rte_lcore_iterate(rte_lcore_iterate_cb cb, void *arg)
int(* rte_lcore_iterate_cb)(unsigned int lcore_id, void *arg)
Definition: rte_lcore.h:309
int(* rte_lcore_init_cb)(unsigned int lcore_id, void *arg)
Definition: rte_lcore.h:241
unsigned int rte_get_next_lcore(unsigned int i, int skip_main, int wrap)
int rte_lcore_to_cpu_id(int lcore_id)
void rte_thread_unregister(void)
unsigned int rte_socket_count(void)
static unsigned rte_lcore_id(void)
Definition: rte_lcore.h:78
#define RTE_PER_LCORE(name)
Definition: rte_per_lcore.h:46
uint64_t busy_cycles
Definition: rte_lcore.h:343
uint64_t total_cycles
Definition: rte_lcore.h:338