New upstream version 18.02
[deb_dpdk.git] / examples / ip_pipeline / thread_fe.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2010-2015 Intel Corporation
3  */
4
5 #ifndef THREAD_FE_H_
6 #define THREAD_FE_H_
7
8 static inline struct rte_ring *
9 app_thread_msgq_in_get(struct app_params *app,
10                 uint32_t socket_id, uint32_t core_id, uint32_t ht_id)
11 {
12         char msgq_name[32];
13         ssize_t param_idx;
14
15         snprintf(msgq_name, sizeof(msgq_name),
16                 "MSGQ-REQ-CORE-s%" PRIu32 "c%" PRIu32 "%s",
17                 socket_id,
18                 core_id,
19                 (ht_id) ? "h" : "");
20         param_idx = APP_PARAM_FIND(app->msgq_params, msgq_name);
21
22         if (param_idx < 0)
23                 return NULL;
24
25         return app->msgq[param_idx];
26 }
27
28 static inline struct rte_ring *
29 app_thread_msgq_out_get(struct app_params *app,
30                 uint32_t socket_id, uint32_t core_id, uint32_t ht_id)
31 {
32         char msgq_name[32];
33         ssize_t param_idx;
34
35         snprintf(msgq_name, sizeof(msgq_name),
36                 "MSGQ-RSP-CORE-s%" PRIu32 "c%" PRIu32 "%s",
37                 socket_id,
38                 core_id,
39                 (ht_id) ? "h" : "");
40         param_idx = APP_PARAM_FIND(app->msgq_params, msgq_name);
41
42         if (param_idx < 0)
43                 return NULL;
44
45         return app->msgq[param_idx];
46
47 }
48
49 int
50 app_pipeline_thread_cmd_push(struct app_params *app);
51
52 int
53 app_pipeline_enable(struct app_params *app,
54                 uint32_t core_id,
55                 uint32_t socket_id,
56                 uint32_t hyper_th_id,
57                 uint32_t pipeline_id);
58
59 int
60 app_pipeline_disable(struct app_params *app,
61                 uint32_t core_id,
62                 uint32_t socket_id,
63                 uint32_t hyper_th_id,
64                 uint32_t pipeline_id);
65
66 int
67 app_thread_headroom(struct app_params *app,
68                 uint32_t core_id,
69                 uint32_t socket_id,
70                 uint32_t hyper_th_id);
71
72 #endif /* THREAD_FE_H_ */