xref: /dpdk/lib/graph/rte_graph_worker.c (revision 0f8d9133fe3674a5ea83480ac7b9d83c310a4d0e)
1*0f8d9133SZhirun Yan /* SPDX-License-Identifier: BSD-3-Clause
2*0f8d9133SZhirun Yan  * Copyright(C) 2023 Intel Corporation
3*0f8d9133SZhirun Yan  */
4*0f8d9133SZhirun Yan 
5*0f8d9133SZhirun Yan #include "rte_graph_worker_common.h"
6*0f8d9133SZhirun Yan #include "graph_private.h"
7*0f8d9133SZhirun Yan 
8*0f8d9133SZhirun Yan bool
rte_graph_model_is_valid(uint8_t model)9*0f8d9133SZhirun Yan rte_graph_model_is_valid(uint8_t model)
10*0f8d9133SZhirun Yan {
11*0f8d9133SZhirun Yan 	if (model > RTE_GRAPH_MODEL_MCORE_DISPATCH)
12*0f8d9133SZhirun Yan 		return false;
13*0f8d9133SZhirun Yan 
14*0f8d9133SZhirun Yan 	return true;
15*0f8d9133SZhirun Yan }
16*0f8d9133SZhirun Yan 
17*0f8d9133SZhirun Yan int
rte_graph_worker_model_set(uint8_t model)18*0f8d9133SZhirun Yan rte_graph_worker_model_set(uint8_t model)
19*0f8d9133SZhirun Yan {
20*0f8d9133SZhirun Yan 	struct graph_head *graph_head = graph_list_head_get();
21*0f8d9133SZhirun Yan 	struct graph *graph;
22*0f8d9133SZhirun Yan 
23*0f8d9133SZhirun Yan 	if (!rte_graph_model_is_valid(model))
24*0f8d9133SZhirun Yan 		return -EINVAL;
25*0f8d9133SZhirun Yan 
26*0f8d9133SZhirun Yan 	STAILQ_FOREACH(graph, graph_head, next)
27*0f8d9133SZhirun Yan 			graph->graph->model = model;
28*0f8d9133SZhirun Yan 
29*0f8d9133SZhirun Yan 	return 0;
30*0f8d9133SZhirun Yan }
31*0f8d9133SZhirun Yan 
32*0f8d9133SZhirun Yan uint8_t
rte_graph_worker_model_get(struct rte_graph * graph)33*0f8d9133SZhirun Yan rte_graph_worker_model_get(struct rte_graph *graph)
34*0f8d9133SZhirun Yan {
35*0f8d9133SZhirun Yan 	if (!rte_graph_model_is_valid(graph->model))
36*0f8d9133SZhirun Yan 		return -EINVAL;
37*0f8d9133SZhirun Yan 
38*0f8d9133SZhirun Yan 	return graph->model;
39*0f8d9133SZhirun Yan }
40